[
  {
    "path": ".gitignore",
    "content": "# mac file\n.DS_Store\n\n# Compiled Object files\n*.slo\n*.lo\n*.o\n*.obj\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Compiled Dynamic libraries\n*.so\n*.dylib\n*.dll\n\n# Fortran module files\n*.mod\n*.smod\n\n# Compiled Static libraries\n*.lai\n*.la\n*.a\n*.lib\n\n# Executables\n*.exe\n*.out\n*.app\n\n\n"
  },
  {
    "path": "README.md",
    "content": "# NNS Benchmark: Evaluating Approximate Nearest Neighbor Search Algorithms in High Dimensional Euclidean Space\n\nNearest neighbor search (NNS) is a fundamental and essential operation in applications from many domains, such as databases, machine learning, multimedia, and computer vision. Hundreds of algorithms have been proposed to attack the problem from different perspectives, yet there is no **open** and **comprehensive** comparison. By \"comprehensive\", we mean using state-of-the-art algorithms proposed from different research areas, and evaluating them on a diverse range of datasets.\n\nTo aid researchers and practitioners working on or whose work depends on the problem, we setup this benchmark for Nearest Neighbor Search (NNS) based on the Euclidean distance on High Dimensional Data. The benefit is twofold:\n\n- For researchers, it allows one to **easily** compare their new algorithms with state-of-the-art ones and on a diverse set of datasets. The latter is especially important to gain a **complete** picture of the performance of an algorithm.\n- For practitioners, it allows one to **easily** understand the performances of different algorithms and their **tradeoffs**. This helps them to choose the best implementation meeting their own goals and constraints.\n\nWe also would like to leverage the entire community to collaboratively build and maintain this benchmark. For example, submitting new algorithms, useful datasets, or offering suggestions or improvements.\n\n## Scope\n\nWe limit the scope of this benchmark by imposing the following constraints. \n\n- **Representative and competitive approximate NNS algorithms**. It has been well recognized that the exact NNS algorithms often cannot even outperform even the simple linear scan algorithm when the dimensionality is high. We therefore only consider the approximate solutions. In this benchmark, we consider the state-of-the-art algorithms in several research areas and those from practitioners.\n\n- **No hardware specific optimizations**.  Not all the implementations we obtained or implemented have the same level of sophistication in utilizing the hardware specific features to speed up the query processing. To perform a (relatively) fair comparison and gain insight into the real strength and weakness of algorithms, we modified several implementations so that, as far as we are aware, no implementation of algorithm in this benchmark uses multiple threads, multiple CPUs, SIMD instructions, hardware pre-fetching, or GPUs.\n\n- **Dense vectors**. We mainly focus on the case where the input data vectors are dense, i.e., non-zero in most of the dimensions.\n\n- **Support the Euclidian distance**. The Euclidean distance is one of the most widely used measures on high-dimensional datasets. It is also supported by most of the NNS algorithms.\n\n- **Exact kNN as the ground truth**. In some existing works, each data point has a label (typically in classification or clustering applications) and the labels are regarded as the ground truth when evaluating the recall of approximate NN algorithms. In our benchmark, we use the exact kNN points as the ground truth as this works for all datasets and majority of the applications.\n\nCurrently, we evaluate **15 representative NNS algorithms** on **20 datasets** where details are reported in our [Nearest Neighbor Search (NNS) Experimental Evaluation Paper](https://arxiv.org/abs/1610.02455)[1].\n\n## Algorithms Evaluted \n\nThanks to the original authors, all the algorithms considered in this benchmark have their sources publicly available. Algorithms are implemented in C++ unless otherwise specified. We carefully go through all the implementations and make necessary modifications to for fair comparisons. For instance, we re-implement the search process of some algorithms in C++. We also disable the multi-threads, SIMD instructions, fast-math, and hardware prefetching technique.\n\nBelow are brief introuductions of the algorithms evaluated in the benchmark as well as our revisions, which are grouped into three/four categories.\n\n### 1. Locality Sensitive Hashing (LSH)-Based Methods\n\n- **QALSH** Query-Aware LSH ([2], PVLDB’15). \n[Originial source code](http://ss.sysu.edu.cn/~fjl/qalsh/qalsh_1.1.2.tar.gz)\n\n- **SRS** ([3], PVLDB’14).\n[Originial source code](https://github.com/DBWangGroupUNSW/SRS). \nNote that both external memory and in-memory versions of **SRS** are available.\n\n### 2. Space Partitioning-based Methods\n\n#### 2.1. Encoding-Based Space Partitioning Methods\n\n- **SGH** Scalable Graph Hashing ([4], IJCAI’15). \n[Originial source code](http://cs.nju.edu.cn/lwj). \n    * Source codes (index construction and search) are implemented by MATLAB. \n    * In our implementation, we use the hierarchical clustering trees in **FLANN** (C++) to index the resulting binary vectors to support more efficient search.\n\n- **AGH** Anchor Graph Hashing ([5], ICML’11). \n[Originial source code](http://www.ee.columbia.edu/ln/dvmm/downloads)\n    * Source codes (index construction and search) are implemented by MATLAB. \n    * In our implementation, we use the hierarchical clustering trees in **FLANN** (C++) to index the resulting binary vectors to support more efficient search.\n\n\n- **NSH** Neighbor-Sensitive Hashing ([6], PVLDB’15). \n[Originial source code](https://github.com/pyongjoo/nsh)\n    * Source codes (index construction and search) are implemented by MATLAB. \n    * In our implementation, we use the hierarchical clustering trees in **FLANN** (C++) to index the resulting binary vectors to support more efficient search.\n\n- **SH** Selective Hashing ([7], KDD’15). \n[Originial source code](http://www.comp.nus.edu.sg/~dsh/download.html).\n    Note that we have confirmed with the authors that the source code released implements the algorithm in their KDD'15 paper, not that in their previous SIGMOD'14 paper.  \n\n- **OPQ** Optimal Product Quantization ([8], TPAMI’14). \n[Originial source code](http://research.microsoft.com/en-us/um/people/kahe). \nNote that, in our impementation, we use the [inverted multi-indexing technique](http://arbabenko.github.io/MultiIndex/index.html) [17] to perform non-exhaustive search for **OPQ**.\n\n- **NAPP** Neighborhood APProximation index ([9], PVLDB’15). \n[Originial source code](https://github.com/searchivarius/nmslib)\n    * We disable the SIMD, multi-threading, and `-Ofast` compiler option.\n\n#### 2.2. Tree-Based Space Partitioning Methods\n\n- **FLANN** ([10], TPAMI’14). \n[Originial source code](http://www.cs.ubc.ca/research/flann)\n    * We disable the multi-threading techniques in **FLANN**.\n\n- **Annoy** ([11]). \n[Originial source code](https://github.com/spotify/annoy)\n    * Source codes are implemented by C++ (core algorithms) and Python (for binding). We re-implemente the Python binding part with C++. \n    * We disable `-ffast-math` compiler option in **Annoy**.\n\n- **VP-Tree** Vantage-Point tree ([12], NIPS’13). \n[Originial source code](https://github.com/searchivarius/nmslib)\n    * We disable the SIMD, multi-threading, and `-Ofast` compiler option.\n\n### 3. Neighborhood-Based Methods\n\n- **SW** Small World Graph ([13], IS'14). \n[Originial source code](https://github.com/searchivarius/nmslib)  \n  * We disable the SIMD, multi-threading, and `-Ofast` compiler option.\n\n- **HNSW** Hierarchical Navigable Small World ([20], arXiv'16). \n[Originial source code](https://github.com/searchivarius/nmslib)  \n  * We disable the SIMD, multi-threading, and `-Ofast` compiler option.\n\n- **RCT** Rank Cover Tree ([14], TPAMI'15).\n  Originial source code is obtained from authors by email, who kindly allow us to release them through this benchmark. \n\n- **KGraph** ([15] [16], WWW'11). \n  [Originial source code](https://github.com/aaalgo/kgraph)\n  * We disable SIMD and multi-threading techniques in **KGraph**. Note the besides the compiler flag, we also comment out the SIMD related code in `metric.cpp`\n  * We reduce the index size of KGraph by discarding the distances of the edges, which is not used in the search process anyway. \n\n- **DPG** Diversified Proximity Graph ([1]). \n[Originial source code](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/algorithms/DPG)\n    We engineered a new algorithm, DPG, that constructs an alternative neighborhood graph index, yet uses the same search algorithm as the KGraph. DPG is more robust than KGraph across different datasets. For more details about the algorithm and its analysis, please refer to our [NNS Experimental Evaluation Paper](https://arxiv.org/abs/1610.02455)[1]. \n    \n- **NSG**  Navigating Spreading-out Graph ([21], VLDB 2019). \n[Originial source code](https://github.com/ZJULearning/nsg)\n   * NSG is a newly graph-based algorithm. We disable the SIMD instructions and the hardware prefetching technique. \n\n\n## Datasets Used \n\nCurrently, we use\n\n- **18 real datasets** that are used by existing work and cover a wide range of application and data types, including image, audio, video, text, and deep-learning data. \n- **2 sythetic datasets**: Rand (for Random) and Gauss (for mixed Gaussian). \n\nTable 1 summarizes the characteristics of the datasets including the number of data points (*n*), dimensionality (*d*), Relative Contrast (*RC* [18]), local intrinsic dimensionality (*LID* [19]), and data type, where RC and LID are used to describe the hardness of the datasets.\n\n| **Name** | **n X 10^3** | **d** | **RC** | **LID** | **Type**|\n| ------ | ------ | ------ | ------ | ------ | -------- |\n| Nus*   | 269    |  500    |  1.67 |  24.5 | Image |\n| Gist*  | 983    |  960    |  1.94   | 18.9  | Image |\n| Rand*  | 1,000  |  100    | 3.05    | 58.7  | Synthetic |\n| Glove* | 1,192  |  100    | 1.82    | 20.0  | Text  | \n| Cifa   | 50     |  512    | 1.97    | 9.0   | Image |\n| Audio  | 53     |  192    | 2.97    | 5.6   | Audio |\n| Mnist  | 69     |  784    | 2.38    | 6.5   | Image |\n| Sun    | 79     |  512    | 1.94    | 9.9   | Image |\n| Enron  | 95     |  1,369  | 6.39    | 11.7  | Text  |\n| Trevi  | 100    |  4,096  | 2.95    | 9.2   | Image |\n| Notre  | 333    |  128    | 3.22    | 9.0   | Image |\n| Yout   | 346    |  1,770  | 2.29    | 12.6  | Video |\n| Msong  | 922    |  420    | 3.81    | 9.5   | Audio |\n| Sift   | 994    |  128    | 3.50    | 9.3   | Image |\n| Deep   | 1,000  |  128    | 1.96    | 12.1  | Image |\n| Ben    | 1,098  |  128    | 1.96    | 8.3   | Image |\n| Imag   | 2,340  |  150    | 2.54    | 11.6  | Image |\n| Gauss  | 2,000  |  512    | 3.36    | 19.6  | Synthetic   |\n| UQ-V   | 3,038  |  256    | 8.39    | 7.2   | Video |\n| BANN   | 10,000 |  128    | 2.60    | 10.3  | Image |\n\n**Table 1: Dataset Summary**\n\nWe mark the first four datasets in Table 1 with asterisks to indicate that they are **hard datasets** compared with\nothers.\n\nBelow, we give more descriptions of these datasets.\n\n- [**Sift**](http://corpus-texmex.irisa.fr) consists of 1 million 128-d SIFT vectors.\n\n- [**Nusw**](http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm) includes around $2.7$ million web images,\neach as a 500-dimensional bag-of-words vector.\n\n- [**Msong**](http://www.ifs.tuwien.ac.at/mir/msd/download.html) is a collection of audio features and metadata for a million contemporary popular music tracks with $420$ dimensions.\n\n- [**Gist**]() is is an image dataset which contains about 1 million data points with 960 dimensions.\n\n- [**Deep**](https://yadi.sk/d/I_yaFVqchJmoc) contains deep neural codes of natural images obtained from the activations of a convolutional neural network, which contains about 1 million data points with 256 dimensions.\n\n- [**Bann**](http://corpus-texmex.irisa.fr/) is used to evaluate the scalability of the algorithms, where 1M, 2M, 4M, 6M, 8M, and 10M data points are sampled from 128-dimensional SIFT descriptors extracted from natural images.\n\n- **Guass** is generated by randomly choosing $1000$ cluster centers with in space $[0,10]^512$, and each cluster follows the a Gaussian distribution with deviation 1 on each dimension.\n\n- **Random** contains $1$M randomly chosen points in a unit hypersphere with dimensionality 100.\n\n- [**Audio**](http://www.cs.princeton.edu/cass/audio.tar.gz) has about 0.05 million 192-d audio feature vectors extracted by Marsyas library from DARPA TIMIT audio speed dataset.\n\n- [**Cifar**](http://www.cs.toronto.edu/~kriz/cifar.html) is a labeled subset of *TinyImage* dataset, which consists of 60000 32 X color images in 10 classes, with each image represented by a 512-d GIST feature vector.\n\n- [**Enron**](http://www.cs.cmu.edu/~enron) origins from a collection of emails. Yifang et. al. extract bi-grams and form feature vectors of 1369 dimensions. \n\n- [**Glove**](http://nlp.stanford.edu/projects/glove) contains 1.2 million 100-d word feature vectors extracted from Tweets.\n\n- [**Imag**](http://cloudcv.org/objdetect) is introduced and employed by [The ImageNet Large Scale Visual Recognition Challenge (ILSVRC)](http://www.image-net.org/challenges/LSVRC/), which contains about 2.4 million data points with 150-d dense SIFT features.\n\n- [**Mnist**](http://yann.lecun.com/exdb/mnist) consists of 70k images of hand-written digits, each as a 784-d vector concatenating all pixels. we randomly sample 1k as the queries and use the remaining as the data base.\n \n- [**Sun**](http://groups.csail.mit.edu/vision/SUN) contains about 0.08 million 512-d GIST features of images.\n\n- [**Notre**](http://phototour.cs.washington.edu/datasets) contains about 0.3 million 128-d features of a set of Flickr images and a reconstruction.\n\n- [**UKbench**](http://vis.uky.edu/~stewe/ukbench) contains about 1 million 128-d features of images.\n\n- [**Trevi**](http://phototour.cs.washington.edu/patches/default.htm) consists of 0.4 million X 1024 bitmap(.bmp) images, each containing a `16 X 16` array of image patch. Each patch is sampled as `64 X 64` grayscale, with a canonical scale and orientation. Therefore, Trevi patch dataset consists of around 100,000 4096-d vectors.\n\n- [**UQ_V**](http://staff.itee.uq.edu.au/shenht/UQ_VIDEO/) is a video dataset. A\n  local feature based on some keyframes are extracted which include 256\n  dimensions.\n  \n- [**Yout**](http://www.cs.tau.ac.il/~wolf/ytfaces/index.html) contains 3,425 videos of 1,595 different people. All the videos were downloaded from YouTube. An average of 2.15 videos are available for each subject. The shortest clip duration is 48 frames, the longest clip is 6,070 frames, and the average length of a video clip is 181.3 frames.\n\n## PERFORMANCE EVALUATION and ANALYSES \n\nPlease refer to our [NNS Experimental Evaluation paper](https://arxiv.org/abs/1610.02455)[1]. \n\n## License\n\nOur own code is released under the [Apache License Version 2.0](http://www.apache.org/licenses/). Copyright is owned by DBWang Group (University of New South Wales, Australia) and Database group at QCIS, UTS (Centre for Quantum Computation & Intelligent Systems, The University of Technology Sydney, Australia). \n\nBelow are the license information for the included implementations: \n\n1. KGraph: BSD license. Users are still encouraged to download the binary distributions from [its home site](https://github.com/aaalgo/kgraph) so building issues can be avoided.\n\n2. NMSLib and Annoy: [Apache License Version 2.0](http://www.apache.org/licenses/).\n\n3. AGH: License information below\n\n```\nTerms of Use\n--\nCopyright (c) 2009-2011 by\n--\nDVMM Laboratory\nDepartment of Electrical Engineering\nColumbia University\nRm 1312 S.W. Mudd, 500 West 120th Street\nNew York, NY 10027\nUSA\n--\nIf it is your intention to use this code for non-commercial purposes, such as in academic research, this code is free.\n--\nIf you use this code in your research, please acknowledge the authors, and cite our related publication:\n--\n\nWei Liu, Jun Wang, Sanjiv Kumar, and Shih-Fu Chang, \"Hashing with Graphs,\" International Conference on Machine Learning (ICML), Bellevue, Washington, USA, 2011\n```\n\n4. SRS: GPL License.\n\n5. FLANN: BSD License. \n\n6. RCT: The Authors grant us the permission to release source code by email.\n\n7. Algorithms whose license information are not mentioned: NSH,  OPQ, QALSH, SGH, and SH. \n\n## Recall vs Speedup\nHere, we present the Recall with respect to Speedup of all the algorithms on four datasets, the k is set to be 20.\n\n![image](https://github.com/MingjieL/ANN/blob/master/sift_Recall_speedup.jpg \"Sift\")\n  **Sift**\n![image](https://github.com/MingjieL/ANN/blob/master/gist_Recall_speedup.jpg \"Gist\")\n  **Gist**\n![image](https://github.com/MingjieL/ANN/blob/master/glove_Recall_speedup.jpg \"Glove\")\n  **Glove**\n![image](https://github.com/MingjieL/ANN/blob/master/millionSong_Recall_speedup.jpg \"MillionSong\")\n  **MillionSong**\n\n\n \n## REFERENCES \n\n[1] W. Li, Y. Zhang, Y. Sun, W. Wang, W. Zhang, X. Lin, *Nearest Neighbor Search on High Dimensional Data — Experiments, Analyses, and Improvement (v1.0)*. CoRR, vol. abs/1610.02455, 2016. [Online version](https://arxiv.org/abs/1610.02455)\n\n[2] Q. Huang, J. Feng, Y. Zhang, Q. Fang, and W. Ng. *Query-aware locality-sensitive hashing for approximate nearest neighbor search*. PVLDB, 9(1):1–12, 2015.\n\n[3] Y. Sun, W. Wang, J. Qin, Y. Zhang, and X. Lin. *SRS: solving c-approximate nearest neighbor queries in high\ndimensional euclidean space with a tiny index*. PVLDB,8(1):1–12, 2014\n\n[4] Q. Jiang and W. Li. *Scalable graph hashing with feature transformation*. In IJCAI, pages 2248–2254, 2015.\n\n[5] W. Liu, J. Wang, S. Kumar, and S. Chang. *Hashing with graphs*. In ICML, pages 1–8, 2011.\n\n[6] Y. Park, M. J. Cafarella, and B. Mozafari. *Neighbor-sensitive hashing*. In PVLDB, 9(3):144–155, 2015.\n\n[7] J. Gao, H. V. Jagadish, B. C. Ooi, and S. Wang. *Selective hashing: Closing the gap between radius search and k-nn search*. In SIGKDD, 2015.\n\n[8] T. Ge, K. He, Q. Ke, and J. Sun. *Optimized product quantization*. IEEE Trans. Pattern Anal. Mach. Intell., 36(4):744–755, 2014.\n\n[9] B. Naidan, L. Boytsov, and E. Nyberg. *Permutation search methods are efficient, yet faster search is possible*. PVLDB,\n8(12):1618–1629, 2015.\n\n[10] M. Muja and D. G. Lowe. *Scalable nearest neighbor algorithms for high dimensional data*. IEEE Trans. Pattern\nAnal. Mach. Intell., 36(11):2227–2240, 2014.\n\n[11] E. Bernhardsson. [*Annoy at github*](https://github.com/spotify/annoy).\n\n[12] L. Boytsov and B. Naidan. *Learning to prune in metric and non-metric spaces*. In NIPS, 2013.\n\n[13] Y. Malkov, A. Ponomarenko, A. Logvinov, and V. Krylov. *Approximate nearest neighbor algorithm based on navigable small world graphs*.  Inf. Syst., 45:61–68, 2014\n\n[14] M. E. Houle and M. Nett. *Rank-based similarity search: Reducing the dimensional dependence*. IEEE TPAMI, 37(1):136–150, 2015.\n\n[15] W. Dong. [*Kgraph website*](http://www.kgraph.org).\n\n[16] W. Dong, M. Charikar, and K. Li. *Efficient k-nearest neighbor graph construction for generic similarity measures*. In WWW, 2011.\n\n[17] A. Babenko and V. S. Lempitsky. *The inverted multi-index*. In CVPR, pages 3069–3076, 2012.\n\n[18] J. He, S. Kumar, and S. Chang. *On the difficulty of nearest neighbor search*. In ICML, 2012.\n\n[19] L. Amsaleg, O. Chelly, T. Furon, S. Girard, M. E. Houle, K. Kawarabayashi, and M. Nett. *Estimating local intrinsic dimensionality*. In SIGKDD, 2015.\n\n[20] Yu. A. Malkov and D. A. Yashunin   *Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs*, In arXiv, 2016\t\n\n[21] C. Fu, C. Wang, and D. Cai.  *Fast approximate nearest neighbor search with navigating spreading-out graphs*. In VLDB, pages 461- 474, 2019.\n\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/AGH/README.md",
    "content": "# AGH - Anchor-based Graph Hashing\n\nThis is a modified version of AGH. The original version can be downloaded from [here](http://www.ee.columbia.edu/ln/dvmm/downloads/WeiGraphConstructCode2011/dlform.htm), which is implemented with MATLAB. \n\nWe use the original code to generate the hashcodes of the data points and transformation parameters. We rewrite the searching part in C++ to transform the query points to binary vectors and use the hierarchical clustering trees in FLANN (C++) to index the data binary vectors to support more efficient search.\n\n## Compile (AGH/src)\n\nTo compile AGH, go to AGH/src and run \n\n```\nmake\n```\n\nto get the executable file.\n\n## Index (AGH/preprocess)\n\nTo build the index of AGH, enter into preprocess folder and run \n```\nmain.m\n```\nin MATLAB to get the transformed data and transformation parameters.\nAlternatively, one may run \n```\nmatlab -nodisplay -nojvm -nosplash -nodesktop -r \"try, run('main.m'), end, exit(0)\"\n``` \n\nNote that main.m will build the index for 1-AGH and 2-AGH. One could choose to generate only one of them.\n\n## Search (AGH/script)\n\ngo to AGH/script and run \n```\nsearcher.sh \n```\nto obtain the searching performance of AGH. We use c value (e.g. the number of the visited points) to  achieve the trade-off between search speed and search quality (recall).\n\n\n"
  },
  {
    "path": "algorithms/AGH/preprocess/OneLayerAGH_Test.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction Y = OneLayerAGH_Test(X, Anchor, W, s, sigma)\r\n%\r\n% One-Layer Anchor Graph Hashing Test \r\n% Written by Wei Liu (wliu@ee.columbia.edu)\r\n% X = nXdim input data \r\n% Anchor = mXdim anchor points (m<<n)\r\n% W = mXr projection matrix in spectral space\r\n% s = number of nearest anchors\r\n% sigma: Gaussian RBF kernel width parameter \r\n% Y = nXr binary codes (Y_ij in {1,0})\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n[n,dim] = size(X);\r\nm = size(Anchor,1);\r\n\r\n\r\n%% get Z\r\nZ = zeros(n,m);\r\nDis = sqdist(X',Anchor');\r\nclear X;\r\nclear Anchor;\r\n\r\nval = zeros(n,s);\r\npos = val;\r\nfor i = 1:s\r\n    [val(:,i),pos(:,i)] = min(Dis,[],2);\r\n    tep = (pos(:,i)-1)*n+[1:n]';\r\n    Dis(tep) = 1e60; \r\nend\r\nclear Dis;\r\nclear tep;\r\nval = exp(-val/(1/1*sigma^2));\r\nval = repmat(sum(val,2).^-1,1,s).*val; %% normalize\r\ntep = (pos-1)*n+repmat([1:n]',1,s);\r\nZ([tep]) = [val];\r\nZ = sparse(Z);\r\nclear tep;\r\nclear val;\r\nclear pos;\r\n\r\n\r\n%% get binary codes\r\nY = (Z*W>0);  %% logical format\r\nclear Z;\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/OneLayerAGH_Train.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction [Y, W, sigma] = OneLayerAGH_Train(X, Anchor, r, s, sigma)\r\n%\r\n% One-Layer Anchor Graph Hashing Training \r\n% Written by Wei Liu (wliu@ee.columbia.edu)\r\n% X = nXdim input data \r\n% Anchor = mXdim anchor points (m<<n)\r\n% r = number of hash bits\r\n% s = number of nearest anchors\r\n% sigma: Gaussian RBF kernel width parameter; if no input (sigma=0) this function will\r\n%        self-estimate and return a value. \r\n% Y = nXr binary codes (Y_ij in {1,0})\r\n% W = mXr projection matrix in spectral space\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n[n,dim] = size(X);\r\nm = size(Anchor,1);\r\n\r\n\r\n%% get Z\r\nZ = zeros(n,m);\r\nDis = sqdist(X',Anchor');\r\nclear X;\r\nclear Anchor;\r\n\r\nval = zeros(n,s);\r\npos = val;\r\nfor i = 1:s\r\n    [val(:,i),pos(:,i)] = min(Dis,[],2);\r\n    tep = (pos(:,i)-1)*n+[1:n]';\r\n    Dis(tep) = 1e60; \r\nend\r\nclear Dis;\r\nclear tep;\r\n\r\nif sigma == 0\r\n   sigma = mean(val(:,s).^0.5);\r\nend\r\nval = exp(-val/(1/1*sigma^2));\r\nval = repmat(sum(val,2).^-1,1,s).*val; %% normalize\r\ntep = (pos-1)*n+repmat([1:n]',1,s);\r\nZ([tep]) = [val];\r\nZ = sparse(Z);\r\nclear tep;\r\nclear val;\r\nclear pos;\r\n\r\n\r\n%% compute eigensystem \r\nlamda = sum(Z);\r\nM = Z'*Z;\r\nM = diag(lamda.^-0.5)*M*diag(lamda.^-0.5);\r\n[W,V] = eig(full(M));\r\nclear M;\r\neigenvalue = diag(V)';\r\nclear V;\r\n[eigenvalue,order] = sort(eigenvalue,'descend');\r\nW = W(:,order);\r\nclear order;\r\nind = find(eigenvalue>0 & eigenvalue<1-1e-3);\r\neigenvalue = eigenvalue(ind);\r\nW = W(:,ind);\r\nW = diag(lamda.^-0.5)*W(:,1:r)*diag(eigenvalue(1:r).^-0.5);\r\nclear ind;\r\nclear eigenvalue;\r\nclear lambda;\r\n\r\n\r\n%% get binary codes\r\nY = (Z*W>0); %% logical format\r\nclear Z;\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/TwoLayerAGH_Test.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction Y = TwoLayerAGH_Test(X, Anchor, W, Thres, s, sigma)\r\n%\r\n% Two-Layer Anchor Graph Hashing Test \r\n% Written by Wei Liu (wliu@ee.columbia.edu)\r\n% X = nXdim input data \r\n% Anchor = mXdim anchor points (m<<n)\r\n% W = mX(r/2) projection matrix in spectral space\r\n% Thres = 2X(r/2) threshold matrix\r\n% s = number of nearest anchors\r\n% sigma: Gaussian RBF kernel width parameter \r\n% Y = nXr binary codes (Y_ij in {1,0})\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n[n,dim] = size(X);\r\nm = size(Anchor,1);\r\nr1 = size(W,2);\r\n\r\n\r\n%% get Z\r\nZ = zeros(n,m);\r\nDis = sqdist(X',Anchor');\r\nclear X;\r\nclear Anchor;\r\n\r\nval = zeros(n,s);\r\npos = val;\r\nfor i = 1:s\r\n    [val(:,i),pos(:,i)] = min(Dis,[],2);\r\n    tep = (pos(:,i)-1)*n+[1:n]';\r\n    Dis(tep) = 1e60; \r\nend\r\nclear Dis;\r\nclear tep;\r\nval = exp(-val/(1/1*sigma^2));\r\nval = repmat(sum(val,2).^-1,1,s).*val; %% normalize\r\ntep = (pos-1)*n+repmat([1:n]',1,s);\r\nZ([tep]) = [val];\r\nZ = sparse(Z);\r\nclear tep;\r\nclear val;\r\nclear pos;\r\n\r\n\r\n%% get binary codes\r\nY = Z*W;\r\nY1 = Y; \r\nfor k = 1:r1\r\n    pos = find(Y1(:,k)>0);\r\n    neg = setdiff([1:n],pos);\r\n    Y1(pos,k) = Y1(pos,k)-Thres(1,k);\r\n    Y1(neg,k) = -Y1(neg,k)+Thres(2,k);\r\nend\r\nY = [Y,Y1];\r\n\r\nY = (Y>0); %% logical format\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/TwoLayerAGH_Train.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction [Y, W, Thres, sigma] = TwoLayerAGH_Train(X, Anchor, r, s, sigma)\r\n%\r\n% Two-Layer Anchor Graph Hashing Training \r\n% Written by Wei Liu (wliu@ee.columbia.edu)\r\n% X = nXdim input data \r\n% Anchor = mXdim anchor points (m<<n)\r\n% r = number of hash bits\r\n% s = number of nearest anchors\r\n% sigma: Gaussian RBF kernel width parameter; if no input (sigma=0) this function will\r\n%        self-estimate and return a value. \r\n% Y = nXr binary codes (Y_ij in {1,0})\r\n% W = mX(r/2) projection matrix in spectral space\r\n% Thres = 2X(r/2) threshold matrix\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n[n,dim] = size(X);\r\nm = size(Anchor,1);\r\n\r\n\r\n%% get Z\r\nZ = zeros(n,m);\r\nDis = sqdist(X',Anchor');\r\nclear X;\r\nclear Anchor;\r\n\r\nval = zeros(n,s);\r\npos = val;\r\nfor i = 1:s\r\n    [val(:,i),pos(:,i)] = min(Dis,[],2);\r\n    tep = (pos(:,i)-1)*n+[1:n]';\r\n    Dis(tep) = 1e60; \r\nend\r\nclear Dis;\r\nclear tep;\r\n\r\nif sigma == 0\r\n   sigma = mean(val(:,s).^0.5);\r\nend\r\nval = exp(-val/(1/1*sigma^2));\r\nval = repmat(sum(val,2).^-1,1,s).*val; %% normalize\r\ntep = (pos-1)*n+repmat([1:n]',1,s);\r\nZ([tep]) = [val];\r\nZ = sparse(Z);\r\nclear tep;\r\nclear val;\r\nclear pos;\r\n\r\n\r\n%% compute eigensystem \r\nlamda = sum(Z);\r\nM = Z'*Z;\r\nM = diag(lamda.^-0.5)*M*diag(lamda.^-0.5);\r\n[W,V] = eig(full(M));\r\nclear M;\r\neigenvalue = diag(V)';\r\nclear V;\r\n[eigenvalue,order] = sort(eigenvalue,'descend');\r\nW = W(:,order);\r\nclear order;\r\nind = find(eigenvalue>0 & eigenvalue<1-1e-3);\r\neigenvalue = eigenvalue(ind);\r\nW = W(:,ind);\r\nW = diag(lamda.^-0.5)*W(:,1:r/2)*diag(eigenvalue(1:r/2).^-0.5)*sqrt(n);\r\nclear ind;\r\nclear eigenvalue;\r\nclear lambda;\r\n\r\n\r\n%% get binary codes\r\nY = Z*W;\r\nY1 = Y;\r\nThres = zeros(2,r/2);\r\nfor k = 1:r/2\r\n    pos = find(Y(:,k)>0);\r\n    neg = setdiff([1:n],pos);\r\n    n1 = length(pos);\r\n    n2 = n-n1;\r\n    get = Y(:,k);\r\n    get(neg) = -1*get(neg);\r\n    right = full(get'*Z);\r\n    clear get;\r\n    right = right./lamda;\r\n    left = sum(Z(pos,:));\r\n    s1 = sum(left.*right,2);\r\n    left1 = left./lamda;\r\n    s2 = n1-sum(left.*left1,2);\r\n    s3 = sum(Y(pos,k),1);\r\n    clear left\r\n    clear left1;\r\n    clear right;\r\n    \r\n    Thres(1,k) = (2*s3+n2*(s3-s1)/s2)/n;\r\n    Thres(2,k) = (n1*(s3-s1)/s2-2*s3)/n;\r\n    Y1(pos,k) = Y1(pos,k)-Thres(1,k);\r\n    Y1(neg,k) = -Y1(neg,k)+Thres(2,k);\r\n    clear pos;\r\n    clear neg;\r\nend\r\nclear Z;\r\nY = [Y,Y1];\r\nclear Y1;\r\n\r\nY = (Y>0); %% logical format\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/compactbit.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction cb = compactbit(b)\r\n%\r\n% Written by Rob Fergus\r\n% b = bits array\r\n% cb = compacted string of bits (using words of 'word' bits)\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n\r\n[nSamples nbits] = size(b);\r\nnwords = ceil(nbits/8);\r\ncb = zeros([nSamples nwords], 'uint8');\r\n\r\nfor j = 1:nbits\r\n    w = ceil(j/8);\r\n    cb(:,w) = bitset(cb(:,w), mod(j-1,8)+1, b(:,j));\r\nend"
  },
  {
    "path": "algorithms/AGH/preprocess/fvecs_read.m",
    "content": "% Read a set of vectors stored in the fvec format (int + n * float)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = fvecs_read (filename)     -> read all vectors\r\n%   v = fvecs_read (filename, n)  -> read n vectors \r\n%   v = fvecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = fvecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'float=>single');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\n  \r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/get_anchor.m",
    "content": "function get_anchor(data_path,anchor_path,m)\ndataset = fvecs_read(data_path);\ndataset=dataset';\nn=size(dataset,1);\np=2000;\nidx=randsample(n,p);\nXtraining = dataset(idx,:);\ntic;\nopts = statset('Display','off','MaxIter',30);\n[idc, anchor] = kmeans(Xtraining, m, 'Options', opts, 'EmptyAction', 'singleton');\nsave([anchor_path '.mat'],'anchor');\nanchor_time=toc;\n\n%file = fopen('anchor_time.txt', 'a+');\n%fprintf(file,'%f #%s \\n',anchor_time,data_name);\n%fclose(file);\n\nend\n"
  },
  {
    "path": "algorithms/AGH/preprocess/hammingDist.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\nfunction Dh=hammingDist(B1, B2)\r\n%\r\n% Written by Rob Fergus\r\n% Compute hamming distance between two sets of samples (B1, B2)\r\n%\r\n% Dh=hammingDist(B1, B2);\r\n%\r\n% Input\r\n%    B1, B2: compact bit vectors. Each datapoint is one row.\r\n%    size(B1) = [ndatapoints1, nwords]\r\n%    size(B2) = [ndatapoints2, nwords]\r\n%    It is faster if ndatapoints1 < ndatapoints2\r\n% \r\n% Output\r\n%    Dh = hamming distance. \r\n%    size(Dh) = [ndatapoints1, ndatapoints2]\r\n%\r\n% example query\r\n% Dhamm = hammingDist(B2, B1);\r\n% this will give the same result than:\r\n%    Dhamm = distMat(U2>0, U1>0).^2;\r\n% the size of the distance matrix is:\r\n%    size(Dhamm) = [Ntest x Ntraining]\r\n%\r\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r\n\r\n% loop-up table:\r\nbit_in_char = uint16([...\r\n    0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 1 2 2 3 2 3 ...\r\n    3 4 2 3 3 4 3 4 4 5 1 2 2 3 2 3 3 4 2 3 3 4 ...\r\n    3 4 4 5 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 1 2 ...\r\n    2 3 2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 ...\r\n    3 4 4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 ...\r\n    5 6 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 1 2 2 3 ...\r\n    2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 3 4 ...\r\n    4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 ...\r\n    3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 2 3 3 4 3 4 ...\r\n    4 5 3 4 4 5 4 5 5 6 3 4 4 5 4 5 5 6 4 5 5 6 ...\r\n    5 6 6 7 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 4 5 ...\r\n    5 6 5 6 6 7 5 6 6 7 6 7 7 8]);\r\n\r\nn1 = size(B1,1);\r\n[n2, nwords] = size(B2);\r\n\r\nDh = zeros([n1 n2], 'uint16');\r\nfor j = 1:n1\r\n    for n=1:nwords\r\n        y = bitxor(B1(j,n),B2(:,n));\r\n        Dh(j,:) = Dh(j,:) + bit_in_char(y+1);\r\n    end\r\nend\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/ivecs_read.m",
    "content": "% Read a set of vectors stored in the ivec format (int + n * int)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = ivecs_read (filename)     -> read all vectors\r\n%   v = ivecs_read (filename, n)  -> read n vectors \r\n%   v = ivecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = ivecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'int=>double');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/AGH/preprocess/ivecs_write.m",
    "content": "% This function writes a vector from a file in the ivecs format\n\nfunction ivecs_write (filename, v)\n\n% open the file and count the number of descriptors\nfid = fopen (filename, 'wb');\nd = size (v, 1);\nn = size (v, 2);\n\nfor i = 1:n\n  \n  % first write the vector size\n  count = fwrite (fid, d, 'int');\n\n  if count ~= 1 \n    error ('Unable to write vector dimension: count !=1 \\n');\n  end\n\n  % write the vector components\n  count = fwrite (fid, v(:,i), 'int');\n\n  if count ~= d \n    error ('Unable to write vector elements: count !=1 \\n');\n  end\nend\n\nfclose (fid);\n"
  },
  {
    "path": "algorithms/AGH/preprocess/main.m",
    "content": "% data_path: the full path of the dataset\n% m: the number of anchor\n% s: the number of the nearest anchors need to be considered\n% bit: the length of the hashcode\n\ndata_name='audio';\ndata_path=['../../../data/' data_name '_base.fvecs'];\n    \nindex_path = ['../index/' data_name];\nmkdir(index_path);\n\nanchor_path=[index_path '/' data_name '_anchor'];\nL1_params_path=[index_path '/' data_name '_params.L1']; % the transformation parameters for 1-AGH\nL1_data_path=[index_path '/' data_name '_B1.L1'];% the binary format of the dataset\n\nL2_params_path=[index_path '/' data_name '_params.L2'];\nL2_data_path=[index_path '/' data_name '_B1.L2'];\n\nm=300;\ns=5;\nbit=8;\n\nget_anchor(data_path,anchor_path,m);\nmain_OneLayer(data_path,anchor_path,L1_params_path,L1_data_path,s,bit);\nmain_TwoLayer(data_path,anchor_path,L2_params_path,L2_data_path,s,bit);\n"
  },
  {
    "path": "algorithms/AGH/preprocess/main_OneLayer.m",
    "content": "function main_c_OneLayer(data_path, anchor_path, params_path,B1_path,s,bit)\n\ndataset = fvecs_read(data_path); \ndataset=dataset'; % dataset = [n,d] \n\n[n,dim] = size(dataset);\n\nanchor=load([anchor_path '.mat']);\nanchor=anchor.anchor;\nm=size(anchor,1);\n\ntic;\n[Y, W, sigma] = OneLayerAGH_Train(dataset, anchor, bit, s, 0);\nB1 = compactbit(Y);\nindex_time=toc;\n    \nfile = fopen(params_path, 'w');\nfprintf(file,'%d\\n',bit);\nfprintf(file,'%f\\n',sigma);\nfor t=1:m %anchor\n    p_=anchor(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfor t=1:m %W\n    p_=W(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfclose(file);  \nivecs_write(B1_path,B1');\n\nend\n"
  },
  {
    "path": "algorithms/AGH/preprocess/main_TwoLayer.m",
    "content": "function main_c_TwoLayer(data_path, anchor_path, params_path,B1_path,s,bit)\n\ntraindata = fvecs_read(data_path);\ntraindata=traindata';\n\n[n,dim] = size(traindata); \n\nanchor=load([anchor_path '.mat']);\nanchor=anchor.anchor;\nm=size(anchor,1);\n\n    \ntic;\n[Y, W, thres, sigma] = TwoLayerAGH_Train(traindata, anchor, bit, s, 0);\nB1 = compactbit(Y);\nindex_time=toc;\n    \nfile = fopen(params_path, 'w');\nfprintf(file,'%d\\n',bit);\nfprintf(file,'%f\\n',sigma);\nfor t=1:m %anchor\n    p_=anchor(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfor t=1:m %W\n    p_=W(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\n    \nfor t=1:2 %Thres\n    p_=thres(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfclose(file);\n    \nivecs_write(B1_path,B1');\n    \nend\n"
  },
  {
    "path": "algorithms/AGH/preprocess/main_c_OneLayer.m~",
    "content": "function main_c_OneLayer(data_path, anchor_path,indices_path,B1_path,s,bit)\n\ndataset = fvecs_read(data_path); \ndataset=dataset'; % dataset = [n,d] \n\n[n,dim] = size(dataset);\n\nanchor=load([anchor_path '.mat']);\nanchor=anchor.anchor;\nm=size(anchor,1);\n\ntic;\n[Y, W, sigma] = OneLayerAGH_Train(dataset, anchor, bit, s, 0);\nB1 = compactbit(Y);\nindex_time=toc;\n    \nfile = fopen(indices_path, 'w');\nfprintf(file,'%d\\n',bit);\nfprintf(file,'%f\\n',sigma);\nfor t=1:m %anchor\n    p_=anchor(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfor t=1:m %W\n    p_=W(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfclose(file);  \nivecs_write(B1_path,B1');\n\nend\n"
  },
  {
    "path": "algorithms/AGH/preprocess/main_c_TwoLayer.m~",
    "content": "function main_c_TwoLayer(data_path, anchor_path,indices_path,B1_path,s,bit)\n\ntraindata = fvecs_read(data_path);\ntraindata=traindata';\n\n[n,dim] = size(traindata); \n\nanchor=load(anchor_path);\nanchor=anchor.anchor;\nm=size(anchor,1);\n\n    \ntic;\n[Y, W, thres, sigma] = TwoLayerAGH_Train(traindata, anchor, bit, s, 0);\nB1 = compactbit(Y);\nindex_time=toc;\n    \nfile = fopen(indices_path, 'w');\nfprintf(file,'%d\\n',bit);\nfprintf(file,'%f\\n',sigma);\nfor t=1:m %anchor\n    p_=anchor(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfor t=1:m %W\n    p_=W(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\n    \nfor t=1:2 %Thres\n    p_=thres(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfclose(file);\n    \nivecs_write(B1_path,B1');\n    \nend\n"
  },
  {
    "path": "algorithms/AGH/preprocess/sqdist.m",
    "content": "function d=sqdist(a,b)\r\n% SQDIST - computes squared Euclidean distance matrix\r\n%          computes a rectangular matrix of pairwise distances\r\n% between points in A (given in columns) and points in B\r\n\r\n% NB: very fast implementation taken from Roland Bunschoten\r\n\r\naa = sum(a.*a,1); bb = sum(b.*b,1); ab = a'*b; \r\nd = abs(repmat(aa',[1 size(bb,2)]) + repmat(bb,[size(aa,2) 1]) - 2*ab);\r\n\r\n"
  },
  {
    "path": "algorithms/AGH/script/searcher.sh",
    "content": "\ndata_path=\"../../../data\"\nresult_path=\"../results\"\nmkdir ${result_path}\n\ncd ../src\n\nk=20\n\nfor data in \"audio\"\ndo\n\ndataset_path=\"${data_path}/${data}_base.fvecs\"\nquery_path=\"${data_path}/${data}_query.fvecs\"\ngnd_path=\"${data_path}/${data}_groundtruth.ivecs\"\n \nfor layer in 1 2         # the layer of AGH\ndo\n\nparams_path=../index/${data}/${data}_params.L${layer}   # file stored the transformation parameters\ndataset_binary_path=../index/${data}/${data}_B1.L${layer}  # the file stored the binary dataset\nnbit=8          #  the length of the hash code\nm=300            # the number of the anchors\nt=5             # the number of the nearest anchors used to build the app. graph\nradis=-2          # searching limited by the number of the maximum visited points\n\nfor c in 100 500 1000\ndo\n\n./AGH -s ${dataset_path} -q ${query_path} -g ${gnd_path} -k $k -a $m -t $t -l ${layer} -c $c -r ${radis} -b \"${dataset_binary_path}\" -p \"${params_path}\" >> \"${result_path}/${data}_${layer}AGH.txt\"\n\ndone\ndone\ndone\n\n"
  },
  {
    "path": "algorithms/AGH/src/AGH.cpp",
    "content": "#include \"data_util.h\"\n#include \"AGH.h\"\n#include \"hammingDist.h\"\n#include \"eval.h\"\n\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <time.h>\n#include <sys/time.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvector<vector <float> > points;\nvector<vector <float > > query;\nvector<vector <int> > gnds;\nvector<int> maxChecks;\n\nint n;\nint nq;\nint dim;\nint k;\nint radis;\nint Layer;\nint anchor_size;\nint nearest_size;\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"dataset_filepath\",            required_argument, 0, 's'},\n\t    {\"query_filepath\" ,             required_argument, 0, 'q'},\n\t    {\"groundtruth_filepath\",        required_argument, 0, 'g'},\n\t    {\"Layer\",                       required_argument, 0, 'l'},\n\t\t{\"k\",                           required_argument, 0, 'k'},\n\t\t{\"r\",                           required_argument, 0, 'r'},\n\t\t{\"c\",                           required_argument, 0, 'c'},\n\t\t{\"t\",                           required_argument, 0, 't'},\n\t\t{\"a\",                           required_argument, 0, 'a'},\n\t    {\"dataset_binary_path\",         required_argument, 0, 'b'},\n\t    {\"params_path\",                 required_argument, 0, 'p'},\n\t  };\n\t  int ind;\n\t  int iarg = 0;\n\t  opterr = 1;\n\t  int checks;\n\n\t  char groundtruth_filepath[100] = \"\";\n\t  char query_filepath[100] = \"\";\n\t  char dataset_filepath[100] = \"\";\n\t  char dataset_binary_path[100] = \"\";\n\t  char params_path[100] = \"\";\n\t  //char checks_path[20] =\"\";\n\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"s:q:g:l:k:t:a:r:c:b:p:h\",\n\t                       longopts, &ind);\n\n\t    switch (iarg) {\n\t      case 's':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'q':\n\t        if (optarg) {\n\t        \tstrcpy(query_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'g':\n\t        if (optarg) {\n\t        \tstrcpy(groundtruth_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'l':\n\t    \t  if (optarg) {\n\t    \t  Layer = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'k':\n\t    \t  if (optarg) {\n\t    \t  k = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      case 'a':\n\t    \t  if (optarg) {\n\t    \t  anchor_size = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 't':\n\t    \t  if (optarg) {\n\t    \t  nearest_size = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'c':\n\t    \t  if (optarg) {\n\t\t\t  //strcpy(checks_path, optarg);\n\t\t\t  checks = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'r':\n\t    \t  if (optarg) {\n\t    \t  radis = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      case 'b':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_binary_path, optarg);\n\t        }\n\t        break;\n\t      case 'p':\n\t        if (optarg) {\n\t        \tstrcpy(params_path, optarg);\n\t        }\n\t        break;\n\t     }\n\t  }\n\t  ReadPoints(dataset_filepath, &points, &n, &dim);\n\t  ReadPoints(query_filepath, &query,&nq, &dim);\n\t  ReadGroundtruth(groundtruth_filepath, &gnds, &nq, &k);\n \t  //ReadChecks(checks_path,&maxChecks);\n\n\t  //read SH params\n\t  AGH AGH_;\n\t  AGH_.ReadAGHParams(params_path,anchor_size,dim,Layer);\n\t  int nbits = AGH_.nbits;\n\n\t  vector<vector<unsigned> > B1;\n\t  ReadB1(dataset_binary_path,&B1,n);\n\t  //SH_.compressSH(&points,&B1);\n\n\t  HierarchicalClusteringIndex HCI_ ;\n\t  HCI_.set_params(B1,32,4,100);\n\t  if(radis==-2)\n\t  \tHCI_.buildIndex();\n\n\t  timeval start;\n      gettimeofday(&start, NULL);\n\n\t  // compress query\n\t  vector<vector<unsigned> > B2;\n\t  if(Layer==1)\n\t\tAGH_.compressAGH_OneLayer(&query,&B2,nearest_size);\n\t  else\n\t\tAGH_.compressAGH_TwoLayer(&query,&B2,nearest_size);\n\t\n\t  timeval end;\n\t  gettimeofday(&end, NULL);\n\t  double transform_time = diff_timeval(end, start);\n\t\n\t  gettimeofday(&start, NULL);\n\n\t  vector<vector<int> > indices;\n\t  vector<vector<int> > dists;\n\n      if(radis==-1)\n\t\t  hammingDist(&B2,&B1,&indices,checks);\n\t  else if(radis==-2)\n\t\t  HCI_.knnSearch(B2,indices,dists,checks,checks);\n\t  else\n\t\t  hammingDist_ByRange(&B2,&B1,&indices,radis);\n      \n\t\t// get results after re-ranking\n\t  vector<vector<int> > results;\n\t  results = Search(&points, &query, &indices, k);\n\n      gettimeofday(&end, NULL);\n      double search_time = diff_timeval(end, start) + transform_time;\n\n\t  float recall = compute_recall(&gnds, &results);\n\t\t  \n\t  cout<<recall<< \" \"<< search_time/nq << \" #N_\"<<checks<<\" #bit_\"<< nbits<<\" #Layer_\"<<Layer<<\" #t_\"<<nearest_size<<\" \"<< endl;\n\n}\n\n\n\n\n"
  },
  {
    "path": "algorithms/AGH/src/AGH.h",
    "content": "#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n#ifndef AGH_H_\n#define AGH_H_\n\nclass AGH\n{\n\tpublic:\n\tint nbits;\n\tint m;\n\tint s;\n\tfloat sigma;\n\tvector<vector<float> > anchor;\n\tvector<vector<float> > W;\n\tvector<vector<float> > Thres;\n    \n\tvoid ReadAGHParams(string filename, int m_,int dim, int isTwo)\n\t{\n\t\tm = m_;\n\t\tFILE* fp=fopen(filename.c_str(),\"r\");\n\t\t//read nbits\n\t\tfscanf(fp,\"%d\",&nbits);\n\n\t\t// read delta\n\t\tfscanf(fp,\"%f\",&sigma);\n\t\t\n\t\t//read anchor\n\t\tfor (int i=0;i<m;i++)\n\t\t{\n\t\t\tvector<float> tmp;\n\t\t\ttmp.resize(dim);\n\t\t\tfor(int d = 0; d < dim; ++d) \n\t\t\t{\n\t\t   \t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t}\n\t\t\tanchor.push_back(tmp);\n\t\t}\n\n\t\t//read W\n\t\tif(isTwo==1)\n\t\t{\n\t\t\tfor (int i=0; i<m; i++)\n\t\t\t{\n\t\t\t\tvector<float> tmp;\n\t\t\t\ttmp.resize(nbits);\n\t\t\t\tfor(int d = 0; d < nbits; ++d)\n\t\t\t\t{\n\t\t\t\t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t\t}\n\t\t\t\tW.push_back(tmp);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfor (int i=0; i<m; i++)\n\t\t\t{\n\t\t\t\tvector<float> tmp;\n\t\t\t\ttmp.resize(nbits/2);\n\t\t\t\tfor(int d = 0; d < nbits/2; ++d)\n\t\t\t\t{\n\t\t\t\t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t\t}\n\t\t\t\tW.push_back(tmp);\n\t\t\t}\n\t\t}\n\t\t\n\t\t//read Thres\n\t\tif(isTwo==2)\n\t\t{\n\t\t\tfor (int i=0; i<2; i++)\n\t\t\t{\n\t\t\t\tvector<float> tmp;\n\t\t\t\ttmp.resize(nbits/2);\n\t\t\t\tfor(int d = 0; d < nbits/2; ++d)\n\t\t\t\t{\n\t\t\t\t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t\t}\n\t\t\t\tThres.push_back(tmp);\n\t\t\t}\n\t\t}\n\t}\n\t\n\tvoid compactBits(vector<vector<float> > U,vector<vector<unsigned> >* B)\n\t{\n\t\t//U n*nbits\n\t\tint n = U.size();\n\t\tint nbits = U.at(0).size();\n\t\tfor(int i=0;i<n;i++)\n\t\t{\n\t\t\tvector<unsigned> B_;\n\t\t\tunsigned tmp=0;\n\t\t\tfor(int j=0;j<=nbits;j++)\n\t\t\t{\n\t\t\t\tif(j==nbits)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(j%8==0 && j!=0)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\ttmp=0;\n\t\t\t\t}\n\t\t\t\tif(U.at(i)[j]>0)\n\t\t\t\t{\n\t\t\t\t\tunsigned pos=1<<(j%8);\n\t\t\t\t\ttmp |= pos;\n\t\t\t\t}\n\t\t\t}\n\t\t\tB->push_back(B_);\n\t\t}\n\t}\n\t\n\tstruct L_Neighbor{\n\t\tint pos;\n\t\tfloat val;\n\t\tL_Neighbor()\n\t\t{\n\t\t\tpos=0;\n\t\t\tval=-1;\n\t\t}\n\t};\n\n\tvoid UpdatePriorityList(L_Neighbor *BList, L_Neighbor tmp) {\n\t// find the location to insert\n\tint j;\n    int i = s;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].val <= tmp.val && BList[j].val!=-1) break;\n        i = j;\n    }\n\tif(i < s)\n\t{\n    \tj = s-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n\t}\n\tfloat get_distance(vector<float> point, vector<float> query)\n\t{\n\t\tint dim = query.size();\n\t\tfloat dist=0.0;\n\t\tfor(int i=0; i<dim; i++)\n\t\t{\n\t\t\tdist += pow(point[i]-query[i],2);\n\t\t}\n\t\treturn dist;\n\t}\n\n\tvoid compressAGH_OneLayer(vector<vector<float> >* X, vector<vector<unsigned> >* B,int s_)\n\t{\n\t\ts = s_;\n\t\tint nq = X->size();\n\t\tint dim = X->at(0).size();\n\t\t\n\t\tvector<vector<L_Neighbor> > Y;\n\t\t\n\t\tvector<vector<float> > Z;\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tvector<float> Z_(m,0);\n\t\t\tZ.push_back(Z_);\n\n\t\t\tvector<L_Neighbor> LNN(s);\n\t\t\tfor(int j=0; j<m; j++)\n\t\t\t{\n\t\t\t\tfloat dist = get_distance(X->at(i),anchor[j]);\n\t\t\t\tL_Neighbor L_;\n\t\t\t\tL_.pos=j;\n\t\t\t\tL_.val=dist;\n\t\t\t\tUpdatePriorityList(&LNN[0],L_);\n\t\t\t}\n\t\t\tfloat sum = 0.0;\n\t\t\tfor(int j=0;j<s;j++)\n\t\t\t{\n\t\t\t\tL_Neighbor L_= LNN[j];\n\t\t\t\tfloat val=exp((-1)* L_.val/pow(sigma,2));\n\t\t\t\tL_.val=val;\n\t\t\t\tLNN[j]=L_;\n\t\t\t\tsum += val;\n\t\t\t}\n\t\t\tsum = 1.0/sum;\n\t\t\tfor(int j=0; j<s; j++)\n\t\t\t{\n\t\t\t\tL_Neighbor L_=LNN[j];\n\t\t\t\tfloat val= L_.val*sum;\n\t\t\t\tL_.val=val;\n\t\t\t\tLNN[j] = L_;\n\t\t\t}\n\n\t\t\tY.push_back(LNN);\t\t\n\t\t}\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tfor(int j=0; j<s; j++)\n\t\t\t{\n\t\t\t\tint tep = Y[i][j].pos*nq+i;\n\t\t\t\tZ[tep%nq][ceil(tep/nq)] = Y[i][j].val;\n\t\t\t}\n\t\t}\n\t\tvector<vector<float> > U;\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tvector<float> U_;\n\t\t\tfor(int j=0; j<nbits; j++)\n\t\t\t{\n\t\t\t\tfloat tmp=0.0;\n\t\t\t\tfor(int t=0; t<m; t++)\n\t\t\t\t{\n\t\t\t\t\ttmp += Z[i][t]*W[t][j];\n\t\t\t\t}\n\t\t\t\tU_.push_back(tmp);\n\t\t\t}\n\t\t\tU.push_back(U_);\n\t\t}\n\t\tcompactBits(U,B);\n\t}\n\n\tvoid compressAGH_TwoLayer(vector<vector<float> >* X, vector<vector<unsigned> >* B,int s_)\n\t{\n\t\ts = s_;\n\t\tint nq = X->size();\n\t\t\n\t\tvector<vector<L_Neighbor> > T;\n\t\t\n\t\tvector<vector<float> > Z;\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tvector<float> Z_(m,0);\n\t\t\tZ.push_back(Z_);\n\n\t\t\tvector<L_Neighbor> LNN(s);\n\t\t\tfor(int j=0; j<m; j++)\n\t\t\t{\n\t\t\t\tfloat dist = get_distance(X->at(i),anchor[j]);\n\t\t\t\tL_Neighbor L_;\n\t\t\t\tL_.pos=j;\n\t\t\t\tL_.val=dist;\n\t\t\t\tUpdatePriorityList(&LNN[0],L_);\n\t\t\t}\n\t\t\tfloat sum = 0.0;\n\t\t\tfor(int j=0;j<s;j++)\n\t\t\t{\n\t\t\t\tL_Neighbor L_= LNN[j];\n\t\t\t\tfloat val=exp((-1)* L_.val/pow(sigma,2));\n\t\t\t\tL_.val=val;\n\t\t\t\tLNN[j]=L_;\n\t\t\t\tsum += val;\n\t\t\t}\n\t\t\tsum = 1.0/sum;\n\t\t\tfor(int j=0; j<s; j++)\n\t\t\t{\n\t\t\t\tL_Neighbor L_=LNN[j];\n\t\t\t\tfloat val= L_.val*sum;\n\t\t\t\tL_.val=val;\n\t\t\t\tLNN[j] = L_;\n\t\t\t}\n\n\t\t\tT.push_back(LNN);\t\t\n\t\t}\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tfor(int j=0; j<s; j++)\n\t\t\t{\n\t\t\t\tint tep = T[i][j].pos*nq+i;\n\t\t\t\tZ[tep%nq][ceil(tep/nq)] = T[i][j].val;\n\t\t\t}\n\t\t}\n\t\tvector<vector<float> > Y;\n\t\tfor(int i=0; i<nq; i++)//nq\n\t\t{\n\t\t\tvector<float> U_;\n\t\t\tU_.resize(nbits);\n\t\t\tfor(int j=0; j<nbits/2; j++)\n\t\t\t{\n\t\t\t\tfloat tmp=0.0;\n\t\t\t\tfor(int t=0; t<m; t++)\n\t\t\t\t{\n\t\t\t\t\ttmp += Z[i][t]*W[t][j];\n\t\t\t\t}\n\t\t\t\tU_[j]=tmp;\n\t\t\t\tif(tmp > 0)\n\t\t\t\t{\n\t\t\t\t\tU_[nbits/2+j]=tmp-Thres[0][j];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tU_[nbits/2+j]=-tmp+Thres[1][j];\n\t\t\t\t};\n\t\t\t}\n\t\t\tY.push_back(U_);\n\t\t}\n\t\tcompactBits(Y,B);\n\t}\n};\n\n#endif \n"
  },
  {
    "path": "algorithms/AGH/src/Makefile",
    "content": "##############\n# Make the AGH project\n##############\n\nPROD\t:= DEBUG\nOPT     := -O3 -march=native \nVERSION := \\\"0.1_${PROD}\\\"\nTARGETS := AGH\nSRCS    := AGH.cpp\n\nCCFLAGS = ${OPT} -Wno-deprecated -ggdb -D${PROD} -I./ -DVERSION=${VERSION}\nLDFLAGS = ${OPT} -ggdb  \nLIBS    = \nCC\t= g++ \nOBJS    := ${SRCS:.cpp=.o}\n\n\n.PHONY: all clean distclean \nall:: ${TARGETS} \n\nsrs: AGH.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\n${OBJS}: %.o: %.cpp\n\t${CC} ${CCFLAGS} -o $@ -c $< \n\nclean:: \n\t-rm -f *~ *.o ${TARGETS}\n\ndistclean:: clean\n"
  },
  {
    "path": "algorithms/AGH/src/center_chooser.h",
    "content": "#include \"random.h\"\n#include \"char_bit_cnt.h\"\n\nclass CenterChooser\n{\n\tvector<vector<unsigned>* > dataset_;\npublic:\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n\t\tsize_t size_ = dataset.size();\n\n\t\tdataset_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t\tdataset_.at(i) = &dataset.at(i);\n\n    }\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = dataset_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = dataset_.at(p1)->at(t) ^ dataset_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t} //*/\n\n\tvoid chooseCenters(int k, int* indices, int indices_length, int* centers, int& centers_length)\n\t{\n\t\tUniqueRandom r(indices_length);\n\n        int index;\n        for (index=0; index<k; ++index) {\n            bool duplicate = true;\n            int rnd;\n            while (duplicate) {\n                duplicate = false;\n                rnd = r.next();\n                if (rnd<0) {\n                    centers_length = index;\n                    return;\n                }\n\n                centers[index] = indices[rnd];\n\n                for (int j=0; j<index; ++j) {\n                    int sq = get_distance(centers[index], centers[j]);//(dataset_.at(centers[index]), dataset_.at(centers[j]));\n                    if (sq <1e-16 ) {//<1e-16\n                        duplicate = true;\n                    }\n                }\n            }\n        }\n        centers_length = index;\n\t}\n};\n"
  },
  {
    "path": "algorithms/AGH/src/char_bit_cnt.h",
    "content": "unsigned char_bit_cnt [] = {\n0x0,\n0x1,\n0x1,\n0x2,\n0x1,\n0x2,\n0x2,\n0x3,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x5,\n0x6,\n0x6,\n0x7,\n0x6,\n0x7,\n0x7,\n0x8,\n0};\n"
  },
  {
    "path": "algorithms/AGH/src/data_util.h",
    "content": "#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvoid transpose(vector<vector<float> > X,vector<vector<float> >* Y)\n{\n\n\tint dim=X.size();\n\tint n=X[0].size();\n\n\tfor(int i=0;i<n;i++)\n\t{\n\t\tvector<float> y_;\n\t\tfor(int j=0;j<dim;j++)\n\t\t{\n\t\t\ty_.push_back(X[j][i]);\n\t\t}\n\t\tY->push_back(y_);\n\t}\n}\n\nvoid ReadPoints(char* filepath,vector<vector<float> >* points, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tpoints->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&dim, sizeof(int),1,dfp);\n\t\tpoints->at(i).resize(dim);\n    \tfor(int j = 0; j < dim; ++j) {\n    \t\tfloat buffer;\n\t\t\tfread(&(buffer), sizeof(float),1,dfp);\n    \t\tpoints->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\n\nvoid ReadPoints(const string& filename, vector<vector<float> >* points, int count, int *dim) {\n\t//vector<vector<float> > X;\n\tifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n\tif(!input.good()) {\n\t\tthrow std::logic_error(\"Invalid filename\");\n\t}\n\t//X.resize(count);\n\tpoints->resize(count);\n\tint dimension;\n\tfor(int pid = 0; pid < count; ++pid) {\n\t\tinput.read((char*)&dimension, sizeof(dimension));\n\t\tif(dimension <= 0) {\n\t\t\tthrow std::logic_error(\"Bad file content: non-positive dimension\");\n\t\t}\n\t//X.at(pid).resize(dimension);\n\tpoints->at(pid).resize(dimension);\n    for(int d = 0; d < dimension; ++d) {\n    \tfloat buffer;\n    \tinput.read((char*)&(buffer), sizeof(float));\n    \t//X.at(pid)[d] = buffer;\n    \tpoints->at(pid)[d] = buffer;\n    }\n  }\n  *dim = dimension;\n  //points = &X;\n  //transpose(X,points);\n}\n\nvoid ReadGroundtruth(char* filepath, vector<vector<int> >* gnds, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint k;\n\tfread(&k,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(int)*k));\n\t*d = k;\n\t*len = n;\n\tgnds->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&k, sizeof(int),1,dfp);\n\t\tgnds->at(i).resize(k);\n    \tfor(int j = 0; j < k; ++j) {\n    \t\tint buffer;\n\t\t\tfread(&(buffer), sizeof(int),1,dfp);\n    \t\tgnds->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\nvoid ReadGroundtruth(const string& filename, vector<vector<int> >* gnds,int nq, int nn) {\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  gnds->resize(nq);\n  int k;\n  for(int pid = 0; pid < nq; ++pid) {\n    input.read((char*)&k, sizeof(k));\n    if(k <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n    gnds->at(pid).resize(k);\n    for(int d = 0; d < k; ++d) {\n      int buffer;\n      input.read((char*)&(buffer), sizeof(int));\n      gnds->at(pid)[d] = buffer;\n    }\n  }\n  //*nn = k;\n}\n\nvoid ReadB1(const string& filename, vector<vector<unsigned> >* B1,int n) {//\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  B1->resize(n);\n  int cbits;\n  for(int pid = 0; pid < n; ++pid) {\n    input.read((char*)&cbits, sizeof(cbits));\n    if(cbits <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n    B1->at(pid).resize(cbits);\n    for(int d = 0; d < cbits; ++d) {\n      int buffer;\n      input.read((char*)&(buffer), sizeof(int));\n      B1->at(pid)[d] = (unsigned)buffer;//(unsigned)\n    }\n  }\n}\n\n\nvoid ReadChecks(const string& filename, vector<int>* checks) {\n  FILE *fp = fopen(filename.c_str(), \"r\");\n  int n;\n  fscanf(fp, \"%d \", &n);\n  checks->resize(n);\n  int tmp;\n  for (int i = 0; i < n; ++i) {\n    fscanf(fp, \"%d \", &tmp);\n    checks->at(i)=tmp;\n  }\n}\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/AGH/src/dynamic_bitset.h",
    "content": "#include <limits.h>\n\nclass DynamicBitset\n{\npublic:\n    /** @param only constructor we use in our code\n     * @param the size of the bitset (in bits)\n     */\n    DynamicBitset(size_t size)\n    {\n        resize(size);\n        reset();\n    }\n\n    /** Sets all the bits to 0\n     */\n    void clear()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    void reset()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    \n    void resize(size_t size)\n    {\n        size_ = size;\n        bitset_.resize(size / cell_bit_size_ + 1);\n    }\n    size_t size() const\n    {\n        return size_;\n    }\n\n\tvoid set(size_t index)\n    {\n        bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);\n    }\n\n    /** @param check if a bit is set\n     * @param index the index of the bit to check\n     * @return true if the bit is set\n     */\n    bool test(size_t index) const\n    {\n        return (bitset_[index / cell_bit_size_] & (size_t(1) << (index % cell_bit_size_))) != 0;\n    }\n\nprivate:\n    std::vector<size_t> bitset_;\n    size_t size_;\n    static const unsigned int cell_bit_size_ = CHAR_BIT * sizeof(size_t);\n};\n"
  },
  {
    "path": "algorithms/AGH/src/eval.h",
    "content": "#ifndef EVAL_H_\n#define EVAL_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n#include <set>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j] == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k])\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k])\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tfloat test_distance = get_distance(points->at(results->at(i)[j]),query->at(i));\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tint nq = results->size();\n\tint nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i)\n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<int> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results, float* recall)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tcout<<\"nq:\"<<nq<<\" \"<<nn<<endl;\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j].id == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k].id)\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k].id)\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tfloat test_distance=results->at(i)[j].dist;\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n           \n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tint nq = results->size();\n\tint nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i)\n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\n#endif /* EVAL_H_ */\n"
  },
  {
    "path": "algorithms/AGH/src/hammingDist.h",
    "content": "#ifndef HAMMINGDIST_H_\n#define HAMMINGDIST_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n#include \"hierarchical_clustering_index.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nstruct B_Neighbor{\n\tint id;\n\tint dist;\n\tB_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n\tint get_id(){return id;}\n};\n\nstruct E_Neighbor{\n\tint id;\n\tfloat dist;\n\tE_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n};\n\nfloat get_distance(vector<float> point, vector<float> query)\n{\n\tint dim = query.size();\n\tfloat dist=0.0;\n\tfor(int i=0; i<dim; i++)\n\t{\n\t\tdist += pow(point[i]-query[i],2);\n\t}\n\treturn dist;\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> d_;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\t\t\td_.push_back(tmp);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid UpdatePriorityList_Binary (B_Neighbor *BList, B_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist,int nn)\n{\n\tint len = nn;\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<B_Neighbor> BNN(len);\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\n\t\t\tB_Neighbor b_;\n\t\t\tb_.id=j;\n\t\t\tb_.dist=tmp;\n\n\t\t\tUpdatePriorityList_Binary ( &BNN[0], b_, len);\n\t\t}\n\t\tvector<int> d_;\n\t\tfor(int j=0;j<len;j++)\n\t\t{\n\t\t\td_.push_back(BNN.at(j).id);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid hammingDist_ByRange(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* IDs,int radis)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<int> BNN;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\t\t\tif(tmp<=radis)\n\t\t\t\tBNN.push_back(j);\n\t\t}\n\t\tIDs->push_back(BNN);\n\t}\n}\n\nvoid UpdatePriorityList_Euclidean (E_Neighbor *BList, E_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvector<vector<int> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<int> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> result;\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs->at(i).size();\n\t\tvector<int> ids_ = IDs->at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\tfor(int j=0;j<K;j++)\n\t\t{\n\t\t\tresult.push_back(ENN[j].id);\n\t\t}\n\t\tresults.push_back(result);\n\t}\n\treturn results;\n}\n\n\n/*\nvector<vector<E_Neighbor> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> > IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<E_Neighbor> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs.at(i).size();\n\t\tvector<int> ids_ = IDs.at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\t//for(int j=0;j<K;j++)\n\t\t//{\n\t\t\t//cout<<ENN[j].id<<\" \"<<ENN[j].dist<<endl;\n\t\t//}\n\t\tresults.push_back(ENN);\n\t}\n\treturn results;\n}\n*/\n\n#endif /* HAMMINGDIST_H_ */\n"
  },
  {
    "path": "algorithms/AGH/src/heap.h",
    "content": "#include <algorithm>\n#include <vector>\n\n\ntemplate <typename T>\nclass Heap\n{\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<T> heap;\n    int length;\n\n    /**\n     * Number of element in the heap\n     */\n    int count;\n\n\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    Heap(int size)\n    {\n        length = size;\n        heap.reserve(length);\n        count = 0;\n    }\n\n    /**\n     *\n     * Returns: heap size\n     */\n    int size()\n    {\n        return count;\n    }\n\n    /**\n     * Tests if the heap is empty\n     *\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size()==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        heap.clear();\n        count = 0;\n    }\n\n    struct CompareT : public std::binary_function<T,T,bool>\n    {\n        bool operator()(const T& t_1, const T& t_2) const\n        {\n            return t_2 < t_1;\n        }\n    };\n\n    /**\n     * Insert a new element in the heap.\n     *\n     * We select the next empty leaf node, and then keep moving any larger\n     * parents down until the right location is found to store this element.\n     *\n     * Params:\n     *     value = the new element to be inserted in the heap\n     */\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (count == length) {\n            return;\n        }\n\n        heap.push_back(value);\n        static CompareT compareT;\n        std::push_heap(heap.begin(), heap.end(), compareT);\n        ++count;\n    }\n\n\n\n    /**\n     * Returns the node of minimum value from the heap (top of the heap).\n     *\n     * Params:\n     *     value = out parameter used to return the min element\n     * Returns: false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (count == 0) {\n            return false;\n        }\n\n        value = heap[0];\n        static CompareT compareT;\n        std::pop_heap(heap.begin(), heap.end(), compareT);\n        heap.pop_back();\n        --count;\n\n        return true;  /* Return old last node. */\n    }\n};\n\n\ntemplate <typename T>\nclass IntervalHeap\n{\n\tstruct Interval\n\t{\n\t\tT left;\n\t\tT right;\n\t};\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<Interval> heap;\n    size_t capacity_;\n    size_t size_;\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    IntervalHeap(int capacity) : capacity_(capacity), size_(0)\n    {\n        heap.resize(capacity/2 + capacity%2 + 1); // 1-based indexing\n    }\n\n    /**\n     * @return Heap size\n     */\n    size_t size()\n    {\n        return size_;\n    }\n\n    /**\n     * Tests if the heap is empty\n     * @return true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size_==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        size_ = 0;\n    }\n\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (size_ == capacity_) {\n            return;\n        }\n\n        // insert into the root\n        if (size_<2) {\n        \tif (size_==0) {\n        \t\theap[1].left = value;\n        \t\theap[1].right = value;\n        \t}\n        \telse {\n        \t\tif (value<heap[1].left) {\n        \t\t\theap[1].left = value;\n        \t\t}\n        \t\telse {\n        \t\t\theap[1].right = value;\n        \t\t}\n        \t}\n        \t++size_;\n        \treturn;\n        }\n\n        size_t last_pos = size_/2 + size_%2;\n        bool min_heap;\n\n        if (size_%2) { // odd number of elements\n        \tmin_heap = (value<heap[last_pos].left)? true : false;\n        }\n        else {\n        \t++last_pos;\n        \tmin_heap = (value<heap[last_pos/2].left)? true : false;\n        }\n\n        if (min_heap) {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && value < heap[par].left) {\n        \t\theap[pos].left = heap[par].left;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].left = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].right = heap[last_pos].left;\n        \t}\n        }\n        else {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && heap[par].right < value) {\n        \t\theap[pos].right = heap[par].right;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].right = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].left = heap[last_pos].right;\n        \t}\n        }\n    }\n\n\n    /**\n     * Returns the node of minimum value from the heap\n     * @param value out parameter used to return the min element\n     * @return false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].left;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].left;\n\n        if (size_ % 2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].left = heap[last_pos].right;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child+1].left < heap[child].left) ++child; // pick the child with min\n\n        \tif (!(heap[child].left<elem)) break;\n\n        \theap[crt].left = heap[child].left;\n        \tif (heap[child].right<elem) {\n        \t\tstd::swap(elem, heap[child].right);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].left = elem;\n        return true;\n    }\n\n\n    /**\n     * Returns the element of maximum value from the heap\n     * @param value\n     * @return false if heap empty\n     */\n    bool popMax(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].right;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].right;\n\n        if (size_%2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].right = heap[last_pos].left;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child].right < heap[child+1].right) ++child; // pick the child with max\n\n        \tif (!(elem < heap[child].right)) break;\n\n        \theap[crt].right = heap[child].right;\n        \tif (elem<heap[child].left) {\n        \t\tstd::swap(elem, heap[child].left);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].right = elem;\n        return true;\n    }\n\n\n    bool getMin(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].left;\n    \treturn true;\n    }\n\n\n    bool getMax(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].right;\n    \treturn true;\n    }\n};\n\n\ntemplate <typename T>\nclass BoundedHeap\n{\n\tIntervalHeap<T> interval_heap_;\n\tsize_t capacity_;\npublic:\n\tBoundedHeap(size_t capacity) : interval_heap_(capacity), capacity_(capacity)\n\t{\n\n\t}\n\n    /**\n     * Returns: heap size\n     */\n    int size()\n    {\n        return interval_heap_.size();\n    }\n\n    /**\n     * Tests if the heap is empty\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return interval_heap_.empty();\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n    \tinterval_heap_.clear();\n    }\n\n    void insert(const T& value)\n    {\n    \tif (interval_heap_.size()==capacity_) {\n    \t\tT max;\n    \t\tinterval_heap_.getMax(max);\n    \t\tif (max<value) return;\n   \t\t\tinterval_heap_.popMax(max);\n    \t}\n    \tinterval_heap_.insert(value);\n    }\n\n    bool popMin(T& value)\n    {\n    \treturn interval_heap_.popMin(value);\n    }\n};\n\n"
  },
  {
    "path": "algorithms/AGH/src/hierarchical_clustering_index.h",
    "content": "#include <algorithm>\n#include <string>\n#include <cmath>\n#include <vector>\n#include <iostream>\n#include \"center_chooser.h\"\n//#include \"char_bit_cnt.h\"\n#include \"dynamic_bitset.h\"\n#include \"heap.h\"\n#include \"result_set.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n//typedef unsigned ElementType;\n//typedef int DistanceType;\n\nclass HierarchicalClusteringIndex\n{\n\tprivate:\n\n\tint branching_;\n    int trees_;\n    int leaf_max_size_;\n\n\tsize_t size_;\n \tsize_t veclen_;\n\tsize_t size_at_build_;\n\tsize_t last_id_;\n\n\tvector<size_t> ids_;\n\tvector<vector<unsigned>* > points_;\n\tCenterChooser Centers_;\n\t\n\t//DynamicBitset removed_points_;\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n    \tsize_ = dataset.size();\n    \t//cout<<\"size_: \"<<size_ <<endl;\n    \t//veclen_ = dataset->at(0).size();\n    \t//last_id_ = 0;\n\n    \t//ids_.clear();\n    \t//removed_points_.clear();\n    \t//removed_ = false;\n    \t//removed_count_ = 0;\n\n\t\tpoints_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t{\n\t\t\tpoints_.at(i) = &dataset.at(i);\n\t\t}\n\t\t//cout<<\"points00: \"<<points_.at(0)->at(0)<<endl;\n    }\n\tpublic:\n\n\tvoid set_params(vector<vector<unsigned> >& inputData, int b=32,int t=4,int leaf=100)\n    {\n        branching_ = b;\n        trees_ = t;\n        leaf_max_size_ = leaf;\n\n\t\tsetDataset(inputData);\n\n        Centers_.setDataset(inputData);\n\t\tDynamicBitset checked(size_);\n    }\n\n\n    /**\n     * Builds the index\n     */\n    void buildIndex()\n    {\n        if (branching_<2) {\n            cerr<<\"Branching factor must be at least 2\"<<endl;\n\t\t\treturn;\n        }\n        tree_roots_.resize(trees_);\n        vector<int> indices(size_);\n        for (int i=0; i<trees_; ++i) {\n            for (size_t j=0; j<size_; ++j) {\n                indices[j] = j;\n            }\n            tree_roots_[i] = new Node();\n            //cout<< points_.at(0)->at(0)<<\" \"<<points_.at(1)->at(0)<<\" \"<< get_distance(0,1)<<endl;\n            computeClustering(tree_roots_[i], &indices[0], size_);\n        }\n    }\n\n\tstruct PointInfo\n    {\n    \t\n    \tsize_t index;   /** Point index */\n    \t\n    \tvector<unsigned>* point;  /** Point data */\n    };\n\n\n\n\tstruct Node\n    {\n        \n    \tvector<unsigned>* pivot;  /** The cluster center  */\n\n    \tsize_t pivot_index;\n        \n        vector<Node*> childs;        /**   Child nodes (only for non-terminal nodes)  */\n        \n        vector<PointInfo> points;    /**    Node points (only for terminal nodes)   */\n\n        ~Node()\n        {\n        \tfor(size_t i=0; i<childs.size(); i++){\n        \t\tchilds[i]->~Node();\n        \t}\n        };\n    };\n\n\ttypedef Node* NodePtr;\n\tstruct BranchStruct\n\t{\n    \tNode* node;           /* Tree node at which search resumes */\n    \tint mindist;     /* Minimum distance to query for all nodes below. */\n\n    \tBranchStruct() {}\n    \tBranchStruct(Node* aNode, int dist) : node(aNode), mindist(dist)\n    \t{//cout<<\"branch node:\"<<aNode->pivot_index <<\" \"<<node->pivot_index<<endl;\n    \t}\n\n    \tbool operator<(const BranchStruct& rhs) const\n    \t{\n        \treturn mindist<rhs.mindist;\n    \t}\n\t};\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = points_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = points_.at(p1)->at(t) ^ points_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n\n\t\n\tint get_distance(const vector<unsigned>* p1, const vector<unsigned>* p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = p1->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = p1->at(t) ^ p2->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n//*/\n\n\tvoid computeLabels(int* indices, int indices_length,  int* centers, int centers_length, int* labels)\n    {\n        for (int i=0; i<indices_length; ++i) {\n            int dist = get_distance(indices[i],centers[0]);\n            labels[i] = 0;\n            for (int j=1; j<centers_length; ++j) {\n                int new_dist = get_distance(indices[i],centers[j]); //(points_.at(indices[i]),points_.at(centers[j]));\n                if (dist>new_dist) {\n                    labels[i] = j;\n                    dist = new_dist;\n                }\n            }\n        }\n    }\n\n\tvoid computeClustering(Node* node, int* indices, int indices_length)\n    {\n\t\t//cout<<\"begin:\"<<indices_length<<endl;\n        if (indices_length < leaf_max_size_) { // leaf node\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\"indices:\"<<indices_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        std::vector<int> centers(branching_);\n        std::vector<int> labels(indices_length);\n\n        int centers_length;\n\t\tCenters_.chooseCenters(branching_, indices, indices_length, &centers[0], centers_length);\n\t\t//cout<<\"choose centers_length :  \"<<centers_length<<endl;\n\n        if (centers_length<branching_) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\" centers: \"<<centers_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        //  assign points to clusters\n        computeLabels(indices, indices_length, &centers[0], centers_length, &labels[0]);\n\n        node->childs.resize(branching_);\n        int start = 0;\n        int end = start;\n        for (int i=0; i<branching_; ++i) {\n            for (int j=0; j<indices_length; ++j) {\n                if (labels[j]==i) {\n                    std::swap(indices[j],indices[end]);\n                    std::swap(labels[j],labels[end]);\n                    end++;\n                }\n            }\n\n            node->childs[i] = new Node();\n            node->childs[i]->pivot_index = centers[i];\n            node->childs[i]->pivot = points_.at(centers[i]);\n            node->childs[i]->points.clear();\n            computeClustering(node->childs[i],indices+start, end-start);\n            start=end;\n        }\n    }\n\n\ttypedef BranchStruct BranchSt;\n\n\tvoid findNN(NodePtr node, ResultSet& result, const vector<unsigned>* vec, int& checks,const int maxChecks,\n\t                Heap<BranchSt>* heap,  DynamicBitset& checked)\n\t{\n\t    if (node->childs.empty())\n\t    {\n\t        if (checks>=maxChecks) {\n\t              if (result.full()) return;\n\t        }\n\n\t        for (size_t i=0; i<node->points.size(); ++i)\n\t        {\n\t            PointInfo& pointInfo = node->points[i];\n\t            if (checked.test(pointInfo.index)) continue;\n\t            int dist = get_distance(pointInfo.point, vec);\n\t            result.addPoint(dist, pointInfo.index);\n\t                checked.set(pointInfo.index);\n\t                ++checks;\n\t            }\n\t        }\n\t        else {\n\t            int* domain_distances = new int[branching_];\n\t            int best_index = 0;\n\t            domain_distances[best_index] = get_distance(vec, node->childs[best_index]->pivot);\n\t            for (int i=1; i<branching_; ++i) {\n\t                domain_distances[i] = get_distance(vec, node->childs[i]->pivot);\n\t                if (domain_distances[i]<domain_distances[best_index]) {\n\t                    best_index = i;\n\t                }\n\t            }\n\t            for (int i=0; i<branching_; ++i) {\n\t                if (i!=best_index) {\n\t                    heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n\t                }\n\t            }\n\t            delete[] domain_distances;\n\t            findNN(node->childs[best_index],result,vec, checks, maxChecks, heap, checked);\n\t        }\n\t    }\n\n\n\n\tvoid findNeighborsWithRemoved(ResultSet& result, const vector<unsigned>* vec, const int maxChecks)\n    {\n        //int maxChecks = searchParams.checks;\n\n        // Priority queue storing intermediate branches in the best-bin-first search\n        Heap<BranchSt>* heap = new Heap<BranchSt>(size_);\n\n        DynamicBitset checked(size_);\n        int checks = 0;\n        for (int i=0; i<trees_; ++i) {\n            findNN(tree_roots_[i], result, vec, checks, maxChecks, heap, checked);\n        }\n\n        BranchSt branch;\n        while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n            NodePtr node = branch.node;\n            findNN(node, result, vec, checks, maxChecks, heap, checked);\n        }\n\n        delete heap;\n    }\n\n\n\n\n\tint knnSearch(const vector<vector<unsigned> >& queries, vector< vector<int> >& indices,\tvector< vector<int> >& dists,size_t knn,const int maxChecks)\n    {\n        if (indices.size() < queries.size() ) indices.resize(queries.size());\n\t\tif (dists.size() < queries.size() )   dists.resize(queries.size());\n\n\t\tint count = 0;\n\n\t\tfor (int i = 0; i < (int)queries.size(); i++)\n\t\t{\n\t\t\t\t//resultSet.clear();\n\t\t\t\tResultSet resultSet(knn);\n\t\t\t\tfindNeighborsWithRemoved(resultSet, &queries.at(i), maxChecks);\n\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\tindices[i].resize(n);\n\t\t\t\tdists[i].resize(n);\n\t\t\t\tif (n>0)\n\t\t\t\t{\n\t\t\t\t\tresultSet.copy(&indices.at(i), &dists.at(i), n);\n\t\t\t\t}\n\t\t\t\tcount += n;\n\t\t}\n\t\treturn count;\n    }\n\n\tvector<Node*> tree_roots_;\n};\n\n"
  },
  {
    "path": "algorithms/AGH/src/random.h",
    "content": "#include <algorithm>\n#include <cstdlib>\n#include <cstddef>\n#include <vector>\n/**\n * Seeds the random number generator\n *  @param seed Random seed\n */\ninline void seed_random(unsigned int seed)\n{\n    srand(seed);\n}\n\n/*\n * Generates a random double value.\n */\n/**\n * Generates a random double value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random double value\n */\ninline double rand_double(double high = 1.0, double low = 0)\n{\n    return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n/**\n * Generates a random integer value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random integer value\n */\ninline int rand_int(int high = RAND_MAX, int low = 0)\n{\n    return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n\nclass RandomGenerator\n{\npublic:\n    ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }\n};\n\n\n/**\n * Random number generator that returns a distinct number from\n * the [0,n) interval each time.\n */\nclass UniqueRandom\n{\n    std::vector<int> vals_;\n    int size_;\n    int counter_;\n\npublic:\n    /**\n     * Constructor.\n     * @param n Size of the interval from which to generate\n     * @return\n     */\n    UniqueRandom(int n)\n    {\n        init(n);\n    }\n\n    /**\n     * Initializes the number generator.\n     * @param n the size of the interval from which to generate random numbers.\n     */\n    void init(int n)\n    {\n        static RandomGenerator generator;\n        // create and initialize an array of size n\n        vals_.resize(n);\n        size_ = n;\n        for (int i = 0; i < size_; ++i) vals_[i] = i;\n\n        // shuffle the elements in the array\n        std::random_shuffle(vals_.begin(), vals_.end(), generator);\n\n        counter_ = 0;\n    }\n\n    /**\n     * Return a distinct random integer in greater or equal to 0 and less\n     * than 'n' on each call. It should be called maximum 'n' times.\n     * Returns: a random integer\n     */\n    int next()\n    {\n        if (counter_ == size_) {\n            return -1;\n        }\n        else {\n            return vals_[counter_++];\n        }\n    }\n};\n\n\n\n"
  },
  {
    "path": "algorithms/AGH/src/result_set.h",
    "content": "#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\n\nstruct DistanceIndex\n{\n    DistanceIndex(int dist, int index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    int dist_;\n    int index_;\n};\n\n\nclass ResultSet\n{\npublic:\n\t//typedef DistanceIndex<int> DistIndex;\n\n\tResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~ResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<int>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full()\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(int dist, int index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistanceIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(vector<int>* indices, vector<int>* dists, size_t num_elements)\n    {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t//std::sort(dist_index_.begin(), dist_index_.end());\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\tindices->at(i) = dist_index_[i].index_;\n    \t\tdists->at(i) = dist_index_[i].dist_;\n    \t}\n    }\n\n    int worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    int worst_dist_;\n    std::vector<DistanceIndex> dist_index_;\n    bool is_full_;\n};\n"
  },
  {
    "path": "algorithms/Annoy/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"annoy\">Annoy</h1>\n<p>Annoy (Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python bindings to search for approximate nearest neighbor search with L2 or angular distance. The version here is based on Annoy's source code obtained on 5 April 2016. Please refer to <a href=\"https://github.com/spotify/annoy\"><strong>Annoy</strong> at GitHub</a> for more details.</p>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li>linux system</li>\n<li>A <a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">sample data</a> (e.g., audio) has been downloaded, which includes its data points, query points, and ground truth results. Note that we need to change data format later. All data files downloaded should be put in the <code>./knn_benchmark/data</code> directory.</li>\n</ul>\n<h2 id=\"compile-annoysrc\">Compile (Annoy/src)</h2>\n<p>build the Annoy trees construction and Annoy search programs.</p>\n<pre><code>make</code></pre>\n<h2 id=\"construct-annoy-trees-and-conduct-search-dpgscript\">Construct Annoy trees and conduct search (DPG/script)</h2>\n<pre><code>run.sh</code></pre>\n<p>Note that, in our experiment paper, we vary the number of data points explored to achieve the trade-off between search speed and search quality (recall). This is exactly the same with KGraph.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/Annoy/README.md",
    "content": "# Annoy \n\nAnnoy (Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python\nbindings to search for approximate nearest neighbor search with L2 or angular\ndistance. The version here is based on Annoy's source code obtained on 5\nApril 2016. Please refer to\n[**Annoy** at GitHub](https://github.com/spotify/annoy) for more details.\n\n\n\n## Prerequisites\n\n- linux system \n- A\n  [sample data ](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data)\n  (e.g., audio) has been downloaded, which includes its data points, query\n  points, and ground truth results. Note that we need to change data format\n  later. All data files downloaded should be put in the `./knn_benchmark/data`\n  directory.\n\n \n## Compile (Annoy/src)\n\nbuild the Annoy trees construction and Annoy search programs.\n\n```\nmake\n```\n\n\n## Construct Annoy trees and conduct search (DPG/script)\n\n```\nrun.sh\n```\n\nNote that, in our experiment paper, we vary the number of data points explored to achieve the trade-off between search speed and search quality (recall). This is exactly the same with KGraph.\n\n\n"
  },
  {
    "path": "algorithms/Annoy/script/indexer.sh",
    "content": "data_path=$1 # ./fvecs\ntrees=$2     # the number of tree\nindex_path=$3    \nindextime_path=$4\n\ncd ../src\n\n./indexer -i ${index_path} -d ${data_path} -o ${indextime_path} -t ${trees}\n"
  },
  {
    "path": "algorithms/Annoy/script/run.sh",
    "content": "\nk=20\nntree=50\n\nmkdir ../index \nsh ./indexer.sh ../../../data/audio_base.fvecs ${ntree} ../index/audio.${ntree}tree ../index/index_${ntree}.txt\n\nmkdir ../result\n\nsh ./searcher.sh ../index/audio.${ntree}tree ../../../data/audio_query.fvecs ../../../data/audio_groundtruth.fvecs ${k} ../result/audio_${ntree}tree.txt\n\n"
  },
  {
    "path": "algorithms/Annoy/script/searcher.sh",
    "content": "index_path=$1\nquery_path=$2 # ./fvecs\ngnd_path=$3 # ./ivecs\nk=$4\noutput_path=$5\n\ncd ../src\n\nfor stop in 100 300 400 500 800 1000\ndo\n\n./searcher -i ${index_path} -q ${query_path} -g ${gnd_path} -o ${output_path} -k ${k} -c ${stop}  \ndone\n\n\n"
  },
  {
    "path": "algorithms/Annoy/src/Makefile",
    "content": "CC=g++\nCCFLAGS=-O3 -lm -fPIC -fomit-frame-pointer -fno-stack-protector \nCPP_FILES=annoy.cpp\nOBJ_FILES=$(CPP_FILES:%.cpp=%.o)\n\n# Compile a single file.\n%.o: %.cpp %.h\n\t$(CC) $(CCFLAGS) -c $<\n\n# Main target.\nall: indexer searcher\n\trm -f *.o\n\nindexer: $(OBJ_FILES) indexer.o\n\trm -f $@\n\tg++ -fPIC $(OBJ_FILES) indexer.o -o $@\n\nsearcher: $(OBJ_FILES) searcher.o\n\trm -f $@\n\tg++ -fPIC $(OBJ_FILES) searcher.o -o $@\n\nclean: \n\trm -f *~ *.o\n\trm indexer searcher\n\n# Declare phony targets.\n.PHONY: all clean\n\n"
  },
  {
    "path": "algorithms/Annoy/src/annoy.cpp",
    "content": "// Copyright (c) 2013 Spotify AB\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n// use this file except in compliance with the License. You may obtain a copy of\n// the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n// License for the specific language governing permissions and limitations under\n// the License.\n\n#ifndef ANNOYLIB_H\n#define ANNOYLIB_H\n\n#include <stdio.h>\n#include <string>\n#include <sys/stat.h>\n#include <unistd.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <sys/types.h>\n#include <fcntl.h>\n#include <stddef.h>\n#include <stdint.h>\n\n#ifdef __MINGW32__\n#include \"mman.h\"\n#include <windows.h>\n#else\n#include <sys/mman.h>\n#endif\n\n#include <string.h>\n#include <math.h>\n#include <vector>\n#include <algorithm>\n#include <queue>\n#include <limits>\n#include <iostream>\nusing namespace std;\nusing std::cout;\nusing std::endl;\n\n// This allows others to supply their own logger / error printer without\n// requiring Annoy to import their headers. See RcppAnnoy for a use case.\n#ifndef __ERROR_PRINTER_OVERRIDE__\n  #define showUpdate(...) { fprintf(stderr, __VA_ARGS__ ); }\n#else\n  #define showUpdate(...) { __ERROR_PRINTER_OVERRIDE__( __VA_ARGS__ ); }\n#endif\n\n#ifndef ANNOY_NODE_ATTRIBUTE\n  #define ANNOY_NODE_ATTRIBUTE __attribute__((__packed__))\n  // TODO: this is turned on by default, but may not work for all architectures! Need to investigate.\n#endif\n\n\nusing std::vector;\nusing std::string;\nusing std::pair;\nusing std::numeric_limits;\nusing std::make_pair;\n\nstruct RandRandom {\n  // Default implementation of annoy-specific random number generator that uses rand() from standard library.\n  // Owned by the AnnoyIndex, passed around to the distance metrics\n  inline int flip() {\n    // Draw random 0 or 1\n    return rand() & 1;\n  }\n  inline size_t index(size_t n) {\n    // Draw random integer between 0 and n-1 where n is at most the number of data points you have\n    return rand() % n;\n  }\n};\n\ntemplate<typename T>\ninline T get_norm(T* v, int f) {\n  T sq_norm = 0;\n  for (int z = 0; z < f; z++)\n    sq_norm += v[z] * v[z];\n  return sqrt(sq_norm);\n}\n\ntemplate<typename T>\ninline void normalize(T* v, int f) {\n  T norm = get_norm(v, f);\n  for (int z = 0; z < f; z++)\n    v[z] /= norm;\n}\n\ntemplate<typename T, typename Random, typename Distance, typename Node>\ninline void two_means(const vector<Node*>& nodes, int f, Random& random, bool cosine, T* iv, T* jv) {\n  /*\n    This algorithm is a huge heuristic. Empirically it works really well, but I\n    can't motivate it well. The basic idea is to keep two centroids and assign\n    points to either one of them. We weight each centroid by the number of points\n    assigned to it, so to balance it. \n  */\n  static int iteration_steps = 200;\n  size_t count = nodes.size();\n\n  size_t i = random.index(count);\n  size_t j = random.index(count-1);\n  j += (j >= i); // ensure that i != j\n  std::copy(&nodes[i]->v[0], &nodes[i]->v[f], &iv[0]);\n  std::copy(&nodes[j]->v[0], &nodes[j]->v[f], &jv[0]);\n  if (cosine) { normalize(&iv[0], f); normalize(&jv[0], f); }\n\n  int ic = 1, jc = 1;\n  for (int l = 0; l < iteration_steps; l++) {\n    size_t k = random.index(count);\n    T di = ic * Distance::distance(&iv[0], nodes[k]->v, f),\n      dj = jc * Distance::distance(&jv[0], nodes[k]->v, f);\n    T norm = cosine ? get_norm(nodes[k]->v, f) : 1.0;\n    if (di < dj) {\n      for (int z = 0; z < f; z++)\n\tiv[z] = (iv[z] * ic + nodes[k]->v[z] / norm) / (ic + 1);\n      ic++;\n    } else if (dj < di) {\n      for (int z = 0; z < f; z++)\n\tjv[z] = (jv[z] * jc + nodes[k]->v[z] / norm) / (jc + 1);\n      jc++;\n    }\n  }\n}\n\n\nstruct Angular {\n  template<typename S, typename T>\n  struct ANNOY_NODE_ATTRIBUTE Node {\n    /*\n     * We store a binary tree where each node has two things\n     * - A vector associated with it\n     * - Two children\n     * All nodes occupy the same amount of memory\n     * All nodes with n_descendants == 1 are leaf nodes.\n     * A memory optimization is that for nodes with 2 <= n_descendants <= K,\n     * we skip the vector. Instead we store a list of all descendants. K is\n     * determined by the number of items that fits in the space of the vector.\n     * For nodes with n_descendants == 1 the vector is a data point.\n     * For nodes with n_descendants > K the vector is the normal of the split plane.\n     * Note that we can't really do sizeof(node<T>) because we cheat and allocate\n     * more memory to be able to fit the vector outside\n     */\n    S n_descendants;\n    S children[2]; // Will possibly store more than 2\n    T v[1]; // We let this one overflow intentionally. Need to allocate at least 1 to make GCC happy\n  };\n  template<typename T>\n  static inline T distance(const T* x, const T* y, int f) {\n    // want to calculate (a/|a| - b/|b|)^2\n    // = a^2 / a^2 + b^2 / b^2 - 2ab/|a||b|\n    // = 2 - 2cos\n    T pp = 0, qq = 0, pq = 0;\n    for (int z = 0; z < f; z++, x++, y++) {\n      pp += (*x) * (*x);\n      qq += (*y) * (*y);\n      pq += (*x) * (*y);\n    }\n    T ppqq = pp * qq;\n    if (ppqq > 0) return 2.0 - 2.0 * pq / sqrt(ppqq);\n    else return 2.0; // cos is 0\n  }\n  template<typename S, typename T>\n  static inline T margin(const Node<S, T>* n, const T* y, int f) {\n    T dot = 0;\n    for (int z = 0; z < f; z++)\n      dot += n->v[z] * y[z];\n    return dot;\n  }\n  template<typename S, typename T, typename Random>\n  static inline bool side(const Node<S, T>* n, const T* y, int f, Random& random) {\n    T dot = margin(n, y, f);\n    if (dot != 0)\n      return (dot > 0);\n    else\n      return random.flip();\n  }\n  template<typename S, typename T, typename Random>\n  static inline void create_split(const vector<Node<S, T>*>& nodes, int f, Random& random, Node<S, T>* n) {\n    vector<T> best_iv(f, 0), best_jv(f, 0); // TODO: avoid allocation\n    two_means<T, Random, Angular, Node<S, T> >(nodes, f, random, true, &best_iv[0], &best_jv[0]);\n    for (int z = 0; z < f; z++)\n      n->v[z] = best_iv[z] - best_jv[z];\n    normalize(n->v, f);\n  }\n  template<typename T>\n  static inline T normalized_distance(T distance) {\n    // Used when requesting distances from Python layer\n    // Turns out sometimes the squared distance is -0.0\n    // so we have to make sure it's a positive number.\n    return sqrt(std::max(distance, T(0)));\n  }\n};\n\nstruct Euclidean {\n  template<typename S, typename T>\n  struct ANNOY_NODE_ATTRIBUTE Node {\n    S n_descendants;\n    T a; // need an extra constant term to determine the offset of the plane\n    S children[2];\n    T v[1];\n  };\n\n  template<typename T>\n  static inline T distance(const T* x, const T* y, int f) {\n    T d = 0.0;\n    for (int i = 0; i < f; i++, x++, y++)\n      d += ((*x) - (*y)) * ((*x) - (*y));\n    return d;\n  }\n  template<typename S, typename T>\n  static inline T margin(const Node<S, T>* n, const T* y, int f) {\n    T dot = n->a;\n    for (int z = 0; z < f; z++)\n      dot += n->v[z] * y[z];\n    return dot;\n  }\n  template<typename S, typename T, typename Random>\n  static inline bool side(const Node<S, T>* n, const T* y, int f, Random& random) {\n    T dot = margin(n, y, f);\n    if (dot != 0)\n      return (dot > 0);\n    else\n      return random.flip();\n  }\n  template<typename S, typename T, typename Random>\n  static inline void create_split(const vector<Node<S, T>*>& nodes, int f, Random& random, Node<S, T>* n) {\n    vector<T> best_iv(f, 0), best_jv(f, 0);\n    two_means<T, Random, Euclidean, Node<S, T> >(nodes, f, random, false, &best_iv[0], &best_jv[0]);\n\n    for (int z = 0; z < f; z++)\n      n->v[z] = best_iv[z] - best_jv[z];\n    normalize(n->v, f);\n    n->a = 0.0;\n    for (int z = 0; z < f; z++)\n      n->a += -n->v[z] * (best_iv[z] + best_jv[z]) / 2;\n  }\n  template<typename T>\n  static inline T normalized_distance(T distance) {\n    return sqrt(std::max(distance, T(0)));\n  }\n};\n\ntemplate<typename S, typename T>\nclass AnnoyIndexInterface {\n public:\n  virtual ~AnnoyIndexInterface() {};\n  virtual void add_item(S item, const T* w) = 0;\n  virtual void build(int q) = 0;\n  virtual bool save(const char* filename) = 0;\n  virtual void unload() = 0;\n  virtual bool load(const char* filename) = 0;\n  virtual T get_distance(S i, S j) = 0;\n  virtual void get_nns_by_item(S item, size_t n, size_t search_k, vector<S>* result, vector<T>* distances) = 0;\n  virtual void get_nns_by_vector(const T* w, size_t n, size_t search_k, vector<S>* result, vector<T>* distances) = 0;\n  virtual S get_n_items() = 0;\n  virtual void verbose(bool v) = 0;\n  virtual void get_item(S item, T* v) = 0;\n};\n\ntemplate<typename S, typename T, typename Distance, typename Random>\n  class AnnoyIndex : public AnnoyIndexInterface<S, T> {\n  /*\n   * We use random projection to build a forest of binary trees of all items.\n   * Basically just split the hyperspace into two sides by a hyperplane,\n   * then recursively split each of those subtrees etc.\n   * We create a tree like this q times. The default q is determined automatically\n   * in such a way that we at most use 2x as much memory as the vectors take.\n   */\npublic:\n  typedef Distance D;\n  typedef typename D::template Node<S, T> Node;\n\nprotected:\n  int _f;\n  size_t _s;\n  S _n_items;\n  Random _random;\n  void* _nodes; // Could either be mmapped, or point to a memory buffer that we reallocate\n  S _n_nodes;\n  S _nodes_size;\n  vector<S> _roots;\n  S _K;\n  bool _loaded;\n  bool _verbose;\n  int _fd;\npublic:\n\n  AnnoyIndex(int f) : _random() {\n    _f = f;\n    _s = offsetof(Node, v) + f * sizeof(T); // Size of each node\n    _verbose = false;\n    _K = (_s - offsetof(Node, children)) / sizeof(S); // Max number of descendants to fit into node\n    reinitialize(); // Reset everything\n  }\n  ~AnnoyIndex() {\n    unload();\n  }\n\n  void add_item(S item, const T* w) {\n    _allocate_size(item + 1);\n    Node* n = _get(item);\n\n    n->children[0] = 0;\n    n->children[1] = 0;\n    n->n_descendants = 1;\n\n    for (int z = 0; z < _f; z++)\n      n->v[z] = w[z];\n\n    if (item >= _n_items)\n      _n_items = item + 1;\n  }\n\n  void build(int q) {\n    if (_loaded) {\n      // TODO: throw exception\n      showUpdate(\"You can't build a loaded index\\n\");\n      return;\n    }\n    cerr << endl;\n    _n_nodes = _n_items;\n    while (1) {\n      if (q == -1 && _n_nodes >= _n_items * 2)\n        break;\n      if (q != -1 && _roots.size() >= (size_t)q)\n        break;\n      if (_verbose) showUpdate(\"pass %zd...\\n\", _roots.size());\n\n      vector<S> indices;\n      for (S i = 0; i < _n_items; i++)\n        indices.push_back(i);\n\n      _roots.push_back(_make_tree(indices));\n      cerr << \"*\";\n    }\n    cerr << endl;\n    \n    // Also, copy the roots into the last segment of the array\n    // This way we can load them faster without reading the whole file\n    _allocate_size(_n_nodes + (S)_roots.size());\n    for (size_t i = 0; i < _roots.size(); i++)\n      memcpy(_get(_n_nodes + (S)i), _get(_roots[i]), _s);\n    _n_nodes += _roots.size();\n\n    if (_verbose) showUpdate(\"has %d nodes\\n\", _n_nodes);\n  }\n\n  bool save(const char* filename) {\n    FILE *f = fopen(filename, \"w\");\n    if (f == NULL)\n      return false;\n\n    fwrite(_nodes, _s, _n_nodes, f);\n    fclose(f);\n/*\n    unload();\n    return load(filename);*/\n\t  return true;\n  }\n\n  void reinitialize() {\n    _fd = 0;\n    _nodes = NULL;\n    _loaded = false;\n    _n_items = 0;\n    _n_nodes = 0;\n    _nodes_size = 0;\n    _roots.clear();\n  }\n\n  void unload() {\n    if (_fd) {\n      // we have mmapped data\n      close(_fd);\n      off_t size = _n_nodes * _s;\n      munmap(_nodes, size);\n    } else if (_nodes) {\n      // We have heap allocated data\n      free(_nodes);\n    }\n    reinitialize();\n    if (_verbose) showUpdate(\"unloaded\\n\");\n  }\n\n  bool load(const char* filename) {\n    FILE *f = fopen(filename, \"r\");\n\t\tfseek(f, 0, SEEK_END);\n\t\toff_t size = ftell(f);\n    fseek(f, 0, SEEK_SET);\n    _n_nodes = (S)(size / _s);\n    _nodes = realloc(_nodes, _s * _n_nodes);\n\t\tfread(_nodes, _s, _n_nodes, f);\n\n    // Find the roots by scanning the end of the file and taking the nodes with most descendants\n    S m = -1;\n    for (S i = _n_nodes - 1; i >= 0; i--) {\n      S k = _get(i)->n_descendants;\n      if (m == -1 || k == m) {\n        _roots.push_back(i);\n        m = k;\n      } else {\n        break;\n      }\n    }\n    // hacky fix: since the last root precedes the copy of all roots, delete it\n    if (_roots.size() > 1 && _get(_roots.front())->children[0] == _get(_roots.back())->children[0])\n      _roots.pop_back();\n    _loaded = true;\n    _n_items = m;\n    if (_verbose) showUpdate(\"found %lu roots with degree %d\\n\", _roots.size(), m);\n    return true;\n  }\n\n  T get_distance(S i, S j) {\n    const T* x = _get(i)->v;\n    const T* y = _get(j)->v;\n    return D::distance(x, y, _f);\n  }\n\n  void get_nns_by_item(S item, size_t n, size_t search_k, vector<S>* result, vector<T>* distances) {\n    const Node* m = _get(item);\n    _get_all_nns(m->v, n, search_k, result, distances);\n  }\n\n  void get_nns_by_vector(const T* w, size_t n, size_t search_k, vector<S>* result, vector<T>* distances) {\n    _get_all_nns(w, n, search_k, result, distances);\n  }\n  S get_n_items() {\n    return _n_items;\n  }\n  void verbose(bool v) {\n    _verbose = v;\n  }\n\n  void get_item(S item, T* v) {\n    Node* m = _get(item);\n    std::copy(&m->v[0], &m->v[_f], v);\n  }\n\nprotected:\n  void _allocate_size(S n) {\n    if (n > _nodes_size) {\n      const double reallocation_factor = 1.3;\n      S new_nodes_size = std::max(n,\n\t\t\t\t  (S)((_nodes_size + 1) * reallocation_factor));\n      if (_verbose) showUpdate(\"Reallocating to %d nodes\\n\", new_nodes_size);\n      _nodes = realloc(_nodes, _s * new_nodes_size);\n      memset((char *)_nodes + (_nodes_size * _s)/sizeof(char), 0, (new_nodes_size - _nodes_size) * _s);\n      _nodes_size = new_nodes_size;\n    }\n  }\n\n  inline Node* _get(S i) {\n    return (Node*)((uint8_t *)_nodes + (_s * i));\n  }\n\n  S _make_tree(const vector<S >& indices) {\n    if (indices.size() == 1)\n      return indices[0];\n\n    if (indices.size() <= (size_t)_K) {\n      _allocate_size(_n_nodes + 1);\n      S item = _n_nodes++;\n      Node* m = _get(item);\n      m->n_descendants = (S)indices.size();\n\n      // Using std::copy instead of a loop seems to resolve issues #3 and #13,\n      // probably because gcc 4.8 goes overboard with optimizations.\n      std::copy(indices.begin(), indices.end(), m->children);\n      return item;\n    }\n\n    vector<Node*> children;\n    for (size_t i = 0; i < indices.size(); i++) {\n      S j = indices[i];\n      Node* n = _get(j);\n      if (n)\n        children.push_back(n);\n    }\n\n  \tvector<S> children_indices[2];\n  \tNode* m = (Node*)malloc(_s); // TODO: avoid\n  \tD::create_split(children, _f, _random, m);\n\n  \tfor (size_t i = 0; i < indices.size(); i++) {\n    \tS j = indices[i];\n    \tNode* n = _get(j);\n    \tif (n) {\n      \tbool side = D::side(m, n->v, _f, _random);\n      \tchildren_indices[side].push_back(j);\n    \t}\n    }\n\n    // If we didn't find a hyperplane, just randomize sides as a last option\n    while (children_indices[0].size() == 0 || children_indices[1].size() == 0) {\n      if (_verbose && indices.size() > 100000)\n        showUpdate(\"Failed splitting %lu items\\n\", indices.size());\n\n      children_indices[0].clear();\n      children_indices[1].clear();\n\n      // Set the vector to 0.0\n      for (int z = 0; z < _f; z++)\n        m->v[z] = 0.0;\n\n      for (size_t i = 0; i < indices.size(); i++) {\n        S j = indices[i];\n        // Just randomize...\n        children_indices[_random.flip()].push_back(j);\n      }\n    }\n\n    int flip = (children_indices[0].size() > children_indices[1].size());\n    //std::cout<<children_indices[0].size() << \" \"<<children_indices[1].size()<<std::endl;\n    m->n_descendants = (S)indices.size();\n    for (int side = 0; side < 2; side++)\n      // run _make_tree for the smallest child first (for cache locality)\n      m->children[side^flip] = _make_tree(children_indices[side^flip]);\n\n    _allocate_size(_n_nodes + 1);\n    S item = _n_nodes++;\n    memcpy(_get(item), m, _s);\n    free(m);\n\n    return item;\n  }\n\n  void _get_all_nns(const T* v, size_t n, size_t search_k, vector<S>* result, vector<T>* distances) {\n    std::priority_queue<pair<T, S> > q;\n\n    if (search_k == (size_t)-1)\n      search_k = n * _roots.size(); // slightly arbitrary default value\n\n    for (size_t i = 0; i < _roots.size(); i++) {\n      q.push(make_pair(numeric_limits<T>::infinity(), _roots[i]));\n    }\n\n    vector<S> nns;\n    while (nns.size() < search_k && !q.empty()) {\n      const pair<T, S>& top = q.top();\n      T d = top.first;\n      S i = top.second;\n      Node* nd = _get(i);\n      q.pop();\n      if (nd->n_descendants == 1) {\n        nns.push_back(i);\n      } else if (nd->n_descendants <= _K) {\n        const S* dst = nd->children;\n        nns.insert(nns.end(), dst, &dst[nd->n_descendants]);\n      } else {\n        T margin = D::margin(nd, v, _f);\n        q.push(make_pair(std::min(d, +margin), nd->children[1]));\n        q.push(make_pair(std::min(d, -margin), nd->children[0]));\n      }\n    }\n\n    // Get distances for all items\n    // To avoid calculating distance multiple times for any items, sort by id\n    sort(nns.begin(), nns.end());\n    vector<pair<T, S> > nns_dist;\n    S last = -1;\n    for (size_t i = 0; i < nns.size(); i++) {\n      S j = nns[i];\n      if (j == last)\n        continue;\n      last = j;\n      nns_dist.push_back(make_pair(D::distance(v, _get(j)->v, _f), j));\n    }\n\n    size_t m = nns_dist.size();\n    size_t p = n < m ? n : m; // Return this many items\n    std::partial_sort(&nns_dist[0], &nns_dist[p], &nns_dist[m]);\n    for (size_t i = 0; i < p; i++) {\n      if (distances)\n        distances->push_back(D::normalized_distance(nns_dist[i].first));\n      result->push_back(nns_dist[i].second);\n    }\n\t\tresult->push_back(m);\n  }\n};\n\n#endif\n// vim: tabstop=2 shiftwidth=2\n"
  },
  {
    "path": "algorithms/Annoy/src/data.h",
    "content": "#ifndef WDONG_KGRAPH_DATA\n#define WDONG_KGRAPH_DATA\n\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <fstream>\n#include <stdexcept>\n#include <boost/assert.hpp>\n\n#ifdef __GNUC__\n#ifdef __AVX__\n#define KGRAPH_MATRIX_ALIGN 32\n#else\n#ifdef __SSE2__\n#define KGRAPH_MATRIX_ALIGN 16\n#else\n#define KGRAPH_MATRIX_ALIGN 4\n#endif\n#endif\n#endif\n\nnamespace kgraph {\n\n    /// L2 square distance with AVX instructions.\n    /** AVX instructions have strong alignment requirement for t1 and t2.\n     */\n    extern float float_l2sqr_avx (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance with SSE2 instructions.\n    extern float float_l2sqr_sse2 (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance for uint8_t with SSE2 instructions (for SIFT).\n    extern float uint8_l2sqr_sse2 (uint8_t const *t1, uint8_t const *t2, unsigned dim);\n\n    using std::vector;\n    using std::runtime_error;\n\n    /// namespace for various distance metrics.\n    namespace metric {\n        /// L2 square distance.\n        struct l2sqr {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n\t      //\t\t\t\tcout<<\"apply \\n\";\n                float r = 0;\n                for (unsigned i = 0; i < dim; ++i) {\n                    float v = float(t1[i]) - float(t2[i]);\n                    v *= v;\n                    r += v;\n                }\n                return r;\n            }\n        };\n        /// L2 distance.\n        struct l2 {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n                return sqrt(l2sqr::apply<T>(t1, t2, dim));\n            }\n        };\n    }\n\n    /// Matrix data.\n    template <typename T, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class Matrix {\n        unsigned col;\n        unsigned row;\n        size_t stride;\n        char *data;\n\n        void reset (unsigned r, unsigned c) {\n            row = r;\n            col = c;\n            stride = (sizeof(T) * c + A - 1) / A * A;\n            /*\n            data.resize(row * stride);\n            */\n            if (data) free(data);\n            data = (char *)memalign(A, row * stride); // SSE instruction needs data to be aligned\n            if (!data) throw runtime_error(\"memalign\");\n        }\n    public:\n        Matrix (): col(0), row(0), stride(0), data(0) {}\n        Matrix (unsigned r, unsigned c): data(0) {\n            reset(r, c);\n        }\n        ~Matrix () {\n            if (data) free(data);\n        }\n        unsigned size () const {\n            return row;\n        }\n        unsigned dim () const {\n            return col;\n        }\n        size_t step () const {\n            return stride;\n        }\n        void resize (unsigned r, unsigned c) {\n            reset(r, c);\n        }\n        T const *operator [] (unsigned i) const {\n            return reinterpret_cast<T const *>(&data[stride * i]);\n        }\n        T *operator [] (unsigned i) {\n            return reinterpret_cast<T *>(&data[stride * i]);\n        }\n        void zero () {\n            memset(data, 0, row * stride);\n        }\n        void load (const std::string &path, unsigned dim, unsigned skip = 0, unsigned gap = 0) {\n            std::ifstream is(path.c_str(), std::ios::binary);\n            BOOST_VERIFY(is);\n            is.seekg(0, std::ios::end);\n            size_t size = is.tellg();\n            size -= skip;\n            unsigned line = sizeof(T) * dim + gap;\n            unsigned N =  size / line;\n            reset(N, dim);\n            zero();\n            is.seekg(skip, std::ios::beg);\n            for (unsigned i = 0; i < N; ++i) {\n                is.read(&data[stride * i], sizeof(T) * dim);\n                is.seekg(gap, std::ios::cur);\n            }\n            BOOST_VERIFY(is);\n        }\n\n        void load_lshkit (std::string const &path) {\n            static const unsigned LSHKIT_HEADER = 3;\n            std::ifstream is(path.c_str(), std::ios::binary);\n            unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n            is.read((char *)header, sizeof header);\n            BOOST_VERIFY(is);\n            BOOST_VERIFY(header[0] == sizeof(T));\n            is.close();\n            unsigned D = header[2];\n            unsigned skip = LSHKIT_HEADER * sizeof(unsigned);\n            unsigned gap = 0;\n            load(path, D, skip, gap);\n        }\n\n        void save_lshkit (std::string const &path) {\n            std::ofstream os(path.c_str(), std::ios::binary);\n            unsigned header[3];\n            assert(sizeof header == 3*4);\n            header[0] = sizeof(T);\n            header[1] = row;\n            header[2] = col;\n            os.write((const char *)header, sizeof(header));\n            for (unsigned i = 0; i < row; ++i) {\n                os.write(&data[stride * i], sizeof(T) * col);\n            }\n        }\n    };\n\n    /// Matrix proxy to interface with 3rd party libraries (FLANN, OpenCV, NumPy).\n    template <typename DATA_TYPE, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class MatrixProxy {\n        unsigned rows;\n        unsigned cols;      // # elements, not bytes, in a row,\n        size_t stride;    // # bytes in a row, >= cols * sizeof(element)\n        uint8_t const *data;\n    public:\n        MatrixProxy (Matrix<DATA_TYPE> const &m)\n            : rows(m.size()), cols(m.dim()), stride(m.step()), data(reinterpret_cast<uint8_t const *>(m[0])) {\n        }\n\n#ifndef __AVX__\n#ifdef FLANN_DATASET_H_\n        /// Construct from FLANN matrix.\n        MatrixProxy (flann::Matrix<DATA_TYPE> const &m)\n            : rows(m.rows), cols(m.cols), stride(m.stride), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef __OPENCV_CORE_HPP__\n        /// Construct from OpenCV matrix.\n        MatrixProxy (cv::Mat const &m)\n            : rows(m.rows), cols(m.cols), stride(m.step), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef NPY_NDARRAYOBJECT_H\n        /// Construct from NumPy matrix.\n        MatrixProxy (PyArrayObject *obj) {\n            BOOST_VERIFY(obj->nd == 2);\n            rows = obj->dimensions[0];\n            cols = obj->dimensions[1];\n            stride = obj->strides[0];\n            data = reinterpret_cast<uint8_t const *>(obj->data);\n            BOOST_VERIFY(obj->descr->elsize == sizeof(DATA_TYPE));\n            BOOST_VERIFY(stride % A == 0);\n            BOOST_VERIFY(stride >= cols * sizeof(DATA_TYPE));\n        }\n#endif\n#endif\n        unsigned size () const {\n            return rows;\n        }\n        unsigned dim () const {\n            return cols;\n        }\n        DATA_TYPE const *operator [] (unsigned i) const {\n            return reinterpret_cast<DATA_TYPE const *>(data + stride * i);\n        }\n    };\n\n    /// Oracle for matrix data.\n    /** DATA_TYPE can be Matrix or MatrixProxy,\n    * DIST_TYPE should be one class within the namespace kgraph.metric.\n    */\n    template <typename DATA_TYPE, typename DIST_TYPE>\n    class MatrixOracle: public kgraph::IndexOracle {\n        MatrixProxy<DATA_TYPE> proxy;\n    public:\n        class SearchOracle: public kgraph::SearchOracle {\n            MatrixProxy<DATA_TYPE> proxy;\n            DATA_TYPE const *query;\n        public:\n            SearchOracle (MatrixProxy<DATA_TYPE> const &p, DATA_TYPE const *q): proxy(p), query(q) {\n            }\n            virtual unsigned size () const {\n                return proxy.size();\n            }\n            virtual float operator () (unsigned i) const {\n                return DIST_TYPE::apply(proxy[i], query, proxy.dim());\n            }\n        };\n        template <typename MATRIX_TYPE>\n        MatrixOracle (MATRIX_TYPE const &m): proxy(m) {\n        }\n        virtual unsigned size () const {\n            return proxy.size();\n        }\n        virtual float operator () (unsigned i, unsigned j) const {\n            return DIST_TYPE::apply(proxy[i], proxy[j], proxy.dim());\n        }\n\n\tvirtual float angle (unsigned orign, unsigned pivot, unsigned x) const { // return cos(\\theta), where \\theta is the angle between vector orign - pivot and orign - x\n\t  float dot_prod = 0.0, norm = 0.0, norm2 = 0.0;\n\t  float pi = 3.1415926;\n\t  for (unsigned k = 0; k < proxy.dim(); ++k){\n\t    dot_prod += (float)(proxy[pivot][k] - proxy[orign][k])* (float)(proxy[x][k] - proxy[orign][k]);\n\t    norm += (float)(proxy[x][k] - proxy[orign][k]) * (proxy[x][k] - proxy[orign][k]);\n\t    norm2 += (float)(proxy[pivot][k] - proxy[orign][k]) * (proxy[pivot][k] - proxy[orign][k]);\n\t  }\n\t  //\t  if (dot_prod / sqrt(norm * norm2) < 0.001){\n\t  //  fprintf(stderr, \"IN: %d %d %d\", orign, pivot, x);\n\t  //}\n\t  //fprintf(stderr, \"%f \", dot_prod);\n\t  //fprintf(stderr, \"%f\\n\", sqrt ( norm1 * norm2 ));\n\t  return acos(dot_prod / sqrt(norm * norm2) ) * 180 / pi;\n\t}\n\tSearchOracle query (DATA_TYPE const *query) const {\n            return SearchOracle(proxy, query);\n        }\n    };\n\n    inline float AverageRecall (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            // compare\n            unsigned found = 0;\n            unsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n            sum += float(found) / K;\n        }\n        return sum / result.size();\n    }\n\tinline void AveragePrecision(Matrix<float> const &gs, Matrix<float> const &result, float *precision) {\n\t\tunsigned K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        unsigned found = 0;\n\t\tunsigned gs_n = 0;\n        unsigned re_n = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\twhile ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n\t\t\tif (gs_row[0] == re_row[0]) {\n                ++found;\n\n            }\n        }\n        *precision = found / result.size();\n    }\n\n\tinline void AverageAccuracy(Matrix<float> const &gs, Matrix<float> const &result, float *accuracy) \n\t{\n        unsigned  K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n\n\t\tfloat avg = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n        \tfloat dist = 0;\n\t\t\tunsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                float d=(re_row[re_n]-gs_row[gs_n])/gs_row[gs_n];\n\t\t\t\tif(d<=4)\n\t\t\t\t\tdist += d;\n\t\t\t\telse\n\t\t\t\t\tdist+=4; \n  \t\t\t\t++gs_n;\n                ++re_n;\n\t\t\t}\n\t\t\tavg += dist/K;\n        }\n        *accuracy=avg / result.size();\n    }\n\n\tinline float compute_number_closer (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor (unsigned gs_n=0;gs_n < K ;gs_n++)\n\t\t\t{\n\t\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t\t{\n\t\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t\t{\n\t\t\t\t\t\trate += (float)(gs_n+1)/(re_n+1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_mean_reciprocal_rank (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[0]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/(re_n+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n\n\tinline float compute_mean_average_precision (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tint count = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t\trate += 1.0*(count)/(gs_n+1);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_discounted_culmulative_gain (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/log2(gs_n+2);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n    inline void AverageMinDist (Matrix<float> const &gs, Matrix<float> const &result, float *MinDist,float *AvgDist,float *MaxDist) {\n\n        BOOST_VERIFY(gs.size() >= result.size());\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            *MinDist += re_row[0]-gs_row[0];\n            *MaxDist += abs(re_row[result.dim()]-gs_row[0]);\n            for(unsigned j=0;j<result.dim();j++)\n            {\n                *AvgDist += re_row[j]-gs_row[j];\n            }\n        }\n\t    *MinDist /= result.size();\n        *AvgDist /= result.size()*result.dim();\n        *MaxDist /= result.size();\n    }\n}\n\n#ifndef KGRAPH_NO_VECTORIZE\n#ifdef __GNUC__\n#ifdef __AVX__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_avx(t1, t2, dim);\n        }\n}}\n#else\n#ifdef __SSE2__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_sse2(t1, t2, dim);\n        }\n        template <>\n        inline float l2sqr::apply<uint8_t> (uint8_t const *t1, uint8_t const *t2, unsigned dim) {\n            return uint8_l2sqr_sse2(t1, t2, dim);\n        }\n}}\n#endif\n#endif\n#endif\n#endif\n\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/Annoy/src/indexer.cpp",
    "content": "#include <iostream>\n#include <fstream>\n#include <cctype>\n#include <ctime>\n#include <time.h>\n#include <sys/time.h>\n#include <assert.h>\n#include <set>\n#include <getopt.h>\n\n#include \"annoy.cpp\"\n#include \"kissrandom.h\"\n\nusing namespace std;\nusing std::set;\n\nstruct item{\n\nunsigned id;\n};\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\n//static const unsigned LSHKIT_HEADER = 3;\n\ntypedef float T;\ntypedef unsigned S;\n\nfloat* load_data(const char* data_path, int* len, int* d)\n{\n\t// start to read data \n\tFILE * dfp = fopen(data_path, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tfloat * data = new float [n*dim];\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&dim, sizeof(int),1,dfp);\n\t\tfread(&data[i*dim], sizeof(float), dim, dfp);\n\t}\n\tfclose(dfp);\n\treturn data;\n}\n\nint main(int argc, char *argv[]){\n\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"data_path\",                   required_argument, 0, 'd'},\n\t\t{\"index_path\",                  required_argument, 0, 'i'},\n\t\t{\"output_path\",                 required_argument, 0, 'o'},\n\t\t{\"trees\",                       required_argument, 0, 't'},\n\t  };\n\t  int ind;\n\t  int iarg = 0;\n\t  opterr = 1;\n\n\t  char data_path[256] = \"\";\n\t  char index_path[256] = \"\";\n\t  char output_path[256]= \"\";\n\t  int trees;\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"d:i:o:t:h\",\n\t                       longopts, &ind);\n\n\t    switch (iarg) {\n\t      case 'i':\n\t        if (optarg) {\n\t        \tstrcpy(index_path, optarg);\n\t        }\n\t        break;\n\t      case 'd':\n\t        if (optarg) {\n\t        \tstrcpy(data_path, optarg);\n\t        }\n\t        break;\n\t      case 'o':\n\t        if (optarg) {\n\t        \tstrcpy(output_path, optarg);\n\t        }\n\t        break;\n\t\t  case 't':\n\t    \t  if (optarg) {\n\t    \t  trees = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      }\n\t}\n\n\tint dim, N;\n    float *data = load_data(data_path, &N , &dim);\n\n\tAnnoyIndex<int32_t, float, Euclidean, Kiss64Random>* index = new AnnoyIndex<int32_t, float, Euclidean, Kiss64Random>(dim);\n    for (unsigned i = 0; i < N; ++i) {  \n        index->add_item(i, &data[i*dim]);//(T*) (data +i*dim*sizeof(T))\n    }\n\n  \ttimeval start;\n\tgettimeofday(&start, NULL);\n    index->build(trees);\n\ttimeval end;\n\tgettimeofday(&end, NULL);\n\tT index_time = diff_timeval(end, start);\n\tFILE *ofp = fopen(output_path, \"a+\");\n    fprintf(ofp,\"%.2f #trees_%d \\n\",index_time,trees);\t\n\tfclose(ofp);\n\n    index->save(index_path);\n\n    delete []data;    \n\tdelete index;\n\n}\n"
  },
  {
    "path": "algorithms/Annoy/src/kissrandom.h",
    "content": "#ifndef KISSRANDOM_H\n#define KISSRANDOM_H\n\n#include <stdint.h>\n\n// KISS = \"keep it simple, stupid\", but high quality random number generator\n// http://www0.cs.ucl.ac.uk/staff/d.jones/GoodPracticeRNG.pdf -> \"Use a good RNG and build it into your code\"\n// http://mathforum.org/kb/message.jspa?messageID=6627731\n// https://de.wikipedia.org/wiki/KISS_(Zufallszahlengenerator)\n\n// 32 bit KISS\nstruct Kiss32Random {\n  uint32_t x;\n  uint32_t y;\n  uint32_t z;\n  uint32_t c;\n\n  // seed must be != 0\n  Kiss32Random(uint32_t seed = 123456789) {\n    x = seed;\n    y = 362436000;\n    z = 521288629;\n    c = 7654321;\n  }\n\n  uint32_t kiss() {\n    // Linear congruence generator\n    x = 69069 * x + 12345;\n\n    // Xor shift\n    y ^= y << 13;\n    y ^= y >> 17;\n    y ^= y << 5;\n\n    // Multiply-with-carry\n    uint64_t t = 698769069ULL * z + c;\n    c = t >> 32;\n    z = (uint32_t) t;\n\n    return x + y + z;\n  }\n  inline int flip() {\n    // Draw random 0 or 1\n    return kiss() & 1;\n  }\n  inline size_t index(size_t n) {\n    // Draw random integer between 0 and n-1 where n is at most the number of data points you have\n    return kiss() % n;\n  }\n};\n\n// 64 bit KISS. Use this if you have more than about 2^24 data points (\"big data\" ;) )\nstruct Kiss64Random {\n  uint64_t x;\n  uint64_t y;\n  uint64_t z;\n  uint64_t c;\n\n  // seed must be != 0\n  Kiss64Random(uint64_t seed = 1234567890987654321ULL) {\n    x = seed;\n    y = 362436362436362436ULL;\n    z = 1066149217761810ULL;\n    c = 123456123456123456ULL;\n  }\n\n  uint64_t kiss() {\n    // Linear congruence generator\n    z = 6906969069LL*z+1234567;\n\n    // Xor shift\n    y ^= (y<<13);\n    y ^= (y>>17);\n    y ^= (y<<43);\n\n    // Multiply-with-carry (uint128_t t = (2^58 + 1) * x + c; c = t >> 64; x = (uint64_t) t)\n    uint64_t t = (x<<58)+c;\n    c = (x>>6);\n    x += t;\n    c += (x<t);\n\n    return x + y + z;\n  }\n  inline int flip() {\n    // Draw random 0 or 1\n    return kiss() & 1;\n  }\n  inline size_t index(size_t n) {\n    // Draw random integer between 0 and n-1 where n is at most the number of data points you have\n    return kiss() % n;\n  }\n};\n\n#endif\n// vim: tabstop=2 shiftwidth=2\n"
  },
  {
    "path": "algorithms/Annoy/src/searcher.cpp",
    "content": "#include <iostream>\n#include <fstream>\n#include <cctype>\n#include <ctime>\n#include <time.h>\n#include <sys/time.h>\n#include <assert.h>\n#include <set>\n#include <getopt.h>\n\n#include \"annoy.cpp\"\n#include \"kissrandom.h\"\n\nusing namespace std;\nusing std::set;\n\nstruct item{\n\nunsigned id;\n};\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nstatic const unsigned LSHKIT_HEADER = 3;\n\ntypedef float T;\ntypedef unsigned S;\n\ntemplate<typename P>\nP* load_data(const char* data_path, int* len, int* d)\n{\n\t// start to read data \n\tFILE * dfp = fopen(data_path, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(P)*dim));\n\t*d = dim;\n\t*len = n;\n\tP * data = new P[n*dim];\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&dim, sizeof(int),1,dfp);\n\t\tfread(&data[i*dim], sizeof(P), dim, dfp);\n\t}\n\tfclose(dfp);\n    return data;\n}\n\nT get_recall(S * gt, vector<int32_t>* res, S k)\n{\n\tfloat ratio=0;\n\tstd::set<S> gnd_row;\n\tfor(unsigned j=0; j<k; j++)\n\t\tgnd_row.insert(gt[j]);\n\tfor(unsigned j=0; j<k; j++)\n\t{\n\t\tif(gnd_row.find(res->at(j))!=gnd_row.end())\n\t\t\tratio++;\n\t}\n\treturn ratio/k;\n}\n\n\nT get_mAP(S * gt, vector<int32_t>* res, S k)\n{\n\tstd::set<S> gs_set;\n\tint found_last=0;\n\tfloat mAP=0.0;\n\tfor(unsigned j=0;j<k;j++)\n\t{\n\t\tgs_set.insert(gt[j]);\n\t\tint count = 0;\n\t\tfor(unsigned t=0;t<=j;t++)\n\t\t\tif(gs_set.find(res->at(t))!=gs_set.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t\tmAP += count*(count-found_last)*1.0/(j+1);\n\t\tfound_last=count;\n\t}\n    return mAP/k;\n}\n\nint main(int argc, char *argv[]){\n\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"data_path\",                   required_argument, 0, 'i'},\n\t    {\"query_path\" ,                 required_argument, 0, 'q'},\n\t    {\"gnd_path\",                    required_argument, 0, 'g'},\n\t\t{\"output_path\",                 required_argument, 0, 'o'},\n\t\t{\"k\",                           required_argument, 0, 'k'},\n\t\t{\"c\",                           required_argument, 0, 'c'},\n\t  };\n\t  int ind;\n\t  int iarg = 0;\n\t  opterr = 1;\n\n\t  char gnd_path[256] = \"\";\n\t  char query_path[256] = \"\";\n\t  char index_path[256] = \"\";\n\t  char output_path[256]= \"\";\n\t  int K;\n\t  int nStop;\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"i:q:g:o:k:c:h\",\n\t                       longopts, &ind);\n\n\t    switch (iarg) {\n\t      case 'i':\n\t        if (optarg) {\n\t        \tstrcpy(index_path, optarg);\n\t        }\n\t        break;\n\t      case 'q':\n\t        if (optarg) {\n\t        \tstrcpy(query_path, optarg);\n\t        }\n\t        break;\n\t      case 'g':\n\t        if (optarg) {\n\t        \tstrcpy(gnd_path, optarg);\n\t        }\n\t        break;\n\t      case 'o':\n\t        if (optarg) {\n\t        \tstrcpy(output_path, optarg);\n\t        }\n\t        break;\n\t\t  case 'k':\n\t    \t  if (optarg) {\n\t    \t  K = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'c':\n\t    \t  if (optarg) {\n\t\t\t  nStop = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      }\n\t}\n\t\n    int dim, nq;\n    T *query_data = load_data<T>(query_path, &nq,&dim);\n\tS *gnd_data = load_data<S>(gnd_path, &nq, &K);\n\n\tAnnoyIndex<int32_t, float, Euclidean, Kiss64Random>* index = new AnnoyIndex<int32_t, float, Euclidean, Kiss64Random>(dim);\n\tindex->load(index_path);\t\n\n\tassert( query_data != NULL );\n\tT recall=0;\n\tint search_N=0;\n\tT mAP =0;\n\ttimeval start;\n\ttimeval end;\n\tT search_time=0;\n\tFILE *ofp = fopen(output_path, \"a+\");\n\n\tfor ( int i=0; i<nq; i++ ){\n\t\tvector<int> result;\n\t\tvector<T> distance;\n        gettimeofday(&start, NULL);\n\t\t//index->get_nns_by_vector ((T*) (query_data +i*dim*sizeof(T)), K, nStop, &result, &distance);\n\t\tindex->get_nns_by_vector (&query_data[i*dim], K, nStop, &result, &distance);\n\t\tgettimeofday(&end, NULL);\n\t    search_time += diff_timeval(end, start);\n\t\tsearch_N += result[K];\n\t\trecall += get_recall(&gnd_data[i*K],&result,K);\n\t\t\n\t\tmAP += get_mAP(&gnd_data[i*K],&result,K);\n\t}\n\t\n\trecall /= nq;\n\tsearch_N /= nq;\n\tmAP /= nq;\n\tsearch_time /= nq;\n\tfprintf(ofp,\"%.6f %.6f %.6f #N_%d %.6f \\n\",recall,0.0,search_time,search_N,mAP);\t\n\tfclose(ofp);\n\n\tif ( query_data != NULL ) delete []query_data;\n\n\tdelete index;\n}\n"
  },
  {
    "path": "algorithms/DPG/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"dpg\">DPG</h1>\n<p>Diversified Proximity Graph (<strong>DPG</strong>) is an extension of <a href=\"http://www.kgraph.org/\"><strong>KGraph</strong></a> which maximizes the diversity of the K-NN graph</p>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>gcc 4.7</code> and above)</li>\n<li>A linux system</li>\n<li>The <code>boost</code> library (dev version) installed. Note that we need to set the <strong>paths</strong> of the Boost installed in <strong>Makefile</strong>.</li>\n<li><a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">A sample dataset</a> (e.g., audio) is downloaded, including its data points, query points and ground truth results. Note that we need to change data format later. All data files downloaded should be put in the <code>./knn_benchmark/data</code> directory.</li>\n</ul>\n<h2 id=\"compile-dpgsrc\">Compile (DPG/src)</h2>\n<p>The following script builds three program for K-NN graph construction (the same as KGraph), performs graph diversification (resulting in the new DPG index); they are <code>DPG_index</code>, <code>DPG_diverse</code> and <code>DPG_search</code>, respectively.</p>\n<pre><code>build.sh</code></pre>\n<p>Two data conversion programs, <code>fvec2lshkit</code> and <code>lshkit2fvec</code>, are also generated, which are copied to the data directory of the NNS benchmark (i.e, <code>./nns_benchmark/data</code>)</p>\n<h2 id=\"construct-diversified-proxmity-graph-dpg-dpgscript\">Construct Diversified Proxmity Graph (DPG) (DPG/script)</h2>\n<pre><code>build_index.sh</code></pre>\n<p>Build K-NN graphs based on the data points, then diversify the K-NN graph to generate the DPG graph. To save the space, one may directly build a DPG graph by diversifying the K-NN graph constructed by KGraph (i.e., index files uder KGraph/index directory). Note that for a DPG graph with <code>L=20</code> (i.e., 20 neighbors per data point), we need diversify a KGraph index created with <code>L=40</code> (i.e., 40 neighbours per data point) because we only keep half of the neighbors to allow space to include reverse edges. By doing this, the size of DPG is guaranteed to be the same as KGraph in the worse case, and is typically smaller.</p>\n<h2 id=\"search-on-the-k-nn-graph-dpgscript\">Search on the K-NN graph (DPG/script)</h2>\n<pre><code>search.sh</code></pre>\n<p>Note that, in our experiment paper, we tune the <code>P</code> value of DPG search (i.e., search queue size) to achieve the trade-off between search speed and search quality (recall). This is exactly the same with KGraph.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/DPG/README.md",
    "content": "# DPG\n\nDiversified Proximity Graph (**DPG**) is an extension of [**KGraph**](http://www.kgraph.org/) which maximizes the diversity of the K-NN graph \n\n## Prerequisites\n\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- A linux system \n- The `boost` library (dev version) installed. Note that we need to set the **paths** of the Boost installed in **Makefile**.\n- [A sample dataset](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data)\n  (e.g., audio) is downloaded, including its data points, query points and\n  ground truth results. Note that we need to change data format later. All data\n  files downloaded should be put in the `./knn_benchmark/data` directory.\n\n \n## Compile (DPG/src)\n\nThe following script builds three program for K-NN graph construction (the same as KGraph),\nperforms graph diversification (resulting in the new DPG index); they are\n`DPG_index`, `DPG_diverse` and `DPG_search`, respectively. \n\n```\nbuild.sh\n```\n\nTwo data conversion programs, `fvec2lshkit` and `lshkit2fvec`, are also\ngenerated, which are copied to the data directory of the NNS benchmark (i.e,\n`./nns_benchmark/data`)\n\n\n## Construct Diversified Proxmity Graph (DPG) (DPG/script)\n\n```\nbuild_index.sh\n```\n\nBuild K-NN graphs based on the data points, then diversify the K-NN graph to generate the DPG graph. \nTo save the space, one may directly build a DPG graph by diversifying the K-NN\ngraph constructed by KGraph (i.e., index files uder KGraph/index directory).\nNote that for a DPG graph with `L=20` (i.e., 20 neighbors per data point), we\nneed diversify a KGraph index created with `L=40` (i.e., 40 neighbours per data\npoint) because we only keep half of the neighbors to allow space to include\nreverse edges. By doing this, the size of DPG is guaranteed to be the same as\nKGraph in the worse case, and is typically smaller.    \n\n## Search on the K-NN graph (DPG/script)\n\n```\nsearch.sh\n```\n\nNote that, in our experiment paper, we tune the `P` value of DPG search (i.e.,\nsearch queue size) to achieve the trade-off between search speed and search\nquality (recall). This is exactly the same with KGraph.\n\n\n"
  },
  {
    "path": "algorithms/DPG/script/build_index.sh",
    "content": "data_dir=\"../../../data\"\nindex_dir=\"../index\"\nbin_dir=\"../src\"\n\nmkdir ${index_dir} \n\n# Please sure the data ( data points, query points and ground truth files are located at ../../../data directory )\n\n# L1 and L2  is the length of the NN-list used by K-NN graph and DPG \n\nL1=40\nL2=20\n\nfor data in audio \ndo\n\n\n# first construct K-NN graph\n\n${bin_dir}/DPG_index --data ${data_dir}/${data}_base.lshkit --output ${index_dir}/${data}.kgraph_${L1} -S 20 -L ${L1} -K 20\n\n# do the diversification \n\n${bin_dir}/DPG_diverse --data ${data_dir}/${data}_base.lshkit --index ${index_dir}/${data}.kgraph_${L1}  --output ${index_dir}/${data}.DPG_${L2}  -L ${L2}\n\n\ndone\n\n\n"
  },
  {
    "path": "algorithms/DPG/script/search.sh",
    "content": "\ndata_dir=\"../../../data\"\nindex_dir=\"../index\"\nbin_dir=\"../src\"\nresult_dir=\"../results\"\n\n\nmkdir ${result_dir}\n\n\nk=20\nL=20\n\n\nfor data in audio  \ndo\n\nfor P in 1 2 5 10 20 40 50 100\ndo\n\n# show the result \n${bin_dir}/DPG_search --data ${data_dir}/${data}_base.lshkit --query  ${data_dir}/${data}_query.lshkit --eval ${data_dir}/${data}_groundtruth.lshkit -K ${k} --index ${index_dir}/${data}.DPG_${L} -P ${P} \n\n# try again and keep the results into files \n\nresult=\"${data}_k${k}_P${P}.txt\" \n\n${bin_dir}/DPG_search --data ${data_dir}/${data}_base.lshkit --query  ${data_dir}/${data}_query.lshkit --eval ${data_dir}/${data}_groundtruth.lshkit -K ${k} --index ${index_dir}/${data}.DPG_${L} -P ${P} > ${result_dir}/${result}\n\ndone\ndone\n\n\n\n"
  },
  {
    "path": "algorithms/DPG/src/DPG_diverse.cpp",
    "content": "#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\nint main(int argc, char *argv[]){\n    vector<string> params;\n    string input_data_path;\n    string index_NNList_path;\n    string index_DPG_path; \n    unsigned L; \n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_data_path), \"input data path\")\n    (\"index\", po::value(&index_NNList_path), \"NNList index path\")\n    (\"output\", po::value(&index_DPG_path), \"DPG index path\")\n    (\",L\", po::value(&L)->default_value(default_K), \"\")\n    ; \n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);    \n    p.add(\"output\", 1);\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 || vm.count(\"output\") == 0) {\n        cout << \"DPG_diverse <data> <K-NN graph index> <diversified index> \" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    cerr << L << \" : L value\" << endl;\n\n    Matrix<value_type> data;\n    data.load_lshkit(input_data_path.c_str());\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n\n    KGraph *kgraph = KGraph::create();\n    if (index_NNList_path.size() >0 )\n    {\n        kgraph->load(index_NNList_path.c_str());    \n    }\n\n    boost::timer::auto_cpu_timer timer;\n\n    // start the diversification ?? ( seperately ) \n    // add the diversification part here \n    // cerr << \"Start the diversification process... (angular dissimilarity )\" << endl << endl;\n    // kgraph->remove_near_edges(oracle, L); // here not knn's k, L is the length of NN list ( note that the true NN list length might be smaller than L) \n\n    cerr << \"Start the diversification process... ( counting cuts )\" << endl << endl;\n    kgraph->diversify_by_cut(oracle, L); // here not knn's k, L is the length of NN list ( note that the true NN list length might be smaller than L) \n\n\n    // reverse the edges here \n    cerr << \"Add reverse edges ...\" << endl << endl;\n    kgraph->add_backward_edges();\n\n    float time = timer.elapsed().wall / 1e9;\n\n    if ( index_DPG_path.size() > 0 )\n    kgraph->save( index_DPG_path.c_str());\n\n    cout << time << \" # diversification time\" << endl;\n\n    delete kgraph;\n\n}\n"
  },
  {
    "path": "algorithms/DPG/src/DPG_index.cpp",
    "content": "#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\n#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\nint main(int argc, char *argv[]) {\n    string data_path;\n    string output_path;\n    KGraph::IndexParams params;\n    unsigned D;\n    unsigned skip;\n    unsigned gap;\n    unsigned synthetic;\n    float noise;\n\n    bool lshkit = true;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version information.\")\n    (\"data\", po::value(&data_path), \"input path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\",K\", po::value(&params.K)->default_value(default_K), \"number of nearest neighbor\")\n    (\"controls,C\", po::value(&params.controls)->default_value(default_controls), \"number of control pounsigneds\")\n    ;\n\n    po::options_description desc_hidden(\"Expert options\");\n    desc_hidden.add_options()\n    (\"iterations,I\", po::value(&params.iterations)->default_value(default_iterations), \"\")\n    (\",S\", po::value(&params.S)->default_value(default_S), \"\")\n    (\",R\", po::value(&params.R)->default_value(default_R), \"\")\n    (\",L\", po::value(&params.L)->default_value(default_L), \"\")\n    (\"delta\", po::value(&params.delta)->default_value(default_delta), \"\")\n    (\"recall\", po::value(&params.recall)->default_value(default_recall), \"\")\n    (\"prune\", po::value(&params.prune)->default_value(default_prune), \"\")\n    (\"noise\", po::value(&noise)->default_value(0), \"noise\")\n    (\"seed\", po::value(&params.seed)->default_value(default_seed), \"\")\n    (\"dim,D\", po::value(&D), \"dimension, see format\")\n    (\"skip\", po::value(&skip)->default_value(0), \"see format\")\n    (\"gap\", po::value(&gap)->default_value(0), \"see format\")\n    (\"raw\", \"read raw binary file, need to specify D.\")\n    (\"synthetic\", po::value(&synthetic)->default_value(0), \"generate synthetic data, for performance evaluation only, specify number of points\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible).add(desc_hidden);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm;\n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm);\n\n    if (vm.count(\"raw\") == 1) {\n        lshkit = false;\n    }\n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\")\n            || (synthetic && (vm.count(\"dim\") == 0 || vm.count(\"data\")))\n            || (!synthetic && (vm.count(\"data\") == 0 || (vm.count(\"dim\") == 0 && !lshkit)))) {\n        cout << \"Usage: DPG_index [OTHER OPTIONS]... INPUT [OUTPUT]\" << endl;\n        cout << desc_visible << endl;\n        cout << desc_hidden << endl;\n        return 0;\n    }\n\n    if (params.S == 0) {\n        params.S = params.K;\n    }\n\n    if (lshkit && (synthetic == 0)) {   // read dimension information from the data file\n        static const unsigned LSHKIT_HEADER = 3;\n        ifstream is(data_path.c_str(), ios::binary);\n        unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n        is.read((char *)header, sizeof header);\n        BOOST_VERIFY(is);\n        BOOST_VERIFY(header[0] == sizeof(value_type));\n        is.close();\n        D = header[2];\n        skip = LSHKIT_HEADER * sizeof(unsigned);\n        gap = 0;\n    }\n\n    Matrix<value_type> data;\n    if (synthetic) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"synthetic data not implemented for non-floating-point values.\");\n        }\n        data.resize(synthetic, D);\n        cerr << \"Generating synthetic data...\" << endl;\n        default_random_engine rng(params.seed);\n        uniform_real_distribution<double> distribution(-1.0, 1.0);\n        data.zero(); // important to do that\n        for (unsigned i = 0; i < synthetic; ++i) {\n            value_type *row = data[i];\n            for (unsigned j = 0; j < D; ++j) {\n                row[j] = distribution(rng);\n            }\n        }\n    }\n    else {\n        data.load(data_path, D, skip, gap);\n    }\n    if (noise != 0) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"noise injection not implemented for non-floating-point value.\");\n        }\n        tr1::ranlux64_base_01 rng;\n        double sum = 0, sum2 = 0;\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                value_type v = data[i][j];\n                sum += v;\n                sum2 += v * v;\n            }\n        }\n        double total = double(data.size()) * data.dim();\n        double avg2 = sum2 / total, avg = sum / total;\n        double dev = sqrt(avg2 - avg * avg);\n        cerr << \"Adding Gaussian noise w/ \" << noise << \"x sigma(\" << dev << \")...\" << endl;\n        boost::normal_distribution<double> gaussian(0, noise * dev);\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                data[i][j] += gaussian(rng);\n            }\n        }\n    }\n\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    KGraph::IndexInfo info;\n    KGraph *kgraph = KGraph::create(); //(oracle, params, &info);\n    {\n        auto_cpu_timer timer;\n        kgraph->build(oracle, params, output_path.c_str(), &info);\n        cerr << info.stop_condition << endl;\n    }\n\n    if (output_path.size()) {\n     \n      //Note that we modify the index save procedure to reduce index size    \n      //kgraph->save(output_path.c_str());\n    }\n\n    \n    delete kgraph;\n\n    return 0;\n}\n"
  },
  {
    "path": "algorithms/DPG/src/DPG_search.cpp",
    "content": "#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\n\nint main(int argc, char *argv[]) {\n    vector<string> params;\n    string input_path;\n    string index_path;\n    string query_path;\n    string output_path;\n    string init_path;\n    string eval_path;\n    unsigned K, M, P, T;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_path), \"input path\")\n    (\"index\", po::value(&index_path), \"index path\")\n    (\"query\", po::value(&query_path), \"query path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\"init\", po::value(&init_path), \"init path\")\n    (\"eval\", po::value(&eval_path), \"eval path\")\n    (\",K\", po::value(&K)->default_value(default_K), \"\")\n    (\",M\", po::value(&M)->default_value(default_M), \"\")\n    (\",P\", po::value(&P)->default_value(default_P), \"\")\n    (\",T\", po::value(&T)->default_value(default_T), \"\")\n    (\"linear\", \"\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);\n    p.add(\"query\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 || vm.count(\"query\") == 0) {\n        cout << \"DPG_search <data> <index> <query> [output]\" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    if (P < K) {\n        P = K;\n    }\n\n    Matrix<value_type> data;\n    Matrix<value_type> query;\n    Matrix<unsigned> result; //(query.size(), U);\n    unsigned init = 0;\n\n    data.load_lshkit(input_path);\n    query.load_lshkit(query_path);\n    if (init_path.size()) {\n        result.load_lshkit(init_path);\n        BOOST_VERIFY(result.size() == query.size());\n        init = result.dim();\n        BOOST_VERIFY(init >= K);\n    }\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    float recall = 0;\n    float cost = 0;\n    float time = 0;\n    if (vm.count(\"linear\")) {\n        boost::timer::auto_cpu_timer timer;\n        result.resize(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            oracle.query(query[i]).search(K, default_epsilon, result[i]);\n        }\n        cost = 1.0;\n        time = timer.elapsed().wall / 1e9;\n    }\n    else {\n        result.resize(query.size(), K);\n        KGraph::SearchParams params;\n        params.K = K;\n        params.M = M;\n        params.P = P;\n        params.T = T;\n        params.init = init;\n        KGraph *kgraph = KGraph::create();\n        kgraph->load(index_path.c_str());\n\n        boost::timer::auto_cpu_timer timer;\n        cerr << \"Searching...\" << endl;\n\n// #pragma omp parallel for reduction(+:cost)\n        for (unsigned i = 0; i < query.size(); ++i) {\n            KGraph::SearchInfo info;\n            kgraph->search(oracle.query(query[i]), params, result[i], &info);\n            cost += info.cost;\n        }\n        cost /= query.size();\n        time = timer.elapsed().wall / 1e9;\n        //cerr << \"Cost: \" << cost << endl;\n        delete kgraph;\n    }\n    if (output_path.size()) {\n        result.save_lshkit(output_path);\n    }\n    if (eval_path.size()) {\n        Matrix<unsigned> gs;\n        gs.load_lshkit(eval_path);\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(gs.size() >= query.size());\n        kgraph::Matrix<float> gs_dist(query.size(), K);\n        kgraph::Matrix<float> result_dist(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            auto Q = oracle.query(query[i]);\n            float *gs_dist_row = gs_dist[i];\n            float *result_dist_row = result_dist[i];\n            unsigned const *gs_row = gs[i];\n            unsigned const *result_row = result[i];\n            for (unsigned k = 0; k < K; ++k) {\n                gs_dist_row[k] = Q(gs_row[k]);\n                result_dist_row[k] = Q(result_row[k]);\n            }\n            sort(gs_dist_row, gs_dist_row + K);\n            sort(result_dist_row, result_dist_row + K);\n        }\n        recall = AverageRecall(gs_dist, result_dist, K);\n    }\n    cout << \"Time: \" << time << \" Recall: \" << recall << \" Cost: \" << cost << endl;\n\n    return 0;\n}"
  },
  {
    "path": "algorithms/DPG/src/Makefile",
    "content": "CC=g++ \n\n#ARCH=-msse2\nOPT=-O3\n#OPENMP=-fopenmp\nboost_dir=\"/home/yingz/Software/boost_1_58_0/\"\nboost_lib=\"/usr/local/lib\"\n\nCXXFLAGS+=-fPIC -g -std=c++11 -I${boost_dir} -I. $(OPT) -L${boost_lib}  $(OPT) $(ARCH) \nLDFLAGS+=-static $(OPENMP)\nLDLIBS+=-lboost_timer -lboost_chrono -lboost_system -lboost_program_options -lgomp -lm -lrt  -L${boost_lib}\n\nCOMMON=kgraph.o metric.o RandGen.o\n\nHEADERS=kgraph.h kgraph-data.h RandGen.h\n\nPROGS=DPG_index DPG_diverse DPG_search\n\nRELEASE_SRC=Makefile LICENSE kgraph.h kgraph-data.h DPG_index.cpp DPG_search.cpp DPG_diverse.cpp\n\n$(PROGS): %:\t%.cpp $(HEADERS) $(COMMON)\n\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $*.cpp $(COMMON) $(LDLIBS)\n%.o:\t%.cpp $(HEADERS)\n\t$(CXX) $(CXXFLAGS) -c $*.cpp \n\nclean:\n\trm -f *.o\n\n\n\n\n"
  },
  {
    "path": "algorithms/DPG/src/RandGen.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <math.h>\n#include <stdlib.h>\n#include \"RandGen.h\"\n\n/************************************************************\n ***  Given a mean and a standard deviation, gaussian       **\n **   generates a normally distributed random number        **\n **   Algorithm:  Polar Method, p.  104, Knuth, vol. 2      **\n ************************************************************/\n\nfloat gaussian(float mean, float sigma) {\n  float v1, v2;\n  float s;\n  float x;\n\n  do {\n    v1 = 2 * uniform(0, 1) - 1;\n    v2 = 2 * uniform(0, 1) - 1;\n    s = v1 * v1 + v2 * v2;\n  } while (s >= 1.);\n\n  x = v1 * (float) sqrt(-2. * log(s) / s);\n\n  /*  x is normally distributed with mean 0 and sigma 1.  */\n  x = x * sigma + mean;\n\n  return (x);\n}\n\n/************************************************************\n ** Generates a random number between _min and _max         **\n ** uniformly                                               **\n ** By Yufei Tao\n ************************************************************/\n\nfloat uniform(float _min, float _max) {\n  int int_r = rand();\n  long base = RAND_MAX - 1;\n  float f_r = ((float) int_r) / base;\n  return (_max - _min) * f_r + _min;\n}\n\n"
  },
  {
    "path": "algorithms/DPG/src/RandGen.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef RANDGEN_H_\n#define RANDGEN_H_\n\nfloat gaussian(float mean, float sigma);\nfloat uniform(float _min, float _max);\n\n#endif /* RANDGEN_H_ */\n"
  },
  {
    "path": "algorithms/DPG/src/build.sh",
    "content": "make DPG_index\nmake DPG_diverse\nmake DPG_search\n\nmake clean\n"
  },
  {
    "path": "algorithms/DPG/src/kgraph-data.h",
    "content": "#ifndef WDONG_KGRAPH_DATA\n#define WDONG_KGRAPH_DATA\n\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <fstream>\n#include <stdexcept>\n#include <boost/assert.hpp>\n\n#ifdef __GNUC__\n#ifdef __AVX__\n#define KGRAPH_MATRIX_ALIGN 32\n#else\n#ifdef __SSE2__\n#define KGRAPH_MATRIX_ALIGN 16\n#else\n#define KGRAPH_MATRIX_ALIGN 4\n#endif\n#endif\n#endif\n\nnamespace kgraph {\n\n    /// L2 square distance with AVX instructions.\n    /** AVX instructions have strong alignment requirement for t1 and t2.\n     */\n    extern float float_l2sqr_avx (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance with SSE2 instructions.\n    extern float float_l2sqr_sse2 (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance for uint8_t with SSE2 instructions (for SIFT).\n    extern float uint8_l2sqr_sse2 (uint8_t const *t1, uint8_t const *t2, unsigned dim);\n\n    using std::vector;\n    using std::runtime_error;\n\n    /// namespace for various distance metrics.\n    namespace metric {\n        /// L2 square distance.\n        struct l2sqr {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n\t      //\t\t\t\tcout<<\"apply \\n\";\n                float r = 0;\n                for (unsigned i = 0; i < dim; ++i) {\n                    float v = float(t1[i]) - float(t2[i]);\n                    v *= v;\n                    r += v;\n                }\n                return r;\n            }\n        };\n        /// L2 distance.\n        struct l2 {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n                return sqrt(l2sqr::apply<T>(t1, t2, dim));\n            }\n        };\n    }\n\n    /// Matrix data.\n    template <typename T, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class Matrix {\n        unsigned col;\n        unsigned row;\n        size_t stride;\n        char *data;\n\n        void reset (unsigned r, unsigned c) {\n            row = r;\n            col = c;\n            stride = (sizeof(T) * c + A - 1) / A * A;\n            /*\n            data.resize(row * stride);\n            */\n            if (data) free(data);\n            data = (char *)memalign(A, row * stride); // SSE instruction needs data to be aligned\n            if (!data) throw runtime_error(\"memalign\");\n        }\n    public:\n        Matrix (): col(0), row(0), stride(0), data(0) {}\n        Matrix (unsigned r, unsigned c): data(0) {\n            reset(r, c);\n        }\n        ~Matrix () {\n            if (data) free(data);\n        }\n        unsigned size () const {\n            return row;\n        }\n        unsigned dim () const {\n            return col;\n        }\n        size_t step () const {\n            return stride;\n        }\n        void resize (unsigned r, unsigned c) {\n            reset(r, c);\n        }\n        T const *operator [] (unsigned i) const {\n            return reinterpret_cast<T const *>(&data[stride * i]);\n        }\n        T *operator [] (unsigned i) {\n            return reinterpret_cast<T *>(&data[stride * i]);\n        }\n        void zero () {\n            memset(data, 0, row * stride);\n        }\n        void load (const std::string &path, unsigned dim, unsigned skip = 0, unsigned gap = 0) {\n            std::ifstream is(path.c_str(), std::ios::binary);\n            BOOST_VERIFY(is);\n            is.seekg(0, std::ios::end);\n            size_t size = is.tellg();\n            size -= skip;\n            unsigned line = sizeof(T) * dim + gap;\n            unsigned N =  size / line;\n            reset(N, dim);\n            zero();\n            is.seekg(skip, std::ios::beg);\n            for (unsigned i = 0; i < N; ++i) {\n                is.read(&data[stride * i], sizeof(T) * dim);\n                is.seekg(gap, std::ios::cur);\n            }\n            BOOST_VERIFY(is);\n        }\n\n        void load_lshkit (std::string const &path) {\n            static const unsigned LSHKIT_HEADER = 3;\n            std::ifstream is(path.c_str(), std::ios::binary);\n            unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n            is.read((char *)header, sizeof header);\n            BOOST_VERIFY(is);\n            BOOST_VERIFY(header[0] == sizeof(T));\n            is.close();\n            unsigned D = header[2];\n            unsigned skip = LSHKIT_HEADER * sizeof(unsigned);\n            unsigned gap = 0;\n            load(path, D, skip, gap);\n        }\n\n        void save_lshkit (std::string const &path) {\n            std::ofstream os(path.c_str(), std::ios::binary);\n            unsigned header[3];\n            assert(sizeof header == 3*4);\n            header[0] = sizeof(T);\n            header[1] = row;\n            header[2] = col;\n            os.write((const char *)header, sizeof(header));\n            for (unsigned i = 0; i < row; ++i) {\n                os.write(&data[stride * i], sizeof(T) * col);\n            }\n        }\n    };\n\n    /// Matrix proxy to interface with 3rd party libraries (FLANN, OpenCV, NumPy).\n    template <typename DATA_TYPE, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class MatrixProxy {\n        unsigned rows;\n        unsigned cols;      // # elements, not bytes, in a row,\n        size_t stride;    // # bytes in a row, >= cols * sizeof(element)\n        uint8_t const *data;\n    public:\n        MatrixProxy (Matrix<DATA_TYPE> const &m)\n            : rows(m.size()), cols(m.dim()), stride(m.step()), data(reinterpret_cast<uint8_t const *>(m[0])) {\n        }\n\n#ifndef __AVX__\n#ifdef FLANN_DATASET_H_\n        /// Construct from FLANN matrix.\n        MatrixProxy (flann::Matrix<DATA_TYPE> const &m)\n            : rows(m.rows), cols(m.cols), stride(m.stride), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef __OPENCV_CORE_HPP__\n        /// Construct from OpenCV matrix.\n        MatrixProxy (cv::Mat const &m)\n            : rows(m.rows), cols(m.cols), stride(m.step), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef NPY_NDARRAYOBJECT_H\n        /// Construct from NumPy matrix.\n        MatrixProxy (PyArrayObject *obj) {\n            BOOST_VERIFY(obj->nd == 2);\n            rows = obj->dimensions[0];\n            cols = obj->dimensions[1];\n            stride = obj->strides[0];\n            data = reinterpret_cast<uint8_t const *>(obj->data);\n            BOOST_VERIFY(obj->descr->elsize == sizeof(DATA_TYPE));\n            BOOST_VERIFY(stride % A == 0);\n            BOOST_VERIFY(stride >= cols * sizeof(DATA_TYPE));\n        }\n#endif\n#endif\n        unsigned size () const {\n            return rows;\n        }\n        unsigned dim () const {\n            return cols;\n        }\n        DATA_TYPE const *operator [] (unsigned i) const {\n            return reinterpret_cast<DATA_TYPE const *>(data + stride * i);\n        }\n    };\n\n    /// Oracle for matrix data.\n    /** DATA_TYPE can be Matrix or MatrixProxy,\n    * DIST_TYPE should be one class within the namespace kgraph.metric.\n    */\n    template <typename DATA_TYPE, typename DIST_TYPE>\n    class MatrixOracle: public kgraph::IndexOracle {\n        MatrixProxy<DATA_TYPE> proxy;\n    public:\n        class SearchOracle: public kgraph::SearchOracle {\n            MatrixProxy<DATA_TYPE> proxy;\n            DATA_TYPE const *query;\n        public:\n            SearchOracle (MatrixProxy<DATA_TYPE> const &p, DATA_TYPE const *q): proxy(p), query(q) {\n            }\n            virtual unsigned size () const {\n                return proxy.size();\n            }\n            virtual float operator () (unsigned i) const {\n                return DIST_TYPE::apply(proxy[i], query, proxy.dim());\n            }\n        };\n        template <typename MATRIX_TYPE>\n        MatrixOracle (MATRIX_TYPE const &m): proxy(m) {\n        }\n        virtual unsigned size () const {\n            return proxy.size();\n        }\n        virtual float operator () (unsigned i, unsigned j) const {\n            return DIST_TYPE::apply(proxy[i], proxy[j], proxy.dim());\n        }\n\n\tvirtual float angle (unsigned orign, unsigned pivot, unsigned x) const { // return cos(\\theta), where \\theta is the angle between vector orign - pivot and orign - x\n\t  float dot_prod = 0.0, norm = 0.0, norm2 = 0.0;\n\t  float pi = 3.1415926;\n\t  for (unsigned k = 0; k < proxy.dim(); ++k){\n\t    dot_prod += (float)(proxy[pivot][k] - proxy[orign][k])* (float)(proxy[x][k] - proxy[orign][k]);\n\t    norm += (float)(proxy[x][k] - proxy[orign][k]) * (proxy[x][k] - proxy[orign][k]);\n\t    norm2 += (float)(proxy[pivot][k] - proxy[orign][k]) * (proxy[pivot][k] - proxy[orign][k]);\n\t  }\n\t  //\t  if (dot_prod / sqrt(norm * norm2) < 0.001){\n\t  //  fprintf(stderr, \"IN: %d %d %d\", orign, pivot, x);\n\t  //}\n\t  //fprintf(stderr, \"%f \", dot_prod);\n\t  //fprintf(stderr, \"%f\\n\", sqrt ( norm1 * norm2 ));\n\t  return acos(dot_prod / sqrt(norm * norm2) ) * 180 / pi;\n\t}\n\tSearchOracle query (DATA_TYPE const *query) const {\n            return SearchOracle(proxy, query);\n        }\n    };\n\n    inline float AverageRecall (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            // compare\n            unsigned found = 0;\n            unsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n            sum += float(found) / K;\n        }\n        return sum / result.size();\n    }\n\tinline void AveragePrecision(Matrix<float> const &gs, Matrix<float> const &result, float *precision) {\n\t\tunsigned K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        unsigned found = 0;\n\t\tunsigned gs_n = 0;\n        unsigned re_n = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\twhile ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n\t\t\tif (gs_row[0] == re_row[0]) {\n                ++found;\n\n            }\n        }\n        *precision = found / result.size();\n    }\n\n\tinline void AverageAccuracy(Matrix<float> const &gs, Matrix<float> const &result, float *accuracy) \n\t{\n        unsigned  K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n\n\t\tfloat avg = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n        \tfloat dist = 0;\n\t\t\tunsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                float d=(re_row[re_n]-gs_row[gs_n])/gs_row[gs_n];\n\t\t\t\tif(d<=4)\n\t\t\t\t\tdist += d;\n\t\t\t\telse\n\t\t\t\t\tdist+=4; \n  \t\t\t\t++gs_n;\n                ++re_n;\n\t\t\t}\n\t\t\tavg += dist/K;\n        }\n        *accuracy=avg / result.size();\n    }\n\n\tinline float compute_number_closer (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor (unsigned gs_n=0;gs_n < K ;gs_n++)\n\t\t\t{\n\t\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t\t{\n\t\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t\t{\n\t\t\t\t\t\trate += (float)(gs_n+1)/(re_n+1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_mean_reciprocal_rank (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[0]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/(re_n+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n\n\tinline float compute_mean_average_precision (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tint count = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t\trate += 1.0*(count)/(gs_n+1);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_discounted_culmulative_gain (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/log2(gs_n+2);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n    inline void AverageMinDist (Matrix<float> const &gs, Matrix<float> const &result, float *MinDist,float *AvgDist,float *MaxDist) {\n\n        BOOST_VERIFY(gs.size() >= result.size());\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            *MinDist += re_row[0]-gs_row[0];\n            *MaxDist += abs(re_row[result.dim()]-gs_row[0]);\n            for(unsigned j=0;j<result.dim();j++)\n            {\n                *AvgDist += re_row[j]-gs_row[j];\n            }\n        }\n\t    *MinDist /= result.size();\n        *AvgDist /= result.size()*result.dim();\n        *MaxDist /= result.size();\n    }\n}\n\n#ifndef KGRAPH_NO_VECTORIZE\n#ifdef __GNUC__\n#ifdef __AVX__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_avx(t1, t2, dim);\n        }\n}}\n#else\n#ifdef __SSE2__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_sse2(t1, t2, dim);\n        }\n        template <>\n        inline float l2sqr::apply<uint8_t> (uint8_t const *t1, uint8_t const *t2, unsigned dim) {\n            return uint8_l2sqr_sse2(t1, t2, dim);\n        }\n}}\n#endif\n#endif\n#endif\n#endif\n\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/DPG/src/kgraph.cpp",
    "content": "//static char const *kgraph_version = KGRAPH_VERSION \"-\" KGRAPH_BUILD_NUMBER \",\" KGRAPH_BUILD_ID;\nstatic char const *kgraph_version = \"deiversified proximity graph\";\n\n#include <omp.h>\n#include <unordered_set>\n#include <mutex>\n#include <iostream>\n#include <fstream>\n#include <random>\n#include <algorithm>\n#include <queue>\n#include <boost/timer/timer.hpp>\n#define timer timer_for_boost_progress_t\n#include <boost/progress.hpp>\n#undef timer\n#include <boost/dynamic_bitset.hpp>\n#include <boost/accumulators/accumulators.hpp>\n#include <boost/accumulators/statistics/stats.hpp>\n#include <boost/accumulators/statistics/mean.hpp>\n#include <boost/accumulators/statistics/moment.hpp>\n#include \"boost/smart_ptr/detail/spinlock.hpp\"\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nnamespace kgraph {\n\n    using namespace std;\n    using namespace boost;\n    using namespace boost::accumulators;\n\n    unsigned verbosity = default_verbosity;\n\n    typedef boost::detail::spinlock Lock;\n    typedef std::lock_guard<Lock> LockGuard;\n\n    // generate size distinct random numbers < N\n    template <typename RNG>\n    static void GenRandom (RNG &rng, unsigned *addr, unsigned size, unsigned N) {\n        for (unsigned i = 0; i < size; ++i) {\n            addr[i] = rng() % (N - size);\n        }\n        sort(addr, addr + size);\n        for (unsigned i = 1; i < size; ++i) {\n            if (addr[i] <= addr[i-1]) {\n                addr[i] = addr[i-1] + 1;\n            }\n        }\n        unsigned off = rng() % N;\n        for (unsigned i = 0; i < size; ++i) {\n            addr[i] = (addr[i] + off) % N;\n        }\n    }\n\n    struct Neighbor {\n        unsigned id;\n        float dist;\n        bool flag;  // whether this entry is a newly found one      \n        Neighbor () {}\n        Neighbor (unsigned i, float d, bool f = true): id(i), dist(d), flag(f) {\n        }\n    };\n\n    static inline bool operator < (Neighbor const &n1, Neighbor const &n2) {\n      if (n1.dist == n2.dist)\n\treturn n1.id < n2.id;\n      else \n        return n1.dist < n2.dist;\n    }\n\n    typedef vector<Neighbor> Neighbors;\n\n    // both pool and knn should be sorted in ascending order\n    static float EvaluateRecall (Neighbors const &pool, Neighbors const &knn) {\n        if (knn.empty()) return 1.0;\n        unsigned found = 0;\n        unsigned n_p = 0;\n        unsigned n_k = 0;\n        for (;;) {\n            if (n_p >= pool.size()) break;\n            if (n_k >= knn.size()) break;\n            if (knn[n_k].dist < pool[n_p].dist) {\n                ++n_k;\n            }\n            else if (knn[n_k].dist == pool[n_p].dist) {\n                ++found;\n                ++n_k;\n                ++n_p;\n            }\n            else {\n                cerr << \"Distance is unstable.\" << endl;\n                cerr << \"Exact\";\n                for (auto const &p: knn) {\n                    cerr << ' ' << p.id << ':' << p.dist;\n                }\n                cerr << endl;\n                cerr << \"Approx\";\n                for (auto const &p: pool) {\n                    cerr << ' ' << p.id << ':' << p.dist;\n                }\n                cerr << endl;\n                throw runtime_error(\"distance is unstable\");\n            }\n        }\n        return float(found) / knn.size(); //recall\n    }\n\n    static float EvaluateAccuracy (Neighbors const &pool, Neighbors const &knn) {\n        unsigned m = std::min(pool.size(), knn.size());\n        float sum = 0;\n        unsigned cnt = 0;\n        for (unsigned i = 0; i < m; ++i) {\n            if (knn[i].dist >  0) {\n                sum += abs(pool[i].dist - knn[i].dist) / knn[i].dist;\n                ++cnt;\n            }\n        }\n        return cnt > 0 ? sum / cnt: 0;\n    }\n\n    static float EvaluateOneRecall (Neighbors const &pool, Neighbors const &knn) {\n        if (pool[0].dist == knn[0].dist) return 1.0;\n        return 0;\n    }\n  \n    static float EvaluateDelta (Neighbors const &pool, unsigned K) {\n        unsigned c = 0;\n        unsigned N = K;\n        if (pool.size() < N) N = pool.size();\n        for (unsigned i = 0; i < N; ++i) {\n            if (pool[i].flag) ++c;\n        }\n        return float(c) / K;  //the fraction of true in pool's flags\n    }\n\n    struct Control {\n        unsigned id;\n        Neighbors neighbors;\n    };\n\n    // try insert nn into the list\n    // the array addr must contain at least K+1 entries:\n    //      addr[0..K-1] is a sorted list\n    //      addr[K] is as output parameter\n    // * if nn is already in addr[0..K-1], return K+1\n    // * Otherwise, do the equivalent of the following\n    //      put nn into addr[K]\n    //      make addr[0..K] sorted\n    //      return the offset of nn's index in addr (could be K)\n    //\n    // Special case:  K == 0\n    //      addr[0] <- nn\n    //      return 0\n    static inline unsigned UpdateKnnList (Neighbor *addr, unsigned K, Neighbor nn) {\n        // find the location to insert\n        unsigned j;\n        unsigned i = K;\n        while (i > 0) {\n            j = i - 1;\n            if (addr[j].dist <= nn.dist) break;\n            i = j;\n        }\n        // check for equal ID\n        unsigned l = i;\n        while (l > 0) {\n            j = l - 1;\n            if (addr[j].dist < nn.dist) break;\n            if (addr[j].id == nn.id) return K + 1;\n            l = j;\n        }\n        // i <= K-1\n        j = K;\n        while (j > i) {\n            addr[j] = addr[j-1];\n            --j;\n        }\n        addr[i] = nn;\n        return i;\n    }\n\n    void LinearSearch (IndexOracle const &oracle, unsigned i, unsigned K, vector<Neighbor> *pnns) {\n        vector<Neighbor> nns(K+1);\n        unsigned N = oracle.size();\n        Neighbor nn;\n        nn.id = 0;\n        nn.flag = true; // we don't really use this\n        unsigned k = 0;\n        while (nn.id < N) {\n            if (nn.id != i) {\n                nn.dist = oracle(i, nn.id);\n                UpdateKnnList(&nns[0], k, nn);\n                if (k < K) ++k;\n            }\n            ++nn.id;\n        }\n        nns.resize(K);\n        pnns->swap(nns);\n    }\n\n    unsigned SearchOracle::search (unsigned K, float epsilon, unsigned *ids, float *dists) const {\n        vector<Neighbor> nns(K+1);\n        //cout<<\"oracle searching\"<<endl;\n        unsigned N = size();\n        unsigned L = 0;\n        for (unsigned k = 0; k < N; ++k) {\n            float k_dist = operator () (k);\n            if (k_dist > epsilon) continue;\n            UpdateKnnList(&nns[0], L, Neighbor(k, k_dist));\n            if (L < K) ++L;\n        }\n        if (ids) {\n            for (unsigned k = 0; k < L; ++k) {\n                ids[k] = nns[k].id;\n            }\n        }\n        if (dists) {\n            for (unsigned k = 0; k < L; ++k) {\n                dists[k] = nns[k].dist;\n            }\n        }\n        return L;\n    }\n\n    void GenerateControl (IndexOracle const &oracle, unsigned C, unsigned K, vector<Control> *pcontrols) {\n        vector<Control> controls(C);\n        {\n            vector<unsigned> index(oracle.size());\n            int i = 0;\n            for (unsigned &v: index) {\n                v = i++;\n            }\n            random_shuffle(index.begin(), index.end());\n#ifdef PARALLEL            \n#pragma omp parallel for\n#endif             \n            for (unsigned i = 0; i < C; ++i) {\n                controls[i].id = index[i];\n                LinearSearch(oracle, index[i], K, &controls[i].neighbors);\n            }\n        }\n        pcontrols->swap(controls);\n    }\n\n    static char const *KGRAPH_MAGIC = \"KNNGRAPH\";\n    static unsigned constexpr KGRAPH_MAGIC_SIZE = 8;\n    static uint32_t constexpr VERSION_MAJOR = 2;\n    static uint32_t constexpr VERSION_MINOR = 0;\n\n    class KGraphImpl: public KGraph {\n    protected:\n        vector<unsigned> M;\n        vector<vector<Neighbor>> graph;\n    public:\n        virtual ~KGraphImpl () {\n        }\n        virtual void load (char const *path) {\n            BOOST_VERIFY(sizeof(unsigned) == sizeof(uint32_t));\n            ifstream is(path, ios::binary);\n            char magic[KGRAPH_MAGIC_SIZE];\n            uint32_t major;\n            uint32_t minor;\n            uint32_t N;\n            is.read(magic, sizeof(magic));\n            is.read(reinterpret_cast<char *>(&major), sizeof(major));\n            is.read(reinterpret_cast<char *>(&minor), sizeof(minor));\n            if (major != VERSION_MAJOR) throw runtime_error(\"data version not supported.\");\n            is.read(reinterpret_cast<char *>(&N), sizeof(N));\n            if (!is) runtime_error(\"error reading index file.\");\n            for (unsigned i = 0; i < KGRAPH_MAGIC_SIZE; ++i) {\n                if (KGRAPH_MAGIC[i] != magic[i]) runtime_error(\"index corrupted.\");\n            }\n            graph.resize(N);\n            M.resize(N);\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                auto &knn = graph[i];\n                unsigned K;\n                is.read(reinterpret_cast<char *>(&M[i]), sizeof(M[i]));\n                is.read(reinterpret_cast<char *>(&K), sizeof(K));\n                if (!is) runtime_error(\"error reading index file.\");\n                knn.resize(K);\n                //modified by Yifang\n                for (unsigned j = 0; j < K; ++j){\n                  is.read(reinterpret_cast<char *>(&knn[j].id), sizeof(knn[j].id));\n                  knn[j].flag = true;\n                  knn[j].dist = 0.0;\n                }\n                //is.read(reinterpret_cast<char *>(&knn[0]), K * sizeof(knn[0]));\n            }\n        }\n\n      virtual void merge(char const * graph_path, char const * id_path){\n\tifstream is(graph_path, ios::binary);\n\tchar magic[KGRAPH_MAGIC_SIZE];\n\tuint32_t major;\n\tuint32_t minor;\n\tuint32_t N;\n\tis.read(magic, sizeof(magic));\n\tis.read(reinterpret_cast<char *>(&major), sizeof(major));\n\tis.read(reinterpret_cast<char *>(&minor), sizeof(minor));\n\tif (major != VERSION_MAJOR) throw runtime_error(\"data version not supported.\");\n\tis.read(reinterpret_cast<char *>(&N), sizeof(N));\n\tif (!is) runtime_error(\"error reading index file.\");\n\tfor (unsigned i = 0; i < KGRAPH_MAGIC_SIZE; ++i) {\n\t  if (KGRAPH_MAGIC[i] != magic[i]) runtime_error(\"index corrupted.\");\n\t}\n\tvector<vector<Neighbor> > small_graph;\n\tvector<unsigned> small_M;\n\tsmall_graph.resize(N);\n\tsmall_M.resize(N);\n\tfor (unsigned i = 0; i < small_graph.size(); ++i) {\n\t  auto &knn = small_graph[i];\n\t  unsigned K;\n\t  is.read(reinterpret_cast<char *>(&small_M[i]), sizeof(small_M[i]));\n\t  is.read(reinterpret_cast<char *>(&K), sizeof(K));\n\t  if (!is) runtime_error(\"error reading index file.\");\n\t  knn.resize(K);\n\t  is.read(reinterpret_cast<char *>(&knn[0]), K * sizeof(knn[0]));\n\t}\n\t//loaded the small graph\n\tFILE *fp = fopen(id_path, \"rb\");\n\tunsigned * id_arr = new unsigned[N];\n\tfread(id_arr, sizeof(unsigned), N, fp);\n\tfclose(fp);\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  unsigned real_id = id_arr[i];\n\t  auto &small_knn = small_graph[i];\n\t  auto &knn = graph[real_id];\n\t  if (M[real_id] != knn.size()){\n\t    knn.resize(M[real_id]);\n\t  }\n\t  for (unsigned k = 0; k < small_M[i]; ++k){\n\t    knn.push_back(Neighbor(id_arr[small_knn[k].id], small_knn[k].dist, false));\n\t  }\n\t  sort(knn.begin(), knn.end());\n\t  for (unsigned k = 1; k < knn.size(); ++k){\n\t    if (knn[k].id == knn[k-1].id){\n\t      knn.erase(knn.begin() + k);\n\t      k--;\n\t    }\n\t  }\n\t  M[real_id] = knn.size();\n\t}\t\n      }\n\n        virtual void output_info(int const id){\n\t  if (id > graph.size()){\n\t    fprintf(stderr, \"out_of_index_bound!\\n\");\n\t    return;\n\t  }\n\t  auto const &knn = graph[id];\n\t  knn.size();\n\t  \n\t  fprintf(stderr, \"%d\\n%d\\n=================\\n\", M[id], knn.size());\n\t  for (int i = 0; i < knn.size(); ++i){\n\t    fprintf(stderr, \"%d %f\\n\", knn[i].id, knn[i].dist);\n\t  }\n\t}\n\n\n      struct hub_pair{\n\tunsigned id;\n\tint in_degree;\n\thub_pair(unsigned x, int y){\n\t  id = x;\n\t  in_degree = y;\n\t}\n\tbool operator<(const hub_pair& rhs) const{\n\t  return in_degree > rhs.in_degree;\n\t}\n      };\n      \n      struct rknn_pair{\n\tunsigned id;\n\tfloat dist;\n\trknn_pair(unsigned x, float y){\n\t  id = x;\n\t  dist = y;\n\t}\n      };\n\n      virtual void connectivity(unsigned const source, unsigned const dest){\n\tuint32_t N = graph.size();\n\tint level[N];\n\tfor (int i = 0; i < N; ++i){\n\t  level[i] = 0;\n\t}\n\t\n\tqueue<unsigned> q;\n\tq.push(source);\n\tlevel[source] = 1;\n\tbool find = false;\n\twhile (!q.empty() && !find){\n\t  unsigned cur_id = q.front();\n\t  auto const &knn = graph[cur_id];\n\t  q.pop();\n\t  for (int i = 0; i < M[cur_id]; ++i){\n\t    if (level[knn[i].id] != 0){\n\t      continue;\n\t    }\n\t    q.push(knn[i].id);\n\t    level[knn[i].id] = level[cur_id] + 1;\n\t    if (knn[i].id == dest){\n\t      find = true;\n\t      fprintf(stderr, \"Found! Level = %d\\n\", level[knn[i].id]);\n\t    }\n\t  }\n\t}\n\tif (!find){\n\t  fprintf(stderr, \"Not Found!\\n\");\n\t}\n      }\n\n      virtual void get_partitions(char const *output_path){\n\tvector<vector<int> > partitions;\n\tuint32_t N = graph.size();\n\tfor (int i = 0; i < N; ++i){\n\t  if (i % 1000 == 0) {\n            fprintf(stderr, \"\\r%d (%.3f\\%)\", i, 1.0 * i / N * 100);\n          }\n\t  auto const &knn = graph[i];\n\t  int major_set_pos = -1;\n\t  for (int j = 0; j < partitions.size(); ++j){\n\t    if (find (partitions[j].begin(), partitions[j].end(), i) != partitions[j].end()){\n\t      major_set_pos = j;\n\t      break;\n\t    }\n\t  }\n\t  if (major_set_pos == -1){\n\t    vector<int> new_set;\n\t    new_set.push_back(i);\n\t    partitions.push_back(new_set);\n\t    major_set_pos = partitions.size() - 1;\n\t    //fprintf(stderr, \"%d is in %d\\n\", i, major_set_pos);\n\t  }\n\n\t  //fprintf(stderr, \"i is in %d\\n\", major_set_pos);\n\t  \n\t  unsigned maxM = M[i];\n\t  for (int j = 0; j < maxM; ++j){\n\t    bool done = false;\n\t    //test if knn[j] is in some partition\n\t    for (int k = 0; k < partitions.size(); ++k){\n\t      if (find (partitions[k].begin(), partitions[k].end(), knn[j].id) != partitions[k].end()){\n\t\tif (k == major_set_pos){\n\t\t  done = true;\n\t\t  break;\n\t\t} else {\n\t\t  //merge\n\t\t  //fprintf(stderr, \"markmerge\\n\");\n\t\t  for ( auto it = partitions[k].begin(); it != partitions[k].end(); ++it ){\n\t\t    //fprintf(stderr, \"markmerge %d %d\\n\", *it, partitions[major_set_pos].max_size());\n\t\t    partitions[major_set_pos].push_back(*it);\n\t\t    //fprintf(stderr, \"markmergeee\\n\");\n\t\t  }\n\t\t  //fprintf(stderr, \"markmerge done\\n\");\n\t\t  //partitions[major_set_pos].insert(partitions[k].begin(), partitions[k].end());\n\t\t  //vector<int> temp = partitions.end();\n\t\t  \n\t\t  //\t\t  partitions[k].swap(partitions.back());\n\t\t  partitions[k].clear();\n\t\t  for ( auto it = partitions.back().begin(); it != partitions.back().end(); ++it ){\n                    //fprintf(stderr, \"markmerge %d %d\\n\", *it, partitions[major_set_pos].max_size());\n                    partitions[k].push_back(*it);\n                    //fprintf(stderr, \"markmergeee\\n\");\n                  }\n\t\t  partitions.back().clear();\n\t\t  //partitions.erase(partitions.begin() + k);\n\t\t  done = true;\n\t\t  //fprintf(stderr, \"mark merge done\\n\");\n\t\t  break;\n\t\t}\n\t      }\n\t    }\n\t    if (!done){\n\t      //add\n\t      partitions[major_set_pos].push_back(knn[j].id);\n\t      continue;\n\t    }\n\t  }\n\t  //fprintf(stderr, \"mark2\\n\");\n\t}\n\tfprintf(stderr, \"%d\\n\", partitions.size());\n\t//\treturn partitions;\n\tint count = 0;\n\tfor (int i = 0; i < partitions.size(); ++i){\n\t  if (partitions[i].size() != 0){\n\t    fprintf(stderr, \"%d\\n\", partitions[i].size());\n\t    count ++;\n\t  }\n\t}\n\tfprintf(stderr, \"%d\\n\", count);\n\n      }\n\n      virtual void output_M (char const* filename) {\n        FILE *fp = fopen(filename, \"wb\");\n        unsigned N = graph.size();\n        fwrite(&N, sizeof(unsigned), 1, fp);\n\tfor (int i = 0; i < N; ++i){\n          unsigned len = M[i];\n          fwrite(&len, sizeof(unsigned), 1, fp);\n        }\n\tfclose(fp);\n      }\n\n\n      virtual void make_inverse_graph(){\n\tuint32_t N = graph.size();\n\tvector<vector<Neighbor> > inverse_graph;\n\tfor (unsigned i = 0; i < N; ++i){\n\t  inverse_graph.push_back(vector<Neighbor>());\n\t}\n\tfor (unsigned i = 0; i < N; ++i) {\n          auto const &knn = graph[i];\n\t  for (unsigned j = 0; j < M[i]; j++)  {\n\t    inverse_graph[knn[j].id].push_back(Neighbor(i, knn[j].dist, false));\n\t  }\n\t}\n\tfor (unsigned i = 0; i < N; ++i) {\n\t  M[i] = inverse_graph[i].size();\n\t}\n\tgraph = inverse_graph;\n      }\n      \n      \n\n    virtual void test_connectivity(unsigned dest){ // for inverse kgraph\n\tuint32_t N = graph.size();\n\tbool * traversed = new bool[N];\n\tqueue<unsigned> q;\n\tq.push(dest);\n\tmemset(traversed, 0, sizeof(bool)*N);\n\ttraversed[dest] = true;\n\tint count = 1;\n\t\n\twhile(!q.empty()){\n\t  unsigned pivot = q.front();\n\t  q.pop();\n\t  auto const &knn = graph[pivot];\n\t  for (unsigned i = 0; i < knn.size(); ++i){\n\t    if (!traversed[knn[i].id]){\n\t      q.push(knn[i].id);\n\t      traversed[knn[i].id] = true;\n\t      count++;\n\t    }\n\t  }\n\t}\n\n\tfprintf(stderr, \"%d points connected with pivot\\n\", count);\n      }\n\n      virtual void add_random_backward_edges(char const *data_path, char const *hubs_path, int const num_of_hubs, char const * start_points_path, unsigned num_of_query){\n        uint32_t N = graph.size();\n\t//ofstream os(hubs_path, ios::binary);\n        vector <hub_pair > hubs;\n\tvector<vector<rknn_pair> > rknn_graph;\n        Matrix<float> data;\n        data.load_lshkit(data_path);\n\n\tint count = 0;\n\n        for (unsigned i = 0; i < N; ++i) {\n\t  hubs.push_back(hub_pair(i, 0));\n          rknn_graph.push_back(vector<rknn_pair>());\n\t}\n\n\tfor (unsigned i = 0; i < N; ++i) {\n          auto const &knn = graph[i];\n          uint32_t K = knn.size();\n\t  for (unsigned j=0; j<K; j++)  {\n            hubs[knn[j].id].in_degree++;\n            rknn_graph[knn[j].id].push_back(rknn_pair(i, knn[j].dist));\n          }\n        }\n\n\t//\tfor (unsigned i = 0; i < N; ++i) {\n        //  os<<hubs[i].in_degree <<endl;\n        //}\n\n        //sort(hubs.begin(), hubs.end());\n\t\n\tfor (unsigned i = 0; i < num_of_hubs; ++i){\n\t  unsigned p = rand() % N;\n\t  hub_pair temp = hubs[i];\n\t  hubs[i] = hubs[p];\n\t  hubs[p] = temp;\n\t}\n\n\tMatrix<unsigned> ids;\n\tids.resize(num_of_query, num_of_hubs);\n        Matrix<float> hub_data;\n        hub_data.resize(num_of_hubs, data.dim());\n\n\t//unsigned * ids = new unsigned[num_of_hubs];\n        for (unsigned i = 0; i < num_of_hubs; ++i){\n          //fprintf(stderr, \"%d: %d %d\\n\", i, hubs[i].id, hubs[i].in_degree);\n\t  // add backward edges\n          vector<rknn_pair> rknn_list = rknn_graph[hubs[i].id];\n\t  count += rknn_list.size();\n          for (unsigned j = 0; j < rknn_list.size(); ++j){\n            graph[hubs[i].id].push_back(Neighbor(rknn_list[j].id, rknn_list[j].dist, true)); //rknn_list[j]);\n          }\n\n          for (unsigned j = 0; j < hub_data.dim(); ++j){\n            hub_data[i][j] = data[hubs[i].id][j];\n          }\n\n          // write start point file\n\t  for (int j = 0; j < num_of_query; ++j)\n            ids[j][i] = hubs[i].id;\n          //fprintf(stderr, \"%d: %d %d\\n\", i, ids[j][i], hubs[i].in_degree);\n          sort(graph[hubs[i].id].begin(), graph[hubs[i].id].end());\n          M[hubs[i].id] = rknn_list.size();\n\t}\n        ids.save_lshkit(start_points_path);\n\thub_data.save_lshkit(hubs_path);\n        //      for (unsigned i = 0; i < num_of_query; ++i){\n        //  os2.write((const char *)ids, sizeof(unsigned) * header[2]);\n        //}\n        //delete[] ids;\n\tfprintf(stderr, \"inverse edges: %d\\n\", count);\n      }\n\n      virtual void add_backward_edges(){\n\tuint32_t N = graph.size();\n\t//ofstream os(hubs_path, ios::binary);\n\t//vector <hub_pair > hubs;\n\tvector<vector<rknn_pair> > rknn_graph;\n        rknn_graph.resize(N);\n        \n\tint count = 0;\n        \n\t\n\tfor (unsigned i = 0; i < N; ++i) {\n\t  auto const &knn = graph[i];\n\t  uint32_t K = M[i]; //knn.size();\n\t  for (unsigned j=0; j<K; j++)  {\n\t    rknn_graph[knn[j].id].push_back(rknn_pair(i, knn[j].dist));\n\t  }\n\t}\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  vector<rknn_pair> rknn_list = rknn_graph[i];\n\t  count += rknn_list.size();\n\t  \n          for (unsigned j = 0; j < rknn_list.size(); ++j){\n\t    graph[i].push_back(Neighbor(rknn_list[j].id, rknn_list[j].dist, true)); //rknn_list[j]);\n\t    //sum += exp(-1 * sqrt(rknn_list[j].dist) * beta); // a function with dist\n\t  }\n\n\t  sort(graph[i].begin(), graph[i].end());\n\t  for (unsigned j = 1; j < graph[i].size(); ++j){\n\t    if (graph[i][j].id == graph[i][j - 1].id){\n\t      graph[i].erase(graph[i].begin() + j);\n\t      j--;\n\t    }\n\t  }\n\t  \n          M[i] = graph[i].size();\n\t}\n\tfprintf(stderr, \"inverse edges: %d\\n\", count);\n      }\n\n\n virtual void compute_diversity(IndexOracle const &oracle, int d, float * norm){ // diversity\n\tif (oracle.size() != graph.size()){\n          throw runtime_error(\"Build kgraph before adding long edges\");\n        }\n\n        uint32_t N = oracle.size();\n\tfloat * avg_arr = new float[N];\n\tuint32_t true_N = N;\n#pragma omp parallel for\n        for (unsigned k = 0; k < N; k++){\n          int len = M[k];\n\t  int true_len = len * (len - 1) / 2;\n\t  float sum_angle = 0.0;\n          for (int i = 0; i < len; ++i){ // the first max_edge_num elements are the remaining ones\n\t    if (graph[k][i].dist < 0.00001){\n\t      true_len -= len - i - 1;\n\t      continue;\n\t    }\n            for (int cand_pos = i + 1; cand_pos < len; cand_pos++){\n\t      float angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i].id);\n\t      if (!(angle > 0.00001)){\n\t\ttrue_len --;\n\t\tcontinue;\n\t      }\n              sum_angle += angle; //oracle.angle(k, graph[k][cand_pos].id, graph[k][i].id);\n            }\n          }\n\t  if (true_len <= 0){\n\t    avg_arr[k] = 0.0;\n\t    true_N--;\n\t  } else {\n\t    avg_arr[k] = sum_angle / true_len;\n\t  }\n\t  //\t  if (!(avg_arr[k] > 0.00001))\n\t  //  fprintf(stderr, \"%d %f %f\\n\", k, sum_angle, avg_arr[k]);\n\n        }\n\n\tdouble avg_angle = 0.0;\n\tdouble normed_angle = 0.0;\n\tfor (unsigned k = 0; k < N; ++k){\n\t  avg_angle = avg_angle + avg_arr[k];\n\t  normed_angle += avg_arr[k] / norm[M[k] - 1];\n\t}\n\n\t//avg_angle /= N;\n\t//normed_angle /= N;\n\n\tcout << \"Average pairwise angle: \" << avg_angle / true_N << endl;\n\tcout << \"Normed pairwise angle: \" << normed_angle / N << endl;\n\n\tdelete[] avg_arr;\n      }\n\n\nvirtual void diversify_by_cut(IndexOracle const &oracle, const int edge_num){\n\n    if (oracle.size() != graph.size()){\n      throw runtime_error(\"diversify_by_cut : inconsistent.\" );\n    }\n    \n    uint32_t N = oracle.size();\n\n    int cnt = 0;\n    int nnt = 0;\n\n    unsigned step = N / 100;\n    cerr << endl << \"Progress : \";\n\n    // #pragma omp parallel for\n    for (unsigned k = 0; k < N; k++){\n\n    if ( k % step == 0 ) cerr <<\"*\";\n\n\n      // float *map = new float[N];\n      // memset(map, 0, sizeof(float)*N);\n\n      int len = graph[k].size();\n      while(graph[k][len-1].id == 0){\n        len--;\n      }\n      if (len > 2 * edge_num){\n        len = 2 * edge_num;\n      } \n      \n      // materialize the ditance here \n      int* hit = new int[len];\n\n      for ( int i=0; i< len; i++){\n        graph[k][i].dist = oracle(k, graph[k][i].id );\n        hit[i] = 0;\n      }      \n\n      for ( int i=0; i < len-1; i++ ){\n         // for ( int j=0; j < len; j++){\n         for ( int j=i+1; j < len; j++){\n            \n            if ( i==j ) continue;\n\n            Neighbor n_b = graph[k][i]; \n            Neighbor n_k = graph[k][j];\n\n            float dist = oracle(n_b.id, n_k.id);\n            // cout << dist << \" : (\" << n_b.id << \" , \"  << n_k.id << endl;  \n            if ( dist < n_k.dist ){\n                hit[j]++;\n            }\n        }\n      }\n\n\n      // sort by the hits and find the cuts \n      int* b_hit = new int[len];\n      for ( int i=0; i< len; i++ )\n        b_hit[i] = hit[i];\n\n      // memcpy( b_hit, hit, sizeof(int)*len);\n\n      sort(b_hit, b_hit + len );\n      float cut = b_hit[edge_num];\n\n      // update the neighbors by #hits \n      Neighbor tmp[len];\n      for ( int i=0; i < len; i++)\n        tmp[i] = graph[k][i];\n\n\n      cnt = 0;\n      for ( int i=0; i < len; i++){        \n        if ( hit[i] <= cut )\n            graph[k][cnt++] = tmp[i];\n      }\n\n      graph[k].resize(edge_num); // reset the size of NN list \n\n      delete []hit;\n      delete []b_hit;\n\n      /*      \n      if ( k % 100 == 0 ){\n        for ( int i=0; i< len; i++){\n            if ( hit[i]> cut )\n                cout << hit[i] << \"* \";\n            else\n                cout << hit[i] << \" \";\n        }\n        cout << endl;\n      }\n      */      \n\n      /*\n      for (int i = 1; i < edge_num; ++i){ // the first max_edge_num elements are the remaining ones\n        float max_sum_angle = -1.0;\n        int max_pos = -1;\n        for (int cand_pos = i; cand_pos < len; cand_pos++){\n          map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n          float sum_angle = map[graph[k][cand_pos].id];\n          if (sum_angle > max_sum_angle){\n        max_sum_angle = sum_angle;\n        max_pos = cand_pos;\n          }\n        }\n        Neighbor temp = graph[k][i];\n        graph[k][i] = graph[k][max_pos];\n        graph[k][max_pos] = temp;\n      }\n      */\n\n\n      // graph[k].resize(edge_num); // reset the size of NN list \n\n      // sort(graph[k].begin(), graph[k].end());\n      \n      M[k] = edge_num;\n      \n      // delete[] map;\n    }\n\n    cerr << endl;\n\n    } // end of diversify_by_cut\n      \n\n    virtual  float statistics(IndexOracle const &oracle, const int edge_num){ // diversity\n    if (oracle.size() != graph.size()){\n      throw runtime_error(\"in consistent ~!\");\n    }\n\n    uint32_t N = oracle.size();\n    float avg_co (0.0);\n\n    unsigned step = N / 100;\n    cerr << \"Progress : \";\n\n    for (unsigned k = 0; k < N; k++){\n\n       if ( k % step == 0) cerr <<\"*\"; \n\n      int len = graph[k].size();\n      while(graph[k][len-1].id == 0){\n        len--;\n      }\n      if (len >  edge_num){\n        len = edge_num;\n      }\n\n\n      // check each pair of neighbors   \n      long hit = 0; \n      for ( int i=0; i < len; i++ )        \n        for ( int j=i+1; j < len; j++ ){\n\n            // check if the edge < id[i] and id[j] exisits in the K-NN-graph; now we assume \n            bool exist = false;\n            // check i's NBs \n            unsigned id_1 = graph[k][i].id;\n            unsigned id_2 = graph[k][j].id;\n            for ( int s=0; s < len; s++)\n                if (graph[id_1][s].id == id_2) {\n                    exist = true; break;\n                }\n\n            if ( !exist ) continue; \n\n            for ( int s=0; s < len; s++)\n                if (graph[id_2][s].id == id_1) {\n                    hit++; break;\n                }\n        }   \n\n            // also check j's NBs  \n        float ratio = 2.0*hit/(len*(len-1)); \n        avg_co += ratio;\n\n    } // end of K \n\n    cerr << endl;\n\n    avg_co = avg_co / N;\n\n    return avg_co;\n        \n    } // end of function statistics   \n               \n\n    virtual void remove_near_edges(IndexOracle const &oracle, const int edge_num){ // diversity\n\tif (oracle.size() != graph.size()){\n\t  throw runtime_error(\"Build kgraph before adding long edges\");\n\t}\n\t\n\tuint32_t N = oracle.size();\n    unsigned step = N / 100;\n    cerr << \"Progress : \";\n\n    //#pragma omp parallel for\n\tfor (unsigned k = 0; k < N; k++){\n\n        if ( k % step == 0 ) cerr <<\"*\";\n\n\t  //if (k % 1000 == 0) {\n\t  //  fprintf(stderr, \"\\r%d (%.3f\\%)\", k, 1.0 * k / N * 100);\n\t  //}\n\t  //auto const &knn = graph[k];\n          //edge_num[k] /= 2;\n\t  float * map = new float[N];\n\t  memset(map, 0, sizeof(float)*N);\n\t  int len = graph[k].size();\n\t  while(graph[k][len-1].id == 0){\n\t    len--;\n\t  }\n\t  if (len > 2 * edge_num){\n\t    len = 2 * edge_num;\n\t  } \n\t  for (int i = 1; i < edge_num; ++i){ // the first max_edge_num elements are the remaining ones\n\t    float max_sum_angle = -1.0;\n\t    int max_pos = -1;\n\t    for (int cand_pos = i; cand_pos < len; cand_pos++){\n\n\n          // this is the version before sharing computation cost   \n          float sum_angle = 0.0;\n          for (int ppp = 1; ppp < i; ++ppp){\n            sum_angle += oracle.angle(k, graph[k][cand_pos].id, graph[k][ppp].id);\n          }\n\n          // map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n          // float sum_angle = map[graph[k][cand_pos].id];\n\n\n\n\t      if (sum_angle > max_sum_angle){\n\t\tmax_sum_angle = sum_angle;\n\t\tmax_pos = cand_pos;\n\t      }\n\t    }\n\t    Neighbor temp = graph[k][i];\n\t    graph[k][i] = graph[k][max_pos];\n\t    graph[k][max_pos] = temp;\n\t  }\n\t  graph[k].resize(edge_num); // reset the size of NN list \n\n\t  sort(graph[k].begin(), graph[k].end());\n\t  M[k] = edge_num;\n\t  delete[] map;\n\t   }\n\n        cerr << endl;\n\n      }\n     \n\n\n\n \n      virtual void remove_near_edges_2(IndexOracle const &oracle, vector<unsigned> const &edge_num, unordered_set<unsigned> const &skip_set){ // diversification, maxmin\n        if (oracle.size() != graph.size()){\n          throw runtime_error(\"Build kgraph before adding long edges\");\n        }\n\n        uint32_t N = oracle.size();\n\n// #pragma omp parallel for\n        for (unsigned k = 0; k < N; k++){\n\t  if (skip_set.find(k) != skip_set.end()){\n            continue;\n          }\n          //if (k % 1000 == 0) {\n          //  fprintf(stderr, \"\\r%d (%.3f\\%)\", k, 1.0 * k / N * 100);\n          //}\n          //auto const &knn = graph[k];\n          float * map = new float[N];\n          memset(map, 0, sizeof(float)*N);\n          int len = graph[k].size();\n          while(graph[k][len-1].dist == 0.0){\n            len--;\n          }\n          for (int i = 1; i < edge_num[k]; ++i){ // the first max_edge_num elements are the remaining ones\n            float min_angle = 10000000000.0;\n            int min_pos = -1;\n            for (int cand_pos = i; cand_pos < len; cand_pos++){\n\t      float angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n\t      if (map[graph[k][cand_pos].id] == 0 || map[graph[k][cand_pos].id] < angle){\n\t\tmap[graph[k][cand_pos].id] = angle;\n\t      }\n\t      //map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n              //float sum_angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n              if (min_angle > map[graph[k][cand_pos].id]){\n                min_angle = map[graph[k][cand_pos].id];\n                min_pos = cand_pos;\n              }\n            }\n            Neighbor temp = graph[k][i];\n            graph[k][i] = graph[k][min_pos];\n            graph[k][min_pos] = temp;\n          }\n          graph[k].resize(edge_num[k]);\n          sort(graph[k].begin(), graph[k].end());\n          M[k] = edge_num[k];\n          delete[] map;\n        }\n      }\n\n      virtual void add_long_edges(IndexOracle const &oracle, int const rank_top_k, int const change_num){\n\t  if (oracle.size() != graph.size()){\n\t    throw runtime_error(\"Build kgraph before adding long edges\");\n\t  }\n\n\t  //fprintf(stderr, \"mark\\n\");\n\n\t  uint32_t N = oracle.size();\n\t  vector<unsigned> rank_id_vec; // index: rank;  value: id\n\t  vector<unsigned> id_rank_vec; // index: id;  value: rank\n\t  for (unsigned i = 0; i < N; ++i){\n\t    rank_id_vec.push_back(i);\n\t  }\n\t  id_rank_vec.resize(N);\n\n\t  //fprintf(stderr, \"mark\\n\");\n\n\t  for (unsigned i = 0; i < N; ++i){ \n\t    //fprintf(stderr, \"=======length: %d=========\\n\", graph[i].size());\n\t    if (i % change_num == 0){\n\t      // re-shuffle\n\t      random_shuffle(rank_id_vec.begin(), rank_id_vec.end());\n\t      for (unsigned j = 0; j < N; ++j){\n\t\tid_rank_vec[rank_id_vec[j]] = j;\n\t      }\n\t    }\n\t    unsigned start = id_rank_vec[i] - rank_top_k / 2;\n\t    if (start < 0) {\n\t      start = 0;\n\t    }\n\t    unsigned end = id_rank_vec[i] + rank_top_k / 2;\n\t    if (end >= N) {\n\t      end = N - 1;\n\t    }\n\t    \n\t    //fprintf(stderr, \"start = %d, end = %d\\n\", start, end);\n\n\t    for (unsigned j = start; j <= end; ++j){\n\t      //test if rank_id[j] should be added\n\t      float dist = oracle(rank_id_vec[j], i);\n\t      bool is_dominated = false;\n\t      for (int k = 0; k < graph[i].size(); ++k){\n\t\t// if there exists a point in graph[i] that is closer to i in both distance and rank, \n\t\t// then the test point will be not added into the graph\n\t\tif (abs(j - id_rank_vec[i]) > abs(id_rank_vec[i] - id_rank_vec[graph[i][k].id]) && dist > graph[i][k].dist){\n\t\t  is_dominated = true;\n\t\t  break;\n\t\t}\n\t      }\n\t      if (!is_dominated){\n\t\tM[i] += 1;\n\t\tgraph[i].push_back(Neighbor(rank_id_vec[j], dist, true));\n\t      }\n\t    }\n\n\t    //fprintf(stderr, \"length: %d\\n\", graph[i].size());\n\n\t    sort(graph[i].begin(), graph[i].end());\n\t  } // for\n\t  //fprintf(stderr, \"final mark\\n\");\n\t}\n\n      virtual void saver (char const *path) const {\n\tuint32_t N = graph.size();\n\t//fprintf(stderr,\"%d\\n\", N);\n\tofstream os(path, ios::binary);\n\tos.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n\tos.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n\tos.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n\tos.write(reinterpret_cast<char const *>(&N), sizeof(N));\n\tfor (unsigned i = 0; i < graph.size(); ++i) {\n\t  auto const &knn = graph[i];\n\t  uint32_t K = knn.size();\n\t  //cout<<K<<endl;\n\t  //fprintf(stderr,\"%d\\n\", K);\n\t  os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n\t  os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n\t  os.write(reinterpret_cast<char const *>(&knn[0]), K * sizeof(knn[0]));\n\t}\n      }\n\n        virtual void save (char const *path) const {\n            uint32_t N = graph.size();\n            ofstream os(path, ios::binary);\n            os.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n            os.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n            os.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n            os.write(reinterpret_cast<char const *>(&N), sizeof(N));\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                auto const &knn = graph[i];\n                uint32_t K = knn.size();\n\t\t\t\t\n                os.write(reinterpret_cast<char const *>(&K), sizeof(K)); // modified by Yifang\n                os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n                for (unsigned j = 0; j < K; ++j){\n                  os.write(reinterpret_cast<char const *>(&knn[j].id), sizeof(knn[j].id));\n                }\n                //os.write(reinterpret_cast<char const *>(&knn[0]), K * sizeof(knn[0]));\n            }\n        }\n\t\t\n        virtual void get_hubs (char const *hubs_path,char const *knn_path) const {\n            uint32_t N = graph.size();\n            ofstream os(hubs_path, ios::binary);\n            ofstream knn_out(knn_path, ios::binary);\n            int hubs[N];\n\t    memset(hubs,0,sizeof(int)*N);\n            for (unsigned i = 0; i < N; ++i) {\n                auto const &knn = graph[i];\n                uint32_t K = knn.size();\n                for (unsigned j=0;j<K;j++)  {\n\t\t  hubs[knn[j].id]++;\n\t\t  knn_out<<knn[j].id<<\" \";\n\t\t}\n\t\tknn_out<<\"\\n\";\n\t\t\n            }\n\t    for (unsigned i = 0; i < N; ++i) {\n\t      os<<hubs[i]<<endl;\n            }\n        }\n\n      virtual void build (IndexOracle const &oracle, IndexParams const &param,  char const *path, IndexInfo *info);\n      //virtual void build (IndexOracle const &oracle, char const *path, IndexParams const &param);\n\n        /*\n        virtual void prune (unsigned K) {\n            for (auto &v: graph) {\n                if (v.size() > K) {\n                    v.resize(K);\n                }\n            }\n            return;\n            vector<vector<unsigned>> pruned(graph.size());\n            vector<set<unsigned>> reachable(graph.size());\n            vector<bool> added(graph.size());\n            for (unsigned k = 0; k < K; ++k) {\n#pragma omp parallel for\n                for (unsigned n = 0; n < graph.size(); ++n) {\n                    vector<unsigned> const &from = graph[n];\n                    if (from.size() <= k) continue;\n                    unsigned e = from[k];\n                    if (reachable[n].count(e)) {\n                        added[n] = false;\n                    }\n                    else {\n                        pruned[n].push_back(e);\n                        added[n] = true;\n                    }\n                }\n                // expand reachable\n#pragma omp parallel for\n                for (unsigned n = 0; n < graph.size(); ++n) {\n                    vector<unsigned> const &to = pruned[n];\n                    set<unsigned> &nn = reachable[n];\n                    if (added[n]) {\n                        for (unsigned v: pruned[to.back()]) {\n                            nn.insert(v);\n                        }\n                    }\n                    for (unsigned v: to) {\n                        if (added[v]) {\n                            nn.insert(pruned[v].back());\n                        }\n                    }\n                }\n            }\n            graph.swap(pruned);\n        }\n        */\n\n      virtual void kgraph2dot (char * const &filename){\n\tstd::ofstream fs;\n\tfs.open(filename, std::ofstream::out);\n\n\t//\tfs << \"strict digraph g {\" << endl;\n\n\tfor (unsigned i = 0; i < graph.size(); ++i){\n\t  for (unsigned j = 0; j < M[i]; ++j){\n\t    fs << i << \" => \" << graph[i][j].id << endl; //\"[ label=\\\"\" << graph[i][j].dist << \"\\\" ];\" << endl;;\n\t  }\n\t}\n\n\t//fs << \"}\" << endl;\n      }\n\n      virtual unsigned advanced_search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n\t/*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n\t    for (int i = 1; i < oracle.size(); ++i){\n\t        fprintf(stderr, \", %f\", oracle(i));\n\t\t}*/\n\t//fprintf(stderr, \"access_dist=(\");\n\t//fprintf(stdout, \"minimum_dist=(\");\n\n\tbool print_flag = true;\n\tstd::ofstream path_fs, mind_fs, curd_fs, nh_fs;\n\tstring file_name;\n\tif (info_path.empty()) {\n\t  print_flag = false;\n\t}\n\t\n\tif (print_flag){\n\t  file_name.assign(info_path);\n\t  file_name += \"_path.txt\";\n\t  path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n\t  mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n\t  curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_nh.txt\";\n          nh_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t}\n\t\n\tif (graph.size() > oracle.size()) {\n\t  throw runtime_error(\"dataset larger than index\");\n\t}\n\tif (params.P >= graph.size()) {\n\t  if (pinfo) {\n\t    pinfo->updates = 0;\n\t    pinfo->cost = 1.0;\n\t  }\n\t  return oracle.search(params.K, params.epsilon, ids, dists);\n\t}\n\tvector<Neighbor> knn(params.K + params.P +1);\n\tvector<Neighbor> init_knn(params.init);\n\tvector<Neighbor> results;\n\tboost::dynamic_bitset<> flags(graph.size(), false);\n\n\tif (params.init && params.T > 1) {\n\t  throw runtime_error(\"when init > 0, T must be 1.\");\n\t}\n\n\tunsigned seed = params.seed;\n\tunsigned updates = 0;\n\tif (seed == 0) seed = time(NULL);\n\tmt19937 rng(seed);\n\tunsigned n_comps = 0;\n\tfor (unsigned trial = 0; trial < params.T; ++trial) {\n\t  unsigned L = params.init;\n\t  //init>=K\n\t  if (L == 0) {   // generate random starting points\n\t    vector<unsigned> random(params.P);\n\t    GenRandom(rng, &random[0], random.size(), graph.size());\n\t    for (unsigned s: random) {\n\t      if (!flags[s]) {\n\t\tknn[L++].id = s;\n\t\t//flags[s] = true;\n\t      }\n\t    }\n\t    for (unsigned k = 0; k < L; ++k) {\n\t      flags[knn[k].id] = true;\n\t      knn[k].flag = true;\n\t      knn[k].dist = oracle(knn[k].id);\n\t            \n\t    }\n\t    sort(knn.begin(), knn.begin() + L);\n\t  }\n\t  else {          // user-provided starting points.\n\t    BOOST_VERIFY(ids); //ids\n\t    //std::cout<<\"set seed\"<<endl;\n\t    //BOOST_VERIFY(L < params.K);\n\t    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n\t      init_knn[l].id = ids[l];  //ids\n\t      init_knn[l].flag = true;\n              init_knn[l].dist = dists[l];\n\t      //fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n\t    }\n\t    //std::cout<<knn.size()<<endl;\n\t    //cout<<knn[0].id<<endl;\n                \n\t           \n\t    //sort(init_knn.begin(), init_knn.begin() + L);\n\t        \n\t    /*//delete\n\t          vector<Neighbor> init_fknn(graph.size());\n\t\t      for (unsigned k = 0; k < graph.size(); ++k){\n\t\t            init_fknn[k].id = k;\n\t\t\t          init_fknn[k].flag = true;\n\t\t\t\t        init_fknn[k].dist = oracle(k);\n\t\t\t\t\t    }\n\t\t\t\t\t        sort(init_fknn.begin(), init_fknn.end());\n\t\t\t\t\t\t    //end delete\n\t\t\t\t\t\t    */\n\t    L = params.K;\n\t    for (int ii = 0; ii < L; ++ii){\n\t      //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n\t      //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n\t      //recover\n\t      flags[init_knn[ii].id] = true;\n\t      knn[ii] = init_knn[ii];\n\t      //end recover\n\t      //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n\t    }\n\t  }\n\n\t  if (print_flag){\n\t    for (unsigned k = 0; k < L; ++k){\n\t      path_fs << \"-3 \" << knn[k].id << endl;\n\t      mind_fs << knn[0].dist << endl;\n\t      curd_fs << knn[k].dist << endl;\n\t          \n\t      nh_fs << M[knn[k].id] << \" \";\n\t      unordered_set<int> set;\n\t      set.insert(knn[k].id);\n\t      auto const &neighbors = graph[knn[k].id];\n\t      for (unsigned l = 0; l < M[knn[k].id]; ++l){\n\t\tset.insert(neighbors[l].id);\n\t\tauto const &new_neighbors = graph[neighbors[l].id];\n\t\tfor (unsigned ll = 0; ll < M[neighbors[l].id]; ++ll){\n\t\t  set.insert(new_neighbors[ll].id);\n\t\t}\n\t      }\n\t      nh_fs << set.size() << endl;\n\t    }\n\t  }\n\t  \n\t  unsigned k = 0;\n\t  while (k < L) {\n\t    unsigned nk = L;\n\t    if (knn[k].flag) {\n\t      knn[k].flag = false;\n\t      unsigned cur = knn[k].id;\n\t      //BOOST_VERIFY(cur < graph.size());\n\t      unsigned maxM = M[cur];\n\t      if (params.M > maxM) maxM = params.M;\n\t      auto const &neighbors = graph[cur];\n\t      if (maxM > neighbors.size()) {\n\t\tmaxM = neighbors.size();\n\t      }\n\t      for (unsigned m = 0; m < maxM; ++m) {\n\t\tunsigned id = neighbors[m].id;\n\t\t//BOOST_VERIFY(id < graph.size());\n\t\tif (flags[id]) continue;\n\t\tflags[id] = true;\n\t\t++n_comps;\n\t\t//if(n_comps >= params.Maxchecks)\n\t\t//  {\n\t\t//  break;\n\t\t//  }\n\t\tfloat dist = oracle(id);\n\t\t    \n\t\t/*if(n_comps == 1){\n\t\t        fprintf(stderr, \"%f\", dist);\n\t\t\t    } else {\n\t\t\t          fprintf(stderr, \", %f\", dist);\n\t\t\t\t  }*/\n\t\tNeighbor nn(id, dist);\n\t\tunsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\tif (print_flag){\n\t\t  path_fs << cur << \" \" << id << endl;\n\t\t  mind_fs << knn[0].dist << endl;\n\t\t  curd_fs << dist << endl;\n\n\t\t  nh_fs << M[id] << \" \";\n\t\t  unordered_set<int> set;\n\t\t  set.insert(id);\n\t\t  auto const &nbors = graph[id];\n\t\t  for (unsigned l_1 = 0; l_1 < M[id]; ++l_1){\n\t\t    set.insert(nbors[l_1].id);\n\t\t    auto const &new_neighbors = graph[nbors[l_1].id];\n\t\t    for (unsigned ll = 0; ll < M[nbors[l_1].id]; ++ll){\n\t\t      set.insert(new_neighbors[ll].id);\n\t\t    }\n\t\t  }\n\t\t  nh_fs << set.size() << endl;\n\t\t}\n\t\t/*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n                            } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n\t\tBOOST_VERIFY(r <= L);\n\t\t//if (r > L) continue;\n\t\tif (L + 1 < knn.size()) ++L;\n\t\tif (r < nk) {\n\t\t  nk = r;\n\t\t}\n\t      }\n\t      //fprintf(stderr, \"}\\n\");\n\t    }\n\t    if (nk <= k) {\n\t      k = nk;\n\t    }\n\t    else {\n\t      ++k;\n\t    }\n\t    //if(n_comps >= params.Maxchecks)\n\t    //{\n\t    //   break;\n\t    //}\n\t  }\n\t  if (L > params.K) L = params.K;\n\t  if (results.empty()) {\n\t    results.reserve(params.K + 1);\n\t    results.resize(L + 1);\n\t    copy(knn.begin(), knn.begin() + L, results.begin());\n\t  }\n\t  else {\n\t    // update results\n\t    for (unsigned l = 0; l < L; ++l) {\n\t      unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n\t      if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n\t\tresults.resize(results.size() + 1);\n\t      }\n\t    }\n\t  }\n\t}\n\t// check epsilon\n\t{\n\t  for (unsigned l = 0; l < results.size(); ++l) {\n\t    if (results[l].dist > params.epsilon) {\n\t      results.resize(l);\n\t      break;\n\t    }\n\t  }\n\t}\n\tunsigned L = results.size() - 1;\n\tBOOST_VERIFY(L <= params.K);\n\t// check epsilon\n\tif (ids) {\n\t  for (unsigned k = 0; k < L; ++k) {\n\t    ids[k] = results[k].id;\n\t  }\n\t}\n\tif (dists) {\n\t  for (unsigned k = 0; k < L; ++k) {\n\t    dists[k] = results[k].dist;\n\t  }\n\t}\n\tif (pinfo) {\n\t  pinfo->updates = updates;\n\t  pinfo->cost = float(n_comps) / graph.size();\n\t  pinfo->checks=n_comps;\n\t}\n\tif (print_flag){\n\t  path_fs << \"-1\" << endl;\n\t  for (unsigned k = 0; k < results.size() - 1; ++k){\n\t    path_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n\t  }\n\t  path_fs << \"-2\" << endl;\n\t  mind_fs << \"-1\" << endl;\n\t  curd_fs << \"-1\" << endl;\n\t  nh_fs << \"-1\" << endl;\n\t}\n\t//fprintf(stderr, \")\\n\");\n\t//fprintf(stdout, \")\\n\");\n\t//fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n\treturn L;\n      }\n\n      virtual void find_lm (SearchOracle const &oracle) const {\n\tunsigned K = 10;\n\tunsigned N = oracle.size();\n\tunsigned * ordered_nn_id = new unsigned[N];\n\tunsigned * rank = new unsigned[N];\n\tfloat * ordered_nn_dist = new float[N];\n\tbool * is_lm = new bool[N];\n\tunordered_set<unsigned> top_set;\n\tint * top_cover = new int[K];\n\tbool * traverse = new bool[N];\n\tint counter = 0;\n\n\n\tqueue<unsigned> new_queue;\n\tqueue<unsigned> cur_queue;\n\t\n\toracle.search(N, default_epsilon, ordered_nn_id, ordered_nn_dist);\n\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  rank[ordered_nn_id[i]] = i;\n\t  is_lm[i] = true;\n\t  traverse[i] = false;\n\t}\n\tfor (unsigned i = 0; i < K; ++i){\n\t  top_set.insert(i);\n\t}\n\t\n\tfor (unsigned i = 0; i < N; ++i){\n\t  auto const &neighbors = graph[i];\n\t  for (unsigned l = 0; l < M[i]; ++l){\n\t    if (rank[neighbors[l].id] < rank[i]){\n\t      is_lm[i] = false;\n\t      break;\n\t    }\n\t  }\n\t  if (is_lm[i]){ // is LM, output something\n\t    counter ++;\n\t    fprintf(stderr, \"rank:\\t%d\\n\", rank[i]);\n\t    fprintf(stderr, \"dist:\\t%f\\n\", ordered_nn_dist[rank[i]]);\n\t    cur_queue.push(i);\n\t    traverse[i] = true;\n\t    if (top_set.find(rank[i]) != top_set.end()){\n\t      top_cover[rank[i]] = 0;\n\t      top_set.erase(rank[i]);\n\t    }\n\t  }\n\t}\n\n\t//\tfprintf(stderr, \"N=%d\\n\", N);\n\t//find coverage of top-K\n\tunsigned level = 0;\n\twhile(true){\n\t  level++;\n\t  //fprintf(stderr, \"mark2.1\\n\");\n\t  while(!cur_queue.empty()){\n\t    unsigned id = cur_queue.front();\n\t    cur_queue.pop();\n\t    auto const &neighbors = graph[id];\n\t    //fprintf(stderr, \"mark2.5 %d\\n\", M[id]);\n\t    for (unsigned l = 0; l < M[id]; ++l){\n\t      //fprintf(stderr, \"%d\\n\", neighbors[l].id);\n\t      //fprintf(stderr, \"%d\\n\", traverse[neighbors[l].id]);\n\t      if (!traverse[neighbors[l].id]){\n\t\tnew_queue.push(neighbors[l].id);\n\t\ttraverse[neighbors[l].id] = true;\n\t\t//fprintf(stderr, \"-> %d\\n\", rank[neighbors[l].id]);\n\t\tif (rank[neighbors[l].id] < K && top_set.find(rank[neighbors[l].id]) != top_set.end()){\n\t\t  top_cover[rank[neighbors[l].id]] = level;\n\t\t  top_set.erase(rank[neighbors[l].id]);\n\t\t  if (top_set.empty()){\n\t\t    goto jump_out;\n\t\t  }\n\t\t}\n\t      }\n\t    } // end for loop\n\t  }\n\t  cur_queue.swap(new_queue);\n\t}\n\n\n      jump_out:\n\tfprintf(stderr, \"mark3\\n\");\n\tfprintf(stderr, \"# of LMins:\\t%d\\n\", counter);\n\tfor (unsigned i = 0; i < K; ++i){\n\t  fprintf(stderr, \"top-%d is %d hops away from LMins\\n\", i + 1, top_cover[i]);\n\t}\n\t\n\tdelete[] ordered_nn_id;\n\tdelete[] rank;\n\tdelete[] ordered_nn_dist;\n\tdelete[] is_lm;\n\tdelete[] top_cover;\n      }\n      \n      virtual unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n\t  /*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n\t  for (int i = 1; i < oracle.size(); ++i){\n\t    fprintf(stderr, \", %f\", oracle(i));\n\t    }*/\n\t  //fprintf(stderr, \"access_dist=(\");\n\t  //fprintf(stdout, \"minimum_dist=(\");\n\n\tbool print_flag = true;\n\tstd::ofstream path_fs, mind_fs, curd_fs, nh_fs;\n\tstring file_name;\n\tif (info_path.empty()) {\n\t  print_flag = false;\n\t}\n\t\n\tif (print_flag){\n\t  file_name.assign(info_path);\n\t  file_name += \"_path.txt\";\n\t  path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n\t  mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n\t  curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_nh.txt\";\n          nh_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t}\n\t\n\tif (graph.size() > oracle.size()) {\n\t  throw runtime_error(\"dataset larger than index\");\n\t}\n\tif (params.P >= graph.size()) {\n\t  if (pinfo) {\n\t    pinfo->updates = 0;\n\t    pinfo->cost = 1.0;\n\t  }\n\t  return oracle.search(params.K, params.epsilon, ids, dists);\n\t}\n            vector<Neighbor> knn(params.K + params.P +1);\n\t    vector<Neighbor> init_knn(params.init);\n            vector<Neighbor> results;\n            boost::dynamic_bitset<> flags(graph.size(), false);\n\n            if (params.init && params.T > 1) {\n                throw runtime_error(\"when init > 0, T must be 1.\");\n            }\n\n            unsigned seed = params.seed;\n            unsigned updates = 0;\n            if (seed == 0) seed = time(NULL);\n            mt19937 rng(seed);\n            unsigned n_comps = 0;\n            for (unsigned trial = 0; trial < params.T; ++trial) {\n                unsigned L = params.init;\n                //init>=K\n                if (L == 0) {   // generate random starting points\n                    vector<unsigned> random(params.P);\n                    GenRandom(rng, &random[0], random.size(), graph.size());\n                    for (unsigned s: random) {\n                        if (!flags[s]) {\n                            knn[L++].id = s;\n                            //flags[s] = true;\n                        }\n                    }\n\t\t    for (unsigned k = 0; k < L; ++k) {\n\t\t      flags[knn[k].id] = true;\n\t\t      knn[k].flag = true;\n\t\t      knn[k].dist = oracle(knn[k].id);\n\t\t      \n\t\t    }\n\t\t    sort(knn.begin(), knn.begin() + L);\n                }\n                else {          // user-provided starting points.\n                    BOOST_VERIFY(ids); //ids\n                    //std::cout<<\"set seed\"<<endl;\n                    //BOOST_VERIFY(L < params.K);\n                    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n                        init_knn[l].id = ids[l];  //ids\n\t\t\t//fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n                    }\n                    //std::cout<<knn.size()<<endl;\n                    //cout<<knn[0].id<<endl;\n                \n\t       \n\t\t    for (unsigned k = 0; k < L; ++k) {\n\t\t      //flags[knn[k].id] = true;\n\t\t      init_knn[k].flag = true;\n\t\t      init_knn[k].dist = oracle(init_knn[k].id);\n\t\t    }\n\t\t    sort(init_knn.begin(), init_knn.begin() + L);\n\t\t    \n\t\t    /*//delete\n\t\t    vector<Neighbor> init_fknn(graph.size());\n\t\t    for (unsigned k = 0; k < graph.size(); ++k){\n\t\t      init_fknn[k].id = k;\n\t\t      init_fknn[k].flag = true;\n\t\t      init_fknn[k].dist = oracle(k);\n\t\t    }\n\t\t    sort(init_fknn.begin(), init_fknn.end());\n\t\t    //end delete\n\t\t    */\n\t\t    L = params.K;\n\t\t    for (int ii = 0; ii < L; ++ii){\n\t\t      //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n\t\t      //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n\t\t      //recover\n\t\t      flags[init_knn[ii].id] = true;\n\t\t      knn[ii] = init_knn[ii];\n\t\t      //end recover\n\t\t      //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n\t\t    }\n\t\t}\n\n\t\tif (print_flag){\n\t\t  for (unsigned k = 0; k < L; ++k){\n\t\t    path_fs << \"-3 \" << knn[k].id << endl;\n\t\t    mind_fs << knn[0].dist << endl;\n\t\t    curd_fs << knn[k].dist << endl;\n\t\t    \n\t\t    nh_fs << M[knn[k].id] << \" \";\n\t\t    unordered_set<int> set;\n\t\t    set.insert(knn[k].id);\n\t\t    auto const &neighbors = graph[knn[k].id];\n\t\t    for (unsigned l = 0; l < M[knn[k].id]; ++l){\n\t\t      set.insert(neighbors[l].id);\n\t\t      auto const &new_neighbors = graph[neighbors[l].id];\n\t\t      for (unsigned ll = 0; ll < M[neighbors[l].id]; ++ll){\n\t\t\tset.insert(new_neighbors[ll].id);\n\t\t      }\n\t\t    }\n\t\t    nh_fs << set.size() << endl;\n\t\t  }\n\t\t}\n\t\t\n\t\tunsigned k = 0;\n \n                while (k < L) {\n                    unsigned nk = L;\n                    if (knn[k].flag) {\n                        knn[k].flag = false;\n                        unsigned cur = knn[k].id;\n\t\t\t//BOOST_VERIFY(cur < graph.size());\n                        unsigned maxM = M[cur];\n                        if (params.M > maxM) maxM = params.M;\n                        auto const &neighbors = graph[cur];\n                        if (maxM > neighbors.size()) {\n                            maxM = neighbors.size();\n                        }\n                        for (unsigned m = 0; m < maxM; ++m) {\n                            unsigned id = neighbors[m].id;\n                            //BOOST_VERIFY(id < graph.size());\n                            if (flags[id]) continue;\n                            flags[id] = true;\n                            ++n_comps;\n                            //if(n_comps >= params.Maxchecks)\n\t\t\t    //  {\n                            //  break;\n\t\t\t    //  }\n                            float dist = oracle(id);\n\t\t\t    \n\t\t\t    /*if(n_comps == 1){\n\t\t\t      fprintf(stderr, \"%f\", dist);\n\t\t\t    } else {\n\t\t\t      fprintf(stderr, \", %f\", dist);\n\t\t\t      }*/\n\t\t\t    Neighbor nn(id, dist);\n\t\t\t    unsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\t\t    if (print_flag){\n                              path_fs << cur << \" \" << id << endl;\n                              mind_fs << knn[0].dist << endl;\n\t\t\t      curd_fs << dist << endl;\n\n\t\t\t      nh_fs << M[id] << \" \";\n\t\t\t      unordered_set<int> set;\n\t\t\t      set.insert(id);\n\t\t\t      auto const &nbors = graph[id];\n\t\t\t      for (unsigned l_1 = 0; l_1 < M[id]; ++l_1){\n\t\t\t\tset.insert(nbors[l_1].id);\n\t\t\t\tauto const &new_neighbors = graph[nbors[l_1].id];\n\t\t\t\tfor (unsigned ll = 0; ll < M[nbors[l_1].id]; ++ll){\n\t\t\t\t  set.insert(new_neighbors[ll].id);\n\t\t\t\t}\n\t\t\t      }\n\t\t\t      nh_fs << set.size() << endl;\n                            }\n\t\t\t    /*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n                            } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n                            BOOST_VERIFY(r <= L);\n                            //if (r > L) continue;\n                            if (L + 1 < knn.size()) ++L;\n                            if (r < nk) {\n                                nk = r;\n                            }\n                        }\n\t\t\t//fprintf(stderr, \"}\\n\");\n                    }\n                    if (nk <= k) {\n                        k = nk;\n                    }\n                    else {\n                        ++k;\n                    }\n                    //if(n_comps >= params.Maxchecks)\n\t\t    //\t\t\t{\n                    //   break;\n                    //}\n                }\n                if (L > params.K) L = params.K;\n                if (results.empty()) {\n                    results.reserve(params.K + 1);\n                    results.resize(L + 1);\n                    copy(knn.begin(), knn.begin() + L, results.begin());\n                }\n                else {\n                    // update results\n                    for (unsigned l = 0; l < L; ++l) {\n                        unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n                        if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n                            results.resize(results.size() + 1);\n                        }\n                    }\n                }\n            }\n\t    //\t    results.pop_back();\n            // check epsilon\n            {\n                for (unsigned l = 0; l < results.size(); ++l) {\n                    if (results[l].dist > params.epsilon) {\n                        results.resize(l);\n                        break;\n                    }\n                }\n            }\n            unsigned L = results.size() - 1;\n            BOOST_VERIFY(L <= params.K);\n            // check epsilon\n            if (ids) {\n                for (unsigned k = 0; k < L; ++k) {\n                    ids[k] = results[k].id;\n                }\n            }\n            if (dists) {\n                for (unsigned k = 0; k < L; ++k) {\n                    dists[k] = results[k].dist;\n                }\n            }\n            if (pinfo) {\n                pinfo->updates = updates;\n                pinfo->cost = float(n_comps) / graph.size();\n                pinfo->checks=n_comps;\n            }\n\t    if (print_flag){\n\t      path_fs << \"-1\" << endl;\n\t      for (unsigned k = 0; k < results.size() - 1; ++k){\n\t\tpath_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n\t      }\n\t      path_fs << \"-2\" << endl;\n\t      mind_fs << \"-1\" << endl;\n\t      curd_fs << \"-1\" << endl;\n\t      nh_fs << \"-1\" << endl;\n\t    }\n\t    //fprintf(stderr, \")\\n\");\n\t    //fprintf(stdout, \")\\n\");\n\t    //fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n            return L;\n        }\n\n\n      virtual unsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n      /*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n      for (int i = 1; i < oracle.size(); ++i){\n        fprintf(stderr, \", %f\", oracle(i));\n        }*/\n      //fprintf(stderr, \"access_dist=(\");\n      //fprintf(stdout, \"minimum_dist=(\");\n\n    bool print_flag = true;\n    std::ofstream path_fs, mind_fs, curd_fs;\n    string file_name;\n    if (info_path.empty()) {\n      print_flag = false;\n    }\n    \n    if (print_flag){\n      file_name.assign(info_path);\n      file_name += \"_path.txt\";\n      path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n      file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n      mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n      file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n      curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n    }\n    \n    if (graph.size() > oracle.size()) {\n      throw runtime_error(\"dataset larger than index\");\n    }\n    if (params.P >= graph.size()) {\n      if (pinfo) {\n        pinfo->updates = 0;\n        pinfo->cost = 1.0;\n      }\n      return oracle.search(params.K, params.epsilon, ids, dists);\n    }\n            vector<Neighbor> knn(params.K + params.P +1);\n        vector<Neighbor> init_knn(params.init);\n            vector<Neighbor> results;\n            boost::dynamic_bitset<> flags(graph.size(), false);\n\n            if (params.init && params.T > 1) {\n                throw runtime_error(\"when init > 0, T must be 1.\");\n            }\n\n            unsigned seed = params.seed;\n            unsigned updates = 0;\n            if (seed == 0) seed = time(NULL);\n            mt19937 rng(seed);\n            unsigned n_comps = 0;\n            for (unsigned trial = 0; trial < params.T; ++trial) {\n                unsigned L = params.init;\n                //init>=K\n                if (L == 0) {   // generate random starting points\n                    vector<unsigned> random(params.P);\n                    GenRandom(rng, &random[0], random.size(), graph.size());\n                    for (unsigned s: random) {\n                        if (!flags[s]) {\n                            knn[L++].id = s;\n                            //flags[s] = true;\n                        }\n                    }\n            for (unsigned k = 0; k < L; ++k) {\n              flags[knn[k].id] = true;\n              knn[k].flag = true;\n              knn[k].dist = oracle(knn[k].id);\n            }\n            sort(knn.begin(), knn.begin() + L);\n                }\n                else {          // user-provided starting points.\n                    BOOST_VERIFY(ids); //ids\n                    //std::cout<<\"set seed\"<<endl;\n                    //BOOST_VERIFY(L < params.K);\n                    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n                        init_knn[l].id = ids[l];  //ids\n            //fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n                    }\n                    //std::cout<<knn.size()<<endl;\n                    //cout<<knn[0].id<<endl;\n                \n           \n            for (unsigned k = 0; k < L; ++k) {\n              //flags[knn[k].id] = true;\n              init_knn[k].flag = true;\n              init_knn[k].dist = oracle(init_knn[k].id);\n            }\n            sort(init_knn.begin(), init_knn.begin() + L);\n            \n            /*//delete\n            vector<Neighbor> init_fknn(graph.size());\n            for (unsigned k = 0; k < graph.size(); ++k){\n              init_fknn[k].id = k;\n              init_fknn[k].flag = true;\n              init_fknn[k].dist = oracle(k);\n            }\n            sort(init_fknn.begin(), init_fknn.end());\n            //end delete\n            */\n            L = params.K;\n            for (int ii = 0; ii < L; ++ii){\n              //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n              //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n              //recover\n              flags[init_knn[ii].id] = true;\n              knn[ii] = init_knn[ii];\n              //end recover\n              //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n            }\n        }\n\n        if (print_flag){\n          mind_fs << knn[0].dist << endl;\n          curd_fs << knn[0].dist << endl;\n        }\n        \n        unsigned k = 0;\n                while (k < L) {\n                    unsigned nk = L;\n                    if (knn[k].flag) {\n                        knn[k].flag = false;\n                        unsigned cur = knn[k].id;\n            //BOOST_VERIFY(cur < graph.size());\n                        unsigned maxM = M[cur];\n\t\t\tfloat thres = knn[k].dist;\n                        if (params.M > maxM) maxM = params.M;\n                        auto const &neighbors = graph[cur];\n                        if (maxM > neighbors.size()) {\n                            maxM = neighbors.size();\n                        }\n                        for (unsigned m = 0; m < maxM; ++m) {\n                            unsigned id = neighbors[m].id;\n                            //BOOST_VERIFY(id < graph.size());\n                            if (flags[id]) continue;\n                            flags[id] = true;\n                            ++n_comps;\n\t\t\t    //                            if(n_comps >= params.Maxchecks)\n\t\t\t    //  {\n\t\t\t    //break;\n\t\t\t    //  }\n                            float dist = oracle(id);\n\t\t\t    if (dist > thres) {\n\t\t\t      continue;\n\t\t\t    }\n                /*if(n_comps == 1){\n                  fprintf(stderr, \"%f\", dist);\n                } else {\n                  fprintf(stderr, \", %f\", dist);\n                  }*/\n\t\t\t    Neighbor nn(id, dist);\n\t\t\t    unsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\t\t    if (print_flag){\n                              path_fs << cur << \" \" << id << endl;\n                              mind_fs << knn[0].dist << endl;\n\t\t\t      curd_fs << dist << endl;\n                            }\n\t\t\t    /*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n\t\t\t      } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n                            BOOST_VERIFY(r <= L);\n                            //if (r > L) continue;\n                            if (L + 1 < knn.size()) ++L;\n                            if (r < nk) {\n\t\t\t      nk = r;\n                            }\n                        }\n\t\t\t//fprintf(stderr, \"}\\n\");\n                    }\n                    if (nk <= k) {\n                        k = nk;\n                    }\n                    else {\n                        ++k;\n                    }\n\t\t    //                    if(n_comps >= params.Maxchecks)\n                    //{\n                    //   break;\n\t\t    //    }\n                }\n                if (L > params.K) L = params.K;\n                if (results.empty()) {\n                    results.reserve(params.K + 1);\n                    results.resize(L + 1);\n                    copy(knn.begin(), knn.begin() + L, results.begin());\n                }\n                else {\n                    // update results\n                    for (unsigned l = 0; l < L; ++l) {\n                        unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n                        if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n                            results.resize(results.size() + 1);\n                        }\n                    }\n                }\n            }\n            // check epsilon\n            {\n                for (unsigned l = 0; l < results.size(); ++l) {\n                    if (results[l].dist > params.epsilon) {\n                        results.resize(l);\n                        break;\n                    }\n                }\n            }\n            unsigned L = results.size() - 1;\n            BOOST_VERIFY(L <= params.K);\n            // check epsilon\n            if (ids) {\n                for (unsigned k = 0; k < L; ++k) {\n                    ids[k] = results[k].id;\n                }\n            }\n            if (dists) {\n                for (unsigned k = 0; k < L; ++k) {\n                    dists[k] = results[k].dist;\n                }\n            }\n            if (pinfo) {\n                pinfo->updates = updates;\n                pinfo->cost = float(n_comps) / graph.size();\n                pinfo->checks=n_comps;\n            }\n        if (print_flag){\n          path_fs << \"-1\" << endl;\n          for (unsigned k = 0; k < results.size() - 1; ++k){\n        path_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n          }\n          path_fs << \"-2\" << endl;\n          mind_fs << \"-1\" << endl;\n          curd_fs << \"-1\" << endl;\n        }\n        //fprintf(stderr, \")\\n\");\n        //fprintf(stdout, \")\\n\");\n        //fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n            return L;\n        }\n\n        virtual void get_nn (unsigned id, unsigned *nns, float *dist, unsigned *pM, unsigned *pL) const {\n            BOOST_VERIFY(id < graph.size());\n            auto const &v = graph[id];\n            *pM = M[id];\n            *pL = v.size();\n            if (nns) {\n                for (unsigned i = 0; i < v.size(); ++i) {\n                    nns[i] = v[i].id;\n                }\n            }\n            if (dist) {\n                for (unsigned i = 0; i < v.size(); ++i) {\n                    dist[i] = v[i].dist;\n                }\n            }\n        }\n\n        void prune1 () {\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                if (graph[i].size() > M[i]) {\n                    graph[i].resize(M[i]);\n                }\n            }\n        }\n\n        void prune2 () {\n#if 0\n            vector<vector<unsigned>> new_graph(graph.size());\n            vector<unsigned> new_M(graph.size());\n            vector<vector<unsigned>> reverse(graph.size());\n            vector<unordered_set<unsigned>> todo(graph.size());\n            unsigned L = 0;\n            {\n                cerr << \"Level 2 Prune, stage 1/2 ...\" << endl;\n                progress_display progress(graph.size(), cerr);\n                for (unsigned i = 0; i < graph.size(); ++i) {\n                    if (graph[i].size() > L) L = graph[i].size();\n                    todo[i] = unordered_set<unsigned>(graph[i].begin(), graph[i].end());\n                    ++progress;\n                }\n            }\n            {\n                cerr << \"Level 2 Prune, stage 2/2 ...\" << endl;\n                progress_display progress(L, cerr);\n                for (unsigned l = 0; l < L; ++l) {\n                    for (unsigned i = 0; i < graph.size(); ++i) {\n                        if (todo[i].empty()) continue;\n                        BOOST_VERIFY(l < graph[i].size());\n                        unsigned T = graph[i][l];\n                        if (todo[i].erase(T)) { // still there, need to be added\n                            new_graph[i].push_back(T);\n                            reverse[T].push_back(i);\n                            // mark newly reachable nodes\n                            for (auto n2: new_graph[T]) {\n                                todo[i].erase(n2);\n                            }\n                            for (auto r: reverse[i]) {\n                                todo[r].erase(T);\n                            }\n                        }\n                        if (l + 1 == M[i]) {\n                            new_M[i] = new_graph[i].size();\n                        }\n                    }\n                    ++progress;\n                }\n            }\n            graph.swap(new_graph);\n            M.swap(new_M);\n#endif\n        }\n\n        virtual void prune (IndexOracle const &oracle, unsigned level) {\n            if (level & PRUNE_LEVEL_1) {\n                prune1();\n            }\n            if (level & PRUNE_LEVEL_2) {\n                prune2();\n            }\n        }\n    };\n\n    class KGraphConstructor: public KGraphImpl {\n        // The neighborhood structure maintains a pool of near neighbors of an object.\n        // The neighbors are stored in the pool.  \"n\" (<=\"params.L\") is the number of valid entries\n        // in the pool, with the beginning \"k\" (<=\"n\") entries sorted.\n        struct Nhood { // neighborhood\n            Lock lock;\n            float radius;   // distance of interesting range\n            float radiusM;\n            Neighbors pool;\n            unsigned L;     // # valid items in the pool,  L + 1 <= pool.size()\n            unsigned M;     // we only join items in pool[0..M)\n            bool found;     // helped found new NN in this round\n            vector<unsigned> nn_old;\n            vector<unsigned> nn_new;\n            vector<unsigned> rnn_old;\n            vector<unsigned> rnn_new;\n\n            // only non-readonly method which is supposed to be called in parallel\n            unsigned parallel_try_insert (unsigned id, float dist) {\n                if (dist > radius) return pool.size();\n                LockGuard guard(lock);\n                unsigned l = UpdateKnnList(&pool[0], L, Neighbor(id, dist, true));\n                if (l <= L) { // inserted\n                    if (L + 1 < pool.size()) { // if l == L + 1, there's a duplicate\n                        ++L;\n                    }\n                    else {\n                        radius = pool[L-1].dist;\n                    }\n                }\n                return l;\n            }\n\n            // join should not be conflict with insert\n            template <typename C>\n            void join (C callback) const {\n                for (unsigned const i: nn_new) {\n                    for (unsigned const j: nn_new) {\n                        if (i < j) {\n                            callback(i, j);\n                        }\n                    }\n                    for (unsigned j: nn_old) {\n                        callback(i, j);\n                    }\n                }\n            }\n        };\n\n        IndexOracle const &oracle;\n        IndexParams params;\n        IndexInfo *pinfo;\n        vector<Nhood> nhoods;\n        size_t n_comps;\n\n        void init () {\n            unsigned N = oracle.size();\n            unsigned seed = params.seed;\n            mt19937 rng(seed);\n            for (auto &nhood: nhoods) {\n                nhood.nn_new.resize(params.S * 2);\n                nhood.pool.resize(params.L+1);\n                nhood.radius = numeric_limits<float>::max();\n            }\n            #pragma omp parallel\n            {\n              #ifdef _OPENMP\n              mt19937 rng(seed ^ omp_get_thread_num());\n              #else\n                mt19937 rng(seed);\n              #endif\n                vector<unsigned> random(params.S + 1);\n               #pragma omp for\n                for (unsigned n = 0; n < N; ++n) {\n                    auto &nhood = nhoods[n];\n                    Neighbors &pool = nhood.pool;\n                    GenRandom(rng, &nhood.nn_new[0], nhood.nn_new.size(), N); //nn_new 2*S random sampling \n                    GenRandom(rng, &random[0], random.size(), N);  //random s+1\n                    nhood.L = params.S;\n                    nhood.M = params.S;\n\t\t\t\t\t//cout<<nhood.L<<endl;\n                    unsigned i = 0;\n                    for (unsigned l = 0; l < nhood.L; ++l) {\n                        if (random[i] == n) ++i;\n                        auto &nn = nhood.pool[l];\n                        nn.id = random[i++];\n                        nn.dist = oracle(nn.id, n);\n                        nn.flag = true;\n                    }\n                    sort(pool.begin(), pool.begin() + nhood.L);\n                }\n            }\n        }\n        void join () {\n            size_t cc = 0;\n            #pragma omp parallel for default(shared) schedule(dynamic, 100) reduction(+:cc)\n            for (unsigned n = 0; n < oracle.size(); ++n) {\n                size_t uu = 0;\n                nhoods[n].found = false;\n                nhoods[n].join([&](unsigned i, unsigned j) {\n                        float dist = oracle(i, j);\n                        ++cc;\n                        unsigned r;\n                        r = nhoods[i].parallel_try_insert(j, dist);\n                        if (r < params.K) ++uu;\n                        nhoods[j].parallel_try_insert(i, dist);\n                        if (r < params.K) ++uu;\n                });\n                nhoods[n].found = uu > 0;\n            }\n            n_comps += cc;\n        }\n        void update () {\n            unsigned N = oracle.size();\n            for (auto &nhood: nhoods) {\n                nhood.nn_new.clear();\n                nhood.nn_old.clear();\n                nhood.rnn_new.clear();\n                nhood.rnn_old.clear();\n                nhood.radius = nhood.pool.back().dist;\n            }\n            //!!! compute radius2\n            #pragma omp parallel for\n            for (unsigned n = 0; n < N; ++n) {\n                auto &nhood = nhoods[n];\n                if (nhood.found) {\n                    unsigned maxl = std::min(nhood.M + params.S, nhood.L);\n                    unsigned c = 0;\n                    unsigned l = 0;\n                    while ((l < maxl) && (c < params.S)) {\n                        if (nhood.pool[l].flag) ++c;\n                        ++l;\n                    }\n                    nhood.M = l;\n                }\n                BOOST_VERIFY(nhood.M > 0);\n                nhood.radiusM = nhood.pool[nhood.M-1].dist;\n            }\n            #pragma omp parallel for\n            for (unsigned n = 0; n < N; ++n) {\n                auto &nhood = nhoods[n];\n                auto &nn_new = nhood.nn_new;\n                auto &nn_old = nhood.nn_old;\n                for (unsigned l = 0; l < nhood.M; ++l) {\n\t\t\t\t\t\n                    auto &nn = nhood.pool[l];\n                    auto &nhood_o = nhoods[nn.id];  // nhood on the other side of the edge\n                    if (nn.flag) {\n                        nn_new.push_back(nn.id);\n                        if (nn.dist > nhood_o.radiusM) {\n                            LockGuard guard(nhood_o.lock);\n                            nhood_o.rnn_new.push_back(n);\n                        }\n                        nn.flag = false;\n                    }\n                    else {\n                        nn_old.push_back(nn.id);\n                        if (nn.dist > nhood_o.radiusM) {\n                            LockGuard guard(nhood_o.lock);\n                            nhood_o.rnn_old.push_back(n);\n                        }\n                    }\n                }\n            }\n            for (unsigned i = 0; i < N; ++i) {\n                auto &nn_new = nhoods[i].nn_new;\n                auto &nn_old = nhoods[i].nn_old;\n                auto &rnn_new = nhoods[i].rnn_new;\n                auto &rnn_old = nhoods[i].rnn_old;\n                if (params.R && (rnn_new.size() > params.R)) {\n                    random_shuffle(rnn_new.begin(), rnn_new.end());\n                    rnn_new.resize(params.R);\n                }\n                nn_new.insert(nn_new.end(), rnn_new.begin(), rnn_new.end());\n                if (params.R && (rnn_old.size() > params.R)) {\n                    random_shuffle(rnn_old.begin(), rnn_old.end());\n                    rnn_old.resize(params.R);\n                }\n                nn_old.insert(nn_old.end(), rnn_old.begin(), rnn_old.end());\n            }\n        }\n\npublic:\n      KGraphConstructor (IndexOracle const &o, IndexParams const &p, IndexInfo *r, char const *path)\n            : oracle(o), params(p), pinfo(r), nhoods(o.size()), n_comps(0)\n        {\n            boost::timer::cpu_timer timer;\n            //params.check();\n            unsigned N = oracle.size(); // size of dataset\n            if (N <= params.K) throw runtime_error(\"K larger than dataset size\");\n\n            vector<Control> controls;  //struct control {unsigned id;Neighbors neighbors;}\n            if (verbosity > 0) cerr << \"Generating control...\" << endl;\n            GenerateControl(oracle, params.controls, params.K, &controls); //controls data points are sampled, and then calculate the true knn \n            if (verbosity > 0) cerr << \"Initializing...\" << endl;\n            // initialize nhoods\n            init();\n\n            // iterate until converge\n            float total = N * float(N - 1) / 2;\n            IndexInfo info;\n            info.stop_condition = IndexInfo::ITERATION;\n            info.recall = 0;\n            info.accuracy = numeric_limits<float>::max();\n            info.cost = 0;\n            info.iterations = 0;\n            info.delta = 1.0;\n\n            for (unsigned it = 0; (params.iterations <= 0) || (it < params.iterations); ++it) {\n                ++info.iterations;\n                join();\n                {\n                    info.cost = n_comps / total;\n                    accumulator_set<float, stats<tag::mean>> one_exact;\n                    accumulator_set<float, stats<tag::mean>> one_approx;\n                    accumulator_set<float, stats<tag::mean>> one_recall;\n                    accumulator_set<float, stats<tag::mean>> recall;\n                    accumulator_set<float, stats<tag::mean>> accuracy;\n                    accumulator_set<float, stats<tag::mean>> M;\n                    accumulator_set<float, stats<tag::mean>> delta;\n                    for (auto const &nhood: nhoods) {\n                        M(nhood.M);\n                        delta(EvaluateDelta(nhood.pool, params.K));\n                    }\n                    for (auto const &c: controls) {\n                        one_approx(nhoods[c.id].pool[0].dist);\n                        one_exact(c.neighbors[0].dist);\n                        one_recall(EvaluateOneRecall(nhoods[c.id].pool, c.neighbors));\n                        recall(EvaluateRecall(nhoods[c.id].pool, c.neighbors));\n                        accuracy(EvaluateAccuracy(nhoods[c.id].pool, c.neighbors));\n                    }\n                    info.delta = mean(delta);\n                    info.recall = mean(recall);\n                    info.accuracy = mean(accuracy);\n                    info.M = mean(M);\n                    auto times = timer.elapsed();\n                    if (verbosity > 0) {\n\n                        cerr << \"iteration: \" << info.iterations\n                             << \" recall: \" << info.recall\n                             << \" accuracy: \" << info.accuracy\n                             << \" cost: \" << info.cost\n                             << \" M: \" << info.M\n                             << \" delta: \" << info.delta\n                             << \" time: \" << times.wall / 1e9\n                             << \" one-recall: \" << mean(one_recall)\n                             << \" one-ratio: \" << mean(one_approx) / mean(one_exact)\n                             << endl;\n                    }\n                }\n                if (info.delta <= params.delta) {\n                    info.stop_condition = IndexInfo::DELTA;\n                    break;\n                }\n                if (info.recall >= params.recall) {\n                    info.stop_condition = IndexInfo::RECALL;\n                    break;\n                }\n                update();\n            }\n\n            ofstream os(path, ios::binary);\n            os.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n            os.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n            os.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n            os.write(reinterpret_cast<char const *>(&N), sizeof(N));\n            \n            \n            for (unsigned n = 0; n < N; ++n) {\n              auto const &pool = nhoods[n].pool;\n              unsigned K = params.L;\n              os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n              os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n              for (unsigned j = 0; j < K; ++j){\n                os.write(reinterpret_cast<char const *>(&pool[j].id), sizeof(pool[j].id));\n              }\n            }\n            /* // deleted by yifang\n            M.resize(N);\n            graph.resize(N);\n            if (params.prune > 2) throw runtime_error(\"prune level not supported.\");\n            for (unsigned n = 0; n < N; ++n) {\n                auto &knn = graph[n];\n                M[n] = nhoods[n].M;\n                auto const &pool = nhoods[n].pool;\n\n                unsigned K = params.L;\n                knn.resize(K);\n                for (unsigned k = 0; k < K; ++k) {\n                    knn[k].id = pool[k].id;\n                    knn[k].dist = pool[k].dist;\n                }\n                nhoods[n].pool.clear();\n                }\n            if (params.prune) {\n                prune(o, params.prune);\n            }\n            if (pinfo) {\n                *pinfo = info;\n                }*/\n        }\n\n    };\n\nvoid KGraphImpl::build (IndexOracle const &oracle, IndexParams const &param, char const *path, IndexInfo *info) {\n  KGraphConstructor con(oracle, param, info, path);\n  /* //deleted by yifang\n  M.swap(con.M);\n  graph.swap(con.graph);\n  */\n}\n\n    KGraph *KGraph::create () {\n        return new KGraphImpl;\n    }\n\n    char const* KGraph::version () {\n        return kgraph_version;\n    }\n}\n\n"
  },
  {
    "path": "algorithms/DPG/src/kgraph.h",
    "content": "// Copyright (C) 2013-2015 Wei Dong <wdong@wdong.org>. All Rights Reserved.\n//\n// \\mainpage KGraph: A Library for Efficient K-NN Search\n// \\author Wei Dong \\f$ wdong@wdong.org \\f$\n// \\author 2013-2015\n//\n\n#ifndef WDONG_KGRAPH\n#define WDONG_KGRAPH\n\n#include <iostream>\n#include <unordered_set>\n#include <vector>\n#include <unordered_map>\n//#include \"kgraph-data.h\"\n\nusing namespace std;\n\nnamespace kgraph {\n    static unsigned const default_iterations =  30;\n    static unsigned const default_L = 100;\n    static unsigned const default_K = 100;\n    static unsigned const default_P = 100;\n    static unsigned const default_M = 0;\n    static unsigned const default_T = 1;\n    static unsigned const default_S = 10;\n    static unsigned const default_Maxchecks = 10;\n    static unsigned const default_seedIndex = 1;\n    static unsigned const default_R = 100;\n    static unsigned const default_controls = 100;\n    static unsigned const default_seed = 1998;\n    static float const default_delta = 0.002;\n    static float const default_recall = 0.99;\n    static float const default_epsilon = 1e30;\n    static unsigned const default_verbosity = 1;\n    enum {\n        PRUNE_LEVEL_1 = 1,\n        PRUNE_LEVEL_2 = 2\n    };\n    static unsigned const default_prune = 0;\n\n    /// Verbosity control\n    /** Set verbosity = 0 to disable information output to stderr.\n     */\n    extern unsigned verbosity;\n\n    /// Index oracle\n    /** The index oracle is the user-supplied plugin that computes\n     * the distance between two arbitrary objects in the dataset.\n     * It is used for offline k-NN graph construction.\n     */\n    class IndexOracle {\n    public:\n        /// Returns the size of the dataset.\n        virtual unsigned size () const = 0;\n        /// Computes similarity\n        /**\n         * 0 <= i, j < size() are the index of two objects in the dataset.\n         * This method return the distance between objects i and j.\n         */\n        virtual float operator () (unsigned i, unsigned j) const = 0;\n\tvirtual float angle (unsigned orign, unsigned pivot, unsigned x) const = 0;\n    };\n\n    /// Search oracle\n    /** The search oracle is the user-supplied plugin that computes\n     * the distance between the query and a arbitrary object in the dataset.\n     * It is used for online k-NN search.\n     */\n    class SearchOracle {\n    public:\n        /// Returns the size of the dataset.\n        virtual unsigned size () const = 0;\n        /// Computes similarity\n        /**\n         * 0 <= i < size() are the index of an objects in the dataset.\n         * This method return the distance between the query and object i.\n         */\n        virtual float operator () (unsigned i) const = 0;\n        /// Search with brutal force.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param K Return at most K nearest neighbors.\n         * @param epsilon Only returns nearest neighbors within distance epsilon.\n         * @param ids Pointer to the memory where neighbor IDs are returned.\n         * @param dists Pointer to the memory where distance values are returned, can be nullptr.\n         */\n        unsigned search (unsigned K, float epsilon, unsigned *ids, float *dists = nullptr) const;\n    };\n\n    /// The KGraph index.\n    /** This is an abstract base class.  Use KGraph::create to create an instance.\n     */\n    class KGraph {\n    public:\n        /// Indexing parameters.\n        struct IndexParams {\n            unsigned iterations; \n            unsigned L;\n            unsigned K;\n            unsigned S;\n            unsigned R;\n            unsigned controls;\n            unsigned seed;\n            float delta;\n            float recall;\n            unsigned prune;\n\n            /// Construct with default values.\n            IndexParams (): iterations(default_iterations), L(default_L), K(default_K), S(default_S), R(default_R), controls(default_controls), seed(default_seed), delta(default_delta), recall(default_recall), prune(default_prune) {\n            }\n        };\n\n        /// Search parameters.\n        struct SearchParams {\n            unsigned K;\n            unsigned M;\n            unsigned P;\n            unsigned T;\n            unsigned Maxchecks;\n            float epsilon;\n            unsigned seed;\n            unsigned init;\n      \n\n            /// Construct with default values.\n            SearchParams (): K(default_K), M(default_M), P(default_P), T(default_T), epsilon(default_epsilon), seed(1998), init(0) {\n            }\n        };\n\n        /// Information and statistics of the indexing algorithm.\n        struct IndexInfo {\n            enum StopCondition {\n                ITERATION = 0,\n                DELTA,\n                RECALL\n            } stop_condition;\n            unsigned iterations;\n            float cost;\n            float recall;\n            float accuracy;\n            float delta;\n            float M;\n        };\n\n        /// Information and statistics of the search algorithm.\n        struct SearchInfo {\n            float cost;\n            unsigned updates;\n            int checks;\n        };\n\n        virtual ~KGraph () {\n        }\n        /// Load index from file.\n        /**\n         * @param path Path to the index file.\n         */\n        virtual void load (char const *path) = 0;\n        /// Save index to file.\n        /**sa\n         * @param path Path to the index file.\n         */\n        virtual void save (char const *path) const = 0; // save to file\n\t    virtual void saver (char const *path) const = 0;\n\t\tvirtual void get_hubs (char const *hubs_path,char const *knn_path) const = 0; // get_hubs\n\t\tvirtual void add_long_edges(IndexOracle const &oracle, int const rank_top_k, int const change_num) = 0; //add long edges\n\t\tvirtual void output_M (char const * filename) = 0;\n\t\tvirtual void output_info(int const id) = 0; // output info for id-th point\n\t\tvirtual void merge(char const * graph_path, char const * id_path) = 0;\n\t\tvirtual void test_connectivity(unsigned dest) = 0;\n\t\t\n        virtual void remove_near_edges(IndexOracle const &oracle, const int edge_num) = 0;        \n\n\n        virtual float statistics(IndexOracle const &oracle, const int edge_num) = 0;\n        virtual void diversify_by_cut(IndexOracle const &oracle, const int edge_num) = 0;\n\t\tvirtual void remove_near_edges_2(IndexOracle const &oracle, vector<unsigned> const &edge_num, unordered_set<unsigned> const &skip_set) = 0;\n\t\tvirtual void add_random_backward_edges(char const *data_path, char const *hubs_path, int const num_of_hubs, char const * start_points_path, unsigned num_of_query) = 0;\n\t\tvirtual void add_backward_edges() = 0;\n\t\tvirtual void get_partitions(char const *output_path) = 0;\n\t\tvirtual void compute_diversity(IndexOracle const &oracle, int d, float * norm) = 0;\n\t\tvirtual void connectivity(unsigned const source, unsigned const dest) = 0;\n\t\tvirtual void make_inverse_graph() = 0;\n\t\tvirtual void find_lm (SearchOracle const &oracle) const = 0;\n\t\tvirtual void kgraph2dot (char * const &filename) = 0;\n        /// Build the index\n                virtual void build (IndexOracle const &oracle, IndexParams const &params, char const *path, IndexInfo *info = 0) = 0;\n        /// Prune the index\n        /**\n         * Pruning makes the index smaller to save memory, and makes online search on the pruned index faster.\n         * (The cost parameters of online search must be enlarged so accuracy is not reduced.)\n         *\n         * Currently only two pruning levels are supported:\n         * - PRUNE_LEVEL_1 = 1: Only reduces index size, fast.\n         * - PRUNE_LEVEL_2 = 2: For improve online search speed, slow.\n         *\n         * No pruning is done if level = 0.\n         */\n        virtual void prune (IndexOracle const &oracle, unsigned level) = 0;\n        /// Online k-NN search.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param ids Pointer to the memory where neighbor IDs are stored, must have space to save params.K ids.\n         */\n        unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, SearchInfo *info = 0, string const &info_path = \"\") const {\n            //std::cout <<\"h search \\n\";\n\t  return search(oracle, params, ids, nullptr, info, info_path);// d_init, Matrix<float> const &d_init,\n        }\n\n\tunsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, SearchInfo *info = 0, string const &info_path = \"\") const {\n\t  //std::cout <<\"h search \\n\";\n          return search_greedy(oracle, params, ids, nullptr, info, info_path);// d_init, Matrix<float> const &d_init,\n        }\n        /// Online k-NN search.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param ids Pointer to the memory where neighbor IDs are stored, must have space to save params.K values.\n         * @param dists Pointer to the memory where distances are stored, must have space to save params.K values.\n         */\n\tvirtual unsigned advanced_search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n\n        virtual unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n\n\tvirtual unsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n        /// Constructor.\n        static KGraph *create ();\n        /// Returns version string.\n        static char const* version ();\n\n        /// Get offline computed k-NNs of a given object.\n        /**\n         * See the full version of get_nn.\n         */\n        virtual void get_nn (unsigned id, unsigned *nns, unsigned *M, unsigned *L) const {\n            get_nn(id, nns, nullptr, M, L);\n        }\n        /// Get offline computed k-NNs of a given object.\n        /**\n         * The user must provide space to save IndexParams::L values.\n         * The actually returned L could be smaller than IndexParams::L, and\n         * M <= L is the number of neighbors KGraph thinks\n         * could be most useful for online search, and is usually < L.\n         * If the index has been pruned, the returned L could be smaller than\n         * IndexParams::L used to construct the index.\n         *\n         * @params id Object ID whose neighbor information are returned.\n         * @params nns Neighbor IDs, must have space to save IndexParams::L values. \n         * @params dists Distance values, must have space to save IndexParams::L values.\n         * @params M Useful number of neighbors, output only.\n         * @params L Actually returned number of neighbors, output only.\n         */\n        virtual void get_nn (unsigned id, unsigned *nns, float *dists, unsigned *M, unsigned *L) const = 0;\n    };\n}\n\n#if __cplusplus > 199711L\n#include <functional>\nnamespace kgraph {\n    /// Oracle adapter for datasets stored in a vector-like container.\n    /**\n     * If the dataset is stored in a container of CONTAINER_TYPE that supports\n     * - a size() method that returns the number of objects.\n     * - a [] operator that returns the const reference to an object.\n     * This class can be used to provide a wrapper to facilitate creating\n     * the index and search oracles.\n     *\n     * The user must provide a callback function that takes in two\n     * const references to objects and returns a distance value.\n     */\n    template <typename CONTAINER_TYPE, typename OBJECT_TYPE>\n    class VectorOracle: public IndexOracle {\n    public:\n        typedef std::function<float(OBJECT_TYPE const &, OBJECT_TYPE const &)> METRIC_TYPE;\n    private:\n        CONTAINER_TYPE const &data;\n        METRIC_TYPE dist;\n    public:\n        class VectorSearchOracle: public SearchOracle {\n            CONTAINER_TYPE const &data;\n            OBJECT_TYPE const query;\n            METRIC_TYPE dist;\n        public:\n            VectorSearchOracle (CONTAINER_TYPE const &p, OBJECT_TYPE const &q, METRIC_TYPE m): data(p), query(q), dist(m) {\n            }\n            virtual unsigned size () const {\n                return data.size();\n            }\n            virtual float operator () (unsigned i) const {\n                return dist(data[i], query);\n            }\n        };\n        /// Constructor.\n        /**\n         * @param d: the container that holds the dataset.\n         * @param m: a callback function for distance computation.  m(d[i], d[j]) must be\n         *  a valid expression to compute distance.\n         */\n        VectorOracle (CONTAINER_TYPE const &d, METRIC_TYPE m): data(d), dist(m) {\n        }\n        virtual unsigned size () const {\n            return data.size();\n        }\n        virtual float operator () (unsigned i, unsigned j) const {\n            return dist(data[i], data[j]);\n        }\n        /// Constructs a search oracle for query object q.\n        VectorSearchOracle query (OBJECT_TYPE const &q) const {\n            return VectorSearchOracle(data, q, dist);\n        }\n    };\n}\n#endif\n\n#endif\n\n"
  },
  {
    "path": "algorithms/DPG/src/main.cpp",
    "content": "/* \n    Copyright (C) 2010,2011 Wei Dong <wdong.pku@gmail.com>. All Rights Reserved.\n\n    DISTRIBUTION OF THIS PROGRAM IN EITHER BINARY OR SOURCE CODE FORM MUST BE\n    PERMITTED BY THE AUTHOR.\n*/\n#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\n#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\nint main_index(int argc, char *argv[]) {\n    string data_path;\n    string output_path;\n    KGraph::IndexParams params;\n    unsigned D;\n    unsigned skip;\n    unsigned gap;\n    unsigned synthetic;\n    float noise;\n\n    bool lshkit = true;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version information.\")\n    (\"data\", po::value(&data_path), \"input path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\",K\", po::value(&params.K)->default_value(default_K), \"number of nearest neighbor\")\n    (\"controls,C\", po::value(&params.controls)->default_value(default_controls), \"number of control pounsigneds\")\n    ;\n\n    po::options_description desc_hidden(\"Expert options\");\n    desc_hidden.add_options()\n    (\"iterations,I\", po::value(&params.iterations)->default_value(default_iterations), \"\")\n    (\",S\", po::value(&params.S)->default_value(default_S), \"\")\n    (\",R\", po::value(&params.R)->default_value(default_R), \"\")\n    (\",L\", po::value(&params.L)->default_value(default_L), \"\")\n    (\"delta\", po::value(&params.delta)->default_value(default_delta), \"\")\n    (\"recall\", po::value(&params.recall)->default_value(default_recall), \"\")\n    (\"prune\", po::value(&params.prune)->default_value(default_prune), \"\")\n    (\"noise\", po::value(&noise)->default_value(0), \"noise\")\n    (\"seed\", po::value(&params.seed)->default_value(default_seed), \"\")\n    (\"dim,D\", po::value(&D), \"dimension, see format\")\n    (\"skip\", po::value(&skip)->default_value(0), \"see format\")\n    (\"gap\", po::value(&gap)->default_value(0), \"see format\")\n    (\"raw\", \"read raw binary file, need to specify D.\")\n    (\"synthetic\", po::value(&synthetic)->default_value(0), \"generate synthetic data, for performance evaluation only, specify number of points\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible).add(desc_hidden);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm;\n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm);\n\n    if (vm.count(\"raw\") == 1) {\n        lshkit = false;\n    }\n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\")\n            || (synthetic && (vm.count(\"dim\") == 0 || vm.count(\"data\")))\n            || (!synthetic && (vm.count(\"data\") == 0 || (vm.count(\"dim\") == 0 && !lshkit)))) {\n        cout << \"Usage: index [OTHER OPTIONS]... INPUT [OUTPUT]\" << endl;\n        cout << desc_visible << endl;\n        cout << desc_hidden << endl;\n        return 0;\n    }\n\n    if (params.S == 0) {\n        params.S = params.K;\n    }\n\n    if (lshkit && (synthetic == 0)) {   // read dimension information from the data file\n        static const unsigned LSHKIT_HEADER = 3;\n        ifstream is(data_path.c_str(), ios::binary);\n        unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n        is.read((char *)header, sizeof header);\n        BOOST_VERIFY(is);\n        BOOST_VERIFY(header[0] == sizeof(value_type));\n        is.close();\n        D = header[2];\n        skip = LSHKIT_HEADER * sizeof(unsigned);\n        gap = 0;\n    }\n\n    Matrix<value_type> data;\n    if (synthetic) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"synthetic data not implemented for non-floating-point values.\");\n        }\n        data.resize(synthetic, D);\n        cerr << \"Generating synthetic data...\" << endl;\n        default_random_engine rng(params.seed);\n        uniform_real_distribution<double> distribution(-1.0, 1.0);\n        data.zero(); // important to do that\n        for (unsigned i = 0; i < synthetic; ++i) {\n            value_type *row = data[i];\n            for (unsigned j = 0; j < D; ++j) {\n                row[j] = distribution(rng);\n            }\n        }\n    }\n    else {\n        data.load(data_path, D, skip, gap);\n    }\n    if (noise != 0) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"noise injection not implemented for non-floating-point value.\");\n        }\n        tr1::ranlux64_base_01 rng;\n        double sum = 0, sum2 = 0;\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                value_type v = data[i][j];\n                sum += v;\n                sum2 += v * v;\n            }\n        }\n        double total = double(data.size()) * data.dim();\n        double avg2 = sum2 / total, avg = sum / total;\n        double dev = sqrt(avg2 - avg * avg);\n        cerr << \"Adding Gaussian noise w/ \" << noise << \"x sigma(\" << dev << \")...\" << endl;\n        boost::normal_distribution<double> gaussian(0, noise * dev);\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                data[i][j] += gaussian(rng);\n            }\n        }\n    }\n\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    KGraph::IndexInfo info;\n    KGraph *kgraph = KGraph::create(); //(oracle, params, &info);\n    {\n        auto_cpu_timer timer;\n        kgraph->build(oracle, params, output_path.c_str(), &info);\n        cerr << info.stop_condition << endl;\n    }\n\n    if (output_path.size()) {\n      //kgraph->save(output_path.c_str());\n    }\n\n\n    /*\n    // add the diversification part here \n    cerr << \"Start the diversification process...\" << endl << endl;\n    kgraph->remove_near_edges(oracle, params.L/2); // here not knn's k, L is the length of NN list ( note that the true NN list length might be smaller than L) \n\n\n    // reverse the edges here \n    cerr << \"Add reverse edges ...\" << endl << endl;\n    kgraph->add_backward_edges();\n\n    if (output_path.size()) {\n      kgraph->save(output_path.c_str());\n      }*/\n    \n    delete kgraph;\n\n    return 0;\n}\n\nint main_statistic(int argc, char *argv[]){\n    vector<string> params;\n    string input_data_path;\n    string index_NNList_path;\n    string index_DPG_path; \n    unsigned L; \n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_data_path), \"input data path\")\n    (\"index\", po::value(&index_NNList_path), \"NNList index path\")    \n    (\",L\", po::value(&L)->default_value(default_K), \"\")\n    ; \n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);    \n\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 ) {\n        cout << \"graph_statistic <data> <NN List index> -L NN_list size\" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    cerr << L << \" : L value\" << endl;\n\n    Matrix<value_type> data;\n    data.load_lshkit(input_data_path.c_str());\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n\n    KGraph *kgraph = KGraph::create();\n    if (index_NNList_path.size() >0 )\n    {\n        kgraph->load(index_NNList_path.c_str());    \n    }\n\n    // compute the co-efficient\n    float co = kgraph->statistics( oracle , L );\n\n    cout << co << \" # avg co-efficient \" << endl;\n\n}\n\nint main_diversify(int argc, char *argv[]){\n    vector<string> params;\n    string input_data_path;\n    string index_NNList_path;\n    string index_DPG_path; \n    unsigned L; \n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_data_path), \"input data path\")\n    (\"index\", po::value(&index_NNList_path), \"NNList index path\")\n    (\"output\", po::value(&index_DPG_path), \"DPG index path\")\n    (\",L\", po::value(&L)->default_value(default_K), \"\")\n    ; \n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);    \n    p.add(\"output\", 1);\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 || vm.count(\"output\") == 0) {\n        cout << \"graph_diversify <data> <NN List index> <diversified index> \" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    cerr << L << \" : L value\" << endl;\n\n    Matrix<value_type> data;\n    data.load_lshkit(input_data_path.c_str());\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n\n    KGraph *kgraph = KGraph::create();\n    if (index_NNList_path.size() >0 )\n    {\n        kgraph->load(index_NNList_path.c_str());    \n    }\n\n    boost::timer::auto_cpu_timer timer;\n\n    // start the diversification ?? ( seperately ) \n    // add the diversification part here \n    // cerr << \"Start the diversification process... (angular dissimilarity )\" << endl << endl;\n    // kgraph->remove_near_edges(oracle, L); // here not knn's k, L is the length of NN list ( note that the true NN list length might be smaller than L) \n\n    cerr << \"Start the diversification process... ( counting cuts )\" << endl << endl;\n    kgraph->diversify_by_cut(oracle, L); // here not knn's k, L is the length of NN list ( note that the true NN list length might be smaller than L) \n\n\n    // reverse the edges here \n    cerr << \"Add reverse edges ...\" << endl << endl;\n    kgraph->add_backward_edges();\n\n    float time = timer.elapsed().wall / 1e9;\n\n    if ( index_DPG_path.size() > 0 )\n    kgraph->save( index_DPG_path.c_str());\n\n    cout << time << \" # diversification time\" << endl;\n\n    delete kgraph;\n\n}\n\n\nint main_search(int argc, char *argv[]) {\n    vector<string> params;\n    string input_path;\n    string index_path;\n    string query_path;\n    string output_path;\n    string init_path;\n    string eval_path;\n    unsigned K, M, P, T;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_path), \"input path\")\n    (\"index\", po::value(&index_path), \"index path\")\n    (\"query\", po::value(&query_path), \"query path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\"init\", po::value(&init_path), \"init path\")\n    (\"eval\", po::value(&eval_path), \"eval path\")\n    (\",K\", po::value(&K)->default_value(default_K), \"\")\n    (\",M\", po::value(&M)->default_value(default_M), \"\")\n    (\",P\", po::value(&P)->default_value(default_P), \"\")\n    (\",T\", po::value(&T)->default_value(default_T), \"\")\n    (\"linear\", \"\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);\n    p.add(\"query\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 || vm.count(\"query\") == 0) {\n        cout << \"search <data> <index> <query> [output]\" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    if (P < K) {\n        P = K;\n    }\n\n    Matrix<value_type> data;\n    Matrix<value_type> query;\n    Matrix<unsigned> result; //(query.size(), U);\n    unsigned init = 0;\n\n    data.load_lshkit(input_path);\n    query.load_lshkit(query_path);\n    if (init_path.size()) {\n        result.load_lshkit(init_path);\n        BOOST_VERIFY(result.size() == query.size());\n        init = result.dim();\n        BOOST_VERIFY(init >= K);\n    }\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    float recall = 0;\n    float cost = 0;\n    float time = 0;\n    if (vm.count(\"linear\")) {\n        boost::timer::auto_cpu_timer timer;\n        result.resize(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            oracle.query(query[i]).search(K, default_epsilon, result[i]);\n        }\n        cost = 1.0;\n        time = timer.elapsed().wall / 1e9;\n    }\n    else {\n        result.resize(query.size(), K);\n        KGraph::SearchParams params;\n        params.K = K;\n        params.M = M;\n        params.P = P;\n        params.T = T;\n        params.init = init;\n        KGraph *kgraph = KGraph::create();\n        kgraph->load(index_path.c_str());\n\n        boost::timer::auto_cpu_timer timer;\n        cerr << \"Searching...\" << endl;\n\n// #pragma omp parallel for reduction(+:cost)\n        for (unsigned i = 0; i < query.size(); ++i) {\n            KGraph::SearchInfo info;\n            kgraph->search(oracle.query(query[i]), params, result[i], &info);\n            cost += info.cost;\n        }\n        cost /= query.size();\n        time = timer.elapsed().wall / 1e9;\n        //cerr << \"Cost: \" << cost << endl;\n        delete kgraph;\n    }\n    if (output_path.size()) {\n        result.save_lshkit(output_path);\n    }\n    if (eval_path.size()) {\n        Matrix<unsigned> gs;\n        gs.load_lshkit(eval_path);\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(gs.size() >= query.size());\n        kgraph::Matrix<float> gs_dist(query.size(), K);\n        kgraph::Matrix<float> result_dist(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            auto Q = oracle.query(query[i]);\n            float *gs_dist_row = gs_dist[i];\n            float *result_dist_row = result_dist[i];\n            unsigned const *gs_row = gs[i];\n            unsigned const *result_row = result[i];\n            for (unsigned k = 0; k < K; ++k) {\n                gs_dist_row[k] = Q(gs_row[k]);\n                result_dist_row[k] = Q(result_row[k]);\n            }\n            sort(gs_dist_row, gs_dist_row + K);\n            sort(result_dist_row, result_dist_row + K);\n        }\n        recall = AverageRecall(gs_dist, result_dist, K);\n    }\n    cout << \"Time: \" << time << \" Recall: \" << recall << \" Cost: \" << cost << endl;\n\n    return 0;\n}\n\nint main(int argc, char *argv[])\n{\n    cerr<< \"INDEX CONSTRUCTION...\" << endl;\n    return main_index(argc, argv);\n    \n    // cerr<< \"Diversification ......\" << endl << endl;      \n    //  return main_diversify( argc, argv);\n\n    // cerr<< \"Report statistics ......\" << endl << endl;      \n    // return main_statistic( argc, argv);\n\n    // default search \n    // cerr<< \"SEARCH ... \" << endl;\n\t// return main_search(argc, argv); \n}\n\n\n\n"
  },
  {
    "path": "algorithms/DPG/src/metric.cpp",
    "content": "#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n#include <math.h>\n\n#ifdef __GNUC__\n#ifdef __AVX__\n#include <immintrin.h>\n#define AVX_L2SQR(addr1, addr2, dest, tmp1, tmp2) \\\n    tmp1 = _mm256_loadu_ps(addr1);\\\n    tmp2 = _mm256_loadu_ps(addr2);\\\n    tmp1 = _mm256_sub_ps(tmp1, tmp2); \\\n    tmp1 = _mm256_mul_ps(tmp1, tmp1); \\\n    dest = _mm256_add_ps(dest, tmp1); \nnamespace kgraph {\nfloat float_l2sqr_avx (float const *t1, float const *t2, unsigned dim) {\n    __m256 sum;\n    __m256 l0, l1, l2, l3;\n    __m256 r0, r1, r2, r3;\n    unsigned D = (dim + 7) & ~7U; // # dim aligned up to 256 bits, or 8 floats\n    unsigned DR = D % 32;\n    unsigned DD = D - DR;\n    const float *l = t1;\n    const float *r = t2;\n    const float *e_l = l + DD;\n    const float *e_r = r + DD;\n    float unpack[8] __attribute__ ((aligned (32))) = {0, 0, 0, 0, 0, 0, 0, 0};\n    float ret = 0.0;\n    sum = _mm256_load_ps(unpack);\n    switch (DR) {\n        case 24:\n            AVX_L2SQR(e_l+16, e_r+16, sum, l2, r2);\n        case 16:\n            AVX_L2SQR(e_l+8, e_r+8, sum, l1, r1);\n        case 8:\n            AVX_L2SQR(e_l, e_r, sum, l0, r0);\n    }\n    for (unsigned i = 0; i < DD; i += 32, l += 32, r += 32) {\n        AVX_L2SQR(l, r, sum, l0, r0);\n        AVX_L2SQR(l + 8, r + 8, sum, l1, r1);\n        AVX_L2SQR(l + 16, r + 16, sum, l2, r2);\n        AVX_L2SQR(l + 24, r + 24, sum, l3, r3);\n    }\n    _mm256_storeu_ps(unpack, sum);\n    ret = unpack[0] + unpack[1] + unpack[2] + unpack[3]\n        + unpack[4] + unpack[5] + unpack[6] + unpack[7];\n    return ret;//sqrt(ret);\n}\n}\n#endif\n#ifdef __SSE2__\n#include <xmmintrin.h>\n#define SSE_L2SQR(addr1, addr2, dest, tmp1, tmp2) \\\n    tmp1 = _mm_load_ps(addr1);\\\n    tmp2 = _mm_load_ps(addr2);\\\n    tmp1 = _mm_sub_ps(tmp1, tmp2); \\\n    tmp1 = _mm_mul_ps(tmp1, tmp1); \\\n    dest = _mm_add_ps(dest, tmp1); \nnamespace kgraph {\nfloat float_l2sqr_sse2 (float const *t1, float const *t2, unsigned dim) {\n\t/*\t\n\t//cos dostance\n\tfloat dis=0;\n\tfloat x_ = 0;\n\tfloat y_ = 0;   \n\tfor(unsigned i=0;i<dim;i++)\n\t{\n\t\tdis += t1[i]*t2[i];\n\t\tx_ += t1[i]*t1[i];\n\t\ty_ += t2[i]*t2[i];\n\t}\n\tdis = dis / sqrt(x_*y_);\n\tcout<<dis<<endl;\n\treturn dis;\n\t*/\n\n    //l2 distance\n\t///*\t\n\tfloat dis=0;   \n    for(unsigned i=0;i<dim;i++)\n    {\n        //dis += pow((t1[i]-t2[i]),2);\n        float tmp = t1[i]-t2[i];\n        dis += tmp * tmp;\n    }\n    return dis;\n\t//*/\n\t\n\t// about the hardware speed\n\t/* \n    #ifdef DISTANCE_SP \n    __m128 sum;\n    __m128 l0, l1, l2, l3;\n    __m128 r0, r1, r2, r3;\n    unsigned D = (dim + 3) & ~3U;\n    unsigned DR = D % 16;\n    unsigned DD = D - DR;\n    const float *l = t1;\n    const float *r = t2;\n    const float *e_l = l + DD;\n    const float *e_r = r + DD;\n    float unpack[4] __attribute__ ((aligned (16))) = {0, 0, 0, 0};\n    float ret = 0.0;\n    sum = _mm_load_ps(unpack);\n    switch (DR) {\n        case 12:\n            SSE_L2SQR(e_l+8, e_r+8, sum, l2, r2);\n        case 8:\n            SSE_L2SQR(e_l+4, e_r+4, sum, l1, r1);\n        case 4:\n            SSE_L2SQR(e_l, e_r, sum, l0, r0);\n    }\n    for (unsigned i = 0; i < DD; i += 16, l += 16, r += 16) {\n        SSE_L2SQR(l, r, sum, l0, r0);\n        SSE_L2SQR(l + 4, r + 4, sum, l1, r1);\n        SSE_L2SQR(l + 8, r + 8, sum, l2, r2);\n        SSE_L2SQR(l + 12, r + 12, sum, l3, r3);\n    }\n    _mm_storeu_ps(unpack, sum);\n    ret = unpack[0] + unpack[1] + unpack[2] + unpack[3];\n    return ret;//sqrt(ret);\t\n    #else \n    float dis=0;   \n    for(unsigned i=0;i<dim;i++)\n    {\n        //dis += pow((t1[i]-t2[i]),2);\n        float tmp = t1[i]-t2[i];\n        dis += tmp * tmp;\n    }\n    return dis;\n    #endif \n*/\n\n\n}\n}\n/*\ntemplate <typename T>\nvoid print_128 (__m128i v) {\n    static unsigned constexpr L = 16 / sizeof(T);\n    T unpack[L] __attribute__ ((aligned (16)));\n    _mm_store_si128((__m128i *)unpack, v);\n    cout << '(' << int(unpack[0]);\n    for (unsigned i = 1; i < L; ++i) {\n        cout << ',' << int(unpack[i]);\n    }\n    cout << ')';\n}\n*/\n\n#define SSE_L2SQR_BYTE(addr1, addr2, sum, z) \\\n    do { \\\n        const __m128i o = _mm_load_si128((__m128i const *)(addr1));\\\n        const __m128i p = _mm_load_si128((__m128i const *)(addr2));\\\n        __m128i o1 = _mm_unpackhi_epi8(o,z); \\\n        __m128i p1 = _mm_unpackhi_epi8(p,z); \\\n        __m128i d = _mm_sub_epi16(o1, p1); \\\n        sum = _mm_add_epi32(sum, _mm_madd_epi16(d, d)); \\\n        o1 = _mm_unpacklo_epi8(o,z); \\\n        p1 = _mm_unpacklo_epi8(p,z); \\\n        d = _mm_sub_epi16(o1, p1); \\\n        sum = _mm_add_epi32(sum, _mm_madd_epi16(d, d)); \\\n    } while (false)\nnamespace kgraph {\nfloat uint8_l2sqr_sse2 (uint8_t const *t1, uint8_t const *t2, unsigned dim) {\n\tcout<<\"3\\n\";    \n\tunsigned D = (dim + 0xFU) & ~0xFU;   // actual dimension used in calculation, 0-padded\n    unsigned DR = D % 64;           // process 32 dims per iteration\n    unsigned DD = D - DR;\n    const uint8_t *l = t1;\n    const uint8_t *r = t2;\n    const uint8_t *e_l = l + DD;\n    const uint8_t *e_r = r + DD;\n    int32_t unpack[4] __attribute__ ((aligned (16))) = {0, 0, 0, 0};\n    __m128i sum = _mm_load_si128((__m128i *)unpack);\n    const __m128i z = sum;\n    switch (DR) {\n        case 48:\n            SSE_L2SQR_BYTE(e_l+32, e_r+32, sum, z);\n        case 32:\n            SSE_L2SQR_BYTE(e_l+16, e_r+16, sum, z);\n        case 16:\n            SSE_L2SQR_BYTE(e_l, e_r, sum, z);\n    }\n    for (unsigned i = 0; i < DD; i += 64, l += 64, r += 64) {\n        SSE_L2SQR_BYTE(l, r, sum, z);\n        SSE_L2SQR_BYTE(l + 16, r + 16, sum, z);\n        SSE_L2SQR_BYTE(l + 32, r + 32, sum, z);\n        SSE_L2SQR_BYTE(l + 48, r + 48, sum, z);\n    }\n    _mm_store_si128((__m128i *)unpack, sum);\n    int32_t ret = unpack[0] + unpack[1] + unpack[2] + unpack[3];\n    return float(ret);//sqrt(ret);\n}\n}\n#endif\n#endif\n"
  },
  {
    "path": "algorithms/KGraph/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"kgraph\">KGraph</h1>\n<p>This is a modified version of <a href=\"http://www.kgraph.org\"><strong>KGraph</strong></a> from the KGraph source code obtained on 5 April 2016. The original version of <strong>KGraph</strong> which is continuously maintained by <a href=\"https://github.com/aaalgo\">Dr. Wei Dong</a>.</p>\n<p>Main differences:</p>\n<ol style=\"list-style-type: decimal\">\n<li><p>We disabled SIMD and multi-threading techniques in <strong>KGraph</strong>. Note the besides the compiler flag, we also comment the SIMD related code in <code>metric.cpp</code></p></li>\n<li><p>We reduce the index size of KGraph by not keeping the distances of the edges, which is not used in the search process.</p></li>\n</ol>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>g++ 4.7</code> and above)</li>\n<li>A Linux System</li>\n<li>The boost library (dev version) installed. Note that we need to set the <strong>paths</strong> of the Boost installed in <strong>Makefile</strong>.</li>\n<li><a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">A sample data</a> (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that all data files downloaded should be put to the <code>./knn_benchmark/data</code> directory.</li>\n</ul>\n<h2 id=\"compile-kgraphsrc\">Compile (KGraph/src)</h2>\n<p>build the index construction and search programs, namely <code>kgraph_index</code> and <code>kgraph_search</code>.</p>\n<pre><code>build.sh</code></pre>\n<h2 id=\"construct-k-nn-graph-kgraphscript\">Construct K-NN graph (KGraph/script)</h2>\n<p><code>kgraph_index.sh</code></p>\n<p>Build K-NN graphs based on the data points, which is put to its index directory (i.e., <code>./nns_benchmark/index/kgraph</code>). Note that the suffix number of the index file (e.g., <code>kgraph_40</code> of <code>audio.kgraph_40</code>) represents the number of neighbors kept in the K-NN graph.</p>\n<h2 id=\"search-on-the-k-nn-graph-kgraphscript\">Search on the K-NN graph (KGraph/script)</h2>\n<pre><code>kgraph_search.sh</code></pre>\n<p>Note that, in our experiment paper, we use <code>P</code> value of KGraph search (i.e., search queue size) to achieve the trade-off between search speed and search quality (recall). The search performance (time and recall) results are kept in the KGraph/results directory.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/KGraph/README.md",
    "content": "# KGraph\n\nThis is a modified version of [**KGraph**](http://www.kgraph.org) from the\nKGraph source code obtained on 5 April 2016. The original version of **KGraph** which is continuously maintained by [Dr. Wei Dong](https://github.com/aaalgo).\n\nMain differences:\n\n  1. We disabled SIMD and multi-threading techniques in **KGraph**. Note the besides the compiler flag, we also comment the SIMD related code in `metric.cpp`\n  \n  2. We reduce the index size of KGraph by not keeping the distances of the edges, which is not used in the search process. \n  \n\n## Prerequisites\n- A modern compiler that supports `C++11` (e.g., `g++ 4.7` and above)\n- A Linux System \n- The boost library (dev version) installed. Note that we need to set the **paths** of the Boost installed in **Makefile**.\n- [A sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that all data files downloaded should be put to the `./knn_benchmark/data` directory.\n \n## Compile  (KGraph/src)\n\nbuild the index construction and search programs, namely `kgraph_index` and `kgraph_search`.\n\n```\nbuild.sh\n```\n\n## Construct K-NN graph (KGraph/script) \n\n``` kgraph_index.sh ```\n\nBuild K-NN graphs based on the data points, which is put\nto its index directory (i.e., `./nns_benchmark/index/kgraph`). Note that the\nsuffix number of the index file (e.g., `kgraph_40` of `audio.kgraph_40`)\nrepresents the number of neighbors kept in the K-NN graph.\n\n## Search on the K-NN graph (KGraph/script)\n\n```\nkgraph_search.sh\n```\n\nNote that, in our experiment paper, we use `P` value of KGraph search (i.e.,\nsearch queue size) to achieve the trade-off between search speed and search\nquality (recall). The search performance (time and recall) results are kept in\nthe KGraph/results directory.\n\n"
  },
  {
    "path": "algorithms/KGraph/script/kgraph_index.sh",
    "content": "data_dir=\"../../../data\"\nindex_dir=\"../index\"\nbin_dir=\"../src\"\n\nmkdir ${index_dir} \n\n\n# Please sure the data ( data points, query points and ground truth files are located at ../../../data directory )\n\nfor data in audio # sift \ndo\n\n# L is for lengh of the NN-list (i.e.,#neighbors materialized) of the  K-NN graph\n# the K value of the input is the desirable k value in the k-NN search \n\nL=40\n\n${bin_dir}/kgraph_index --data ${data_dir}/${data}_base.lshkit --output ${index_dir}/${data}.kgraph_${L} -S 20 -L ${L} -K 20\n\ndone\n\n\n"
  },
  {
    "path": "algorithms/KGraph/script/kgraph_search.sh",
    "content": "data_dir=\"../../../data\"\nindex_dir=\"../index\"\nbin_dir=\"../src\"\n\nresult_dir=\"../results\"\n\nmkdir ${result_dir}\n\n\nk=20\nL=40\n\n\nfor data in audio # sift   \ndo\n\n# P is the queue size in the search \n\nfor P in 1 2 5 10 20 40 50 100\ndo\n\n# show the result \n${bin_dir}/kgraph_search --data ${data_dir}/${data}_base.lshkit --query  ${data_dir}/${data}_query.lshkit --eval ${data_dir}/${data}_groundtruth.lshkit -K ${k} --index ${index_dir}/${data}.kgraph_${L} -P ${P} \n\n# try again and keep the results into files \n\nresult=\"${data}_k${k}_P${P}.txt\" \n\n${bin_dir}/kgraph_search --data ${data_dir}/${data}_base.lshkit --query  ${data_dir}/${data}_query.lshkit --eval ${data_dir}/${data}_groundtruth.lshkit -K ${k} --index ${index_dir}/${data}.kgraph_${L} -P ${P} > ${result_dir}/${result}\n\ndone\ndone\n\n"
  },
  {
    "path": "algorithms/KGraph/src/Makefile",
    "content": "CC=g++ \n\n#ARCH=-msse2\n#OPENMP=-fopenmp\n\nOPT=-O3\n\nboost_dir=\"/home/yingz/Software/boost_1_58_0/\"\nboost_lib=\"/usr/local/lib\"\n\nCXXFLAGS+=-fPIC -g -std=c++11 -I${boost_dir} -I. $(OPT) -L${boost_lib}  $(OPT) $(ARCH) $(OPENMP)\nLDFLAGS+=-static $(OPENMP)\nLDLIBS+=-lboost_timer -lboost_chrono -lboost_system -lboost_program_options -lgomp -lm -lrt  -L${boost_lib}\n\nCOMMON=kgraph.o metric.o RandGen.o\n\nHEADERS=kgraph.h kgraph-data.h RandGen.h\n\nPROGS=kgraph_index kgraph_search \n\nRELEASE_SRC=Makefile LICENSE kgraph.h kgraph-data.h kgraph_index.cpp kgraph_search.cpp \n\n$(PROGS): %:\t%.cpp $(HEADERS) $(COMMON)\n\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $*.cpp $(COMMON) $(LDLIBS)\n%.o:\t%.cpp $(HEADERS)\n\t$(CXX) $(CXXFLAGS) -c $*.cpp \n\nclean:\n\n\trm -f *.o\n\n"
  },
  {
    "path": "algorithms/KGraph/src/RandGen.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <math.h>\n#include <stdlib.h>\n#include \"RandGen.h\"\n\n/************************************************************\n ***  Given a mean and a standard deviation, gaussian       **\n **   generates a normally distributed random number        **\n **   Algorithm:  Polar Method, p.  104, Knuth, vol. 2      **\n ************************************************************/\n\nfloat gaussian(float mean, float sigma) {\n  float v1, v2;\n  float s;\n  float x;\n\n  do {\n    v1 = 2 * uniform(0, 1) - 1;\n    v2 = 2 * uniform(0, 1) - 1;\n    s = v1 * v1 + v2 * v2;\n  } while (s >= 1.);\n\n  x = v1 * (float) sqrt(-2. * log(s) / s);\n\n  /*  x is normally distributed with mean 0 and sigma 1.  */\n  x = x * sigma + mean;\n\n  return (x);\n}\n\n/************************************************************\n ** Generates a random number between _min and _max         **\n ** uniformly                                               **\n ** By Yufei Tao\n ************************************************************/\n\nfloat uniform(float _min, float _max) {\n  int int_r = rand();\n  long base = RAND_MAX - 1;\n  float f_r = ((float) int_r) / base;\n  return (_max - _min) * f_r + _min;\n}\n\n"
  },
  {
    "path": "algorithms/KGraph/src/RandGen.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef RANDGEN_H_\n#define RANDGEN_H_\n\nfloat gaussian(float mean, float sigma);\nfloat uniform(float _min, float _max);\n\n#endif /* RANDGEN_H_ */\n"
  },
  {
    "path": "algorithms/KGraph/src/build.sh",
    "content": "make kgraph_index \nmake kgraph_search\n\nmake clean\n\n"
  },
  {
    "path": "algorithms/KGraph/src/kgraph-data.h",
    "content": "#ifndef WDONG_KGRAPH_DATA\n#define WDONG_KGRAPH_DATA\n\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <fstream>\n#include <stdexcept>\n#include <boost/assert.hpp>\n\n#ifdef __GNUC__\n#ifdef __AVX__\n#define KGRAPH_MATRIX_ALIGN 32\n#else\n#ifdef __SSE2__\n#define KGRAPH_MATRIX_ALIGN 16\n#else\n#define KGRAPH_MATRIX_ALIGN 4\n#endif\n#endif\n#endif\n\nnamespace kgraph {\n\n    /// L2 square distance with AVX instructions.\n    /** AVX instructions have strong alignment requirement for t1 and t2.\n     */\n    extern float float_l2sqr_avx (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance with SSE2 instructions.\n    extern float float_l2sqr_sse2 (float const *t1, float const *t2, unsigned dim);\n    /// L2 square distance for uint8_t with SSE2 instructions (for SIFT).\n    extern float uint8_l2sqr_sse2 (uint8_t const *t1, uint8_t const *t2, unsigned dim);\n\n    using std::vector;\n    using std::runtime_error;\n\n    /// namespace for various distance metrics.\n    namespace metric {\n        /// L2 square distance.\n        struct l2sqr {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n\t      //\t\t\t\tcout<<\"apply \\n\";\n                float r = 0;\n                for (unsigned i = 0; i < dim; ++i) {\n                    float v = float(t1[i]) - float(t2[i]);\n                    v *= v;\n                    r += v;\n                }\n                return r;\n            }\n        };\n        /// L2 distance.\n        struct l2 {\n            template <typename T>\n            static float apply (T const *t1, T const *t2, unsigned dim) {\n                return sqrt(l2sqr::apply<T>(t1, t2, dim));\n            }\n        };\n    }\n\n    /// Matrix data.\n    template <typename T, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class Matrix {\n        unsigned col;\n        unsigned row;\n        size_t stride;\n        char *data;\n\n        void reset (unsigned r, unsigned c) {\n            row = r;\n            col = c;\n            stride = (sizeof(T) * c + A - 1) / A * A;\n            /*\n            data.resize(row * stride);\n            */\n            if (data) free(data);\n            data = (char *)memalign(A, row * stride); // SSE instruction needs data to be aligned\n            if (!data) throw runtime_error(\"memalign\");\n        }\n    public:\n        Matrix (): col(0), row(0), stride(0), data(0) {}\n        Matrix (unsigned r, unsigned c): data(0) {\n            reset(r, c);\n        }\n        ~Matrix () {\n            if (data) free(data);\n        }\n        unsigned size () const {\n            return row;\n        }\n        unsigned dim () const {\n            return col;\n        }\n        size_t step () const {\n            return stride;\n        }\n        void resize (unsigned r, unsigned c) {\n            reset(r, c);\n        }\n        T const *operator [] (unsigned i) const {\n            return reinterpret_cast<T const *>(&data[stride * i]);\n        }\n        T *operator [] (unsigned i) {\n            return reinterpret_cast<T *>(&data[stride * i]);\n        }\n        void zero () {\n            memset(data, 0, row * stride);\n        }\n        void load (const std::string &path, unsigned dim, unsigned skip = 0, unsigned gap = 0) {\n            std::ifstream is(path.c_str(), std::ios::binary);\n            BOOST_VERIFY(is);\n            is.seekg(0, std::ios::end);\n            size_t size = is.tellg();\n            size -= skip;\n            unsigned line = sizeof(T) * dim + gap;\n            unsigned N =  size / line;\n            reset(N, dim);\n            zero();\n            is.seekg(skip, std::ios::beg);\n            for (unsigned i = 0; i < N; ++i) {\n                is.read(&data[stride * i], sizeof(T) * dim);\n                is.seekg(gap, std::ios::cur);\n            }\n            BOOST_VERIFY(is);\n        }\n\n        void load_lshkit (std::string const &path) {\n            static const unsigned LSHKIT_HEADER = 3;\n            std::ifstream is(path.c_str(), std::ios::binary);\n            unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n            is.read((char *)header, sizeof header);\n            BOOST_VERIFY(is);\n            BOOST_VERIFY(header[0] == sizeof(T));\n            is.close();\n            unsigned D = header[2];\n            unsigned skip = LSHKIT_HEADER * sizeof(unsigned);\n            unsigned gap = 0;\n            load(path, D, skip, gap);\n        }\n\n        void save_lshkit (std::string const &path) {\n            std::ofstream os(path.c_str(), std::ios::binary);\n            unsigned header[3];\n            assert(sizeof header == 3*4);\n            header[0] = sizeof(T);\n            header[1] = row;\n            header[2] = col;\n            os.write((const char *)header, sizeof(header));\n            for (unsigned i = 0; i < row; ++i) {\n                os.write(&data[stride * i], sizeof(T) * col);\n            }\n        }\n    };\n\n    /// Matrix proxy to interface with 3rd party libraries (FLANN, OpenCV, NumPy).\n    template <typename DATA_TYPE, unsigned A = KGRAPH_MATRIX_ALIGN>\n    class MatrixProxy {\n        unsigned rows;\n        unsigned cols;      // # elements, not bytes, in a row,\n        size_t stride;    // # bytes in a row, >= cols * sizeof(element)\n        uint8_t const *data;\n    public:\n        MatrixProxy (Matrix<DATA_TYPE> const &m)\n            : rows(m.size()), cols(m.dim()), stride(m.step()), data(reinterpret_cast<uint8_t const *>(m[0])) {\n        }\n\n#ifndef __AVX__\n#ifdef FLANN_DATASET_H_\n        /// Construct from FLANN matrix.\n        MatrixProxy (flann::Matrix<DATA_TYPE> const &m)\n            : rows(m.rows), cols(m.cols), stride(m.stride), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef __OPENCV_CORE_HPP__\n        /// Construct from OpenCV matrix.\n        MatrixProxy (cv::Mat const &m)\n            : rows(m.rows), cols(m.cols), stride(m.step), data(m.data) {\n            BOOST_VERIFY(stride % A == 0);\n        }\n#endif\n#ifdef NPY_NDARRAYOBJECT_H\n        /// Construct from NumPy matrix.\n        MatrixProxy (PyArrayObject *obj) {\n            BOOST_VERIFY(obj->nd == 2);\n            rows = obj->dimensions[0];\n            cols = obj->dimensions[1];\n            stride = obj->strides[0];\n            data = reinterpret_cast<uint8_t const *>(obj->data);\n            BOOST_VERIFY(obj->descr->elsize == sizeof(DATA_TYPE));\n            BOOST_VERIFY(stride % A == 0);\n            BOOST_VERIFY(stride >= cols * sizeof(DATA_TYPE));\n        }\n#endif\n#endif\n        unsigned size () const {\n            return rows;\n        }\n        unsigned dim () const {\n            return cols;\n        }\n        DATA_TYPE const *operator [] (unsigned i) const {\n            return reinterpret_cast<DATA_TYPE const *>(data + stride * i);\n        }\n    };\n\n    /// Oracle for matrix data.\n    /** DATA_TYPE can be Matrix or MatrixProxy,\n    * DIST_TYPE should be one class within the namespace kgraph.metric.\n    */\n    template <typename DATA_TYPE, typename DIST_TYPE>\n    class MatrixOracle: public kgraph::IndexOracle {\n        MatrixProxy<DATA_TYPE> proxy;\n    public:\n        class SearchOracle: public kgraph::SearchOracle {\n            MatrixProxy<DATA_TYPE> proxy;\n            DATA_TYPE const *query;\n        public:\n            SearchOracle (MatrixProxy<DATA_TYPE> const &p, DATA_TYPE const *q): proxy(p), query(q) {\n            }\n            virtual unsigned size () const {\n                return proxy.size();\n            }\n            virtual float operator () (unsigned i) const {\n                return DIST_TYPE::apply(proxy[i], query, proxy.dim());\n            }\n        };\n        template <typename MATRIX_TYPE>\n        MatrixOracle (MATRIX_TYPE const &m): proxy(m) {\n        }\n        virtual unsigned size () const {\n            return proxy.size();\n        }\n        virtual float operator () (unsigned i, unsigned j) const {\n            return DIST_TYPE::apply(proxy[i], proxy[j], proxy.dim());\n        }\n\n\tvirtual float angle (unsigned orign, unsigned pivot, unsigned x) const { // return cos(\\theta), where \\theta is the angle between vector orign - pivot and orign - x\n\t  float dot_prod = 0.0, norm = 0.0, norm2 = 0.0;\n\t  float pi = 3.1415926;\n\t  for (unsigned k = 0; k < proxy.dim(); ++k){\n\t    dot_prod += (float)(proxy[pivot][k] - proxy[orign][k])* (float)(proxy[x][k] - proxy[orign][k]);\n\t    norm += (float)(proxy[x][k] - proxy[orign][k]) * (proxy[x][k] - proxy[orign][k]);\n\t    norm2 += (float)(proxy[pivot][k] - proxy[orign][k]) * (proxy[pivot][k] - proxy[orign][k]);\n\t  }\n\t  //\t  if (dot_prod / sqrt(norm * norm2) < 0.001){\n\t  //  fprintf(stderr, \"IN: %d %d %d\", orign, pivot, x);\n\t  //}\n\t  //fprintf(stderr, \"%f \", dot_prod);\n\t  //fprintf(stderr, \"%f\\n\", sqrt ( norm1 * norm2 ));\n\t  return acos(dot_prod / sqrt(norm * norm2) ) * 180 / pi;\n\t}\n\tSearchOracle query (DATA_TYPE const *query) const {\n            return SearchOracle(proxy, query);\n        }\n    };\n\n    inline float AverageRecall (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            // compare\n            unsigned found = 0;\n            unsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n            sum += float(found) / K;\n        }\n        return sum / result.size();\n    }\n\tinline void AveragePrecision(Matrix<float> const &gs, Matrix<float> const &result, float *precision) {\n\t\tunsigned K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        unsigned found = 0;\n\t\tunsigned gs_n = 0;\n        unsigned re_n = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\twhile ((gs_n < K) && (re_n < K)) {\n                if (gs_row[gs_n] < re_row[re_n]) {\n                    ++gs_n;\n                }\n                else if (gs_row[gs_n] == re_row[re_n]) {\n                    ++found;\n                    ++gs_n;\n                    ++re_n;\n                }\n                else {\n                    throw runtime_error(\"distance is unstable\");\n                }\n            }\n\t\t\tif (gs_row[0] == re_row[0]) {\n                ++found;\n\n            }\n        }\n        *precision = found / result.size();\n    }\n\n\tinline void AverageAccuracy(Matrix<float> const &gs, Matrix<float> const &result, float *accuracy) \n\t{\n        unsigned  K = result.dim();\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n\n\t\tfloat avg = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n        \tfloat dist = 0;\n\t\t\tunsigned gs_n = 0;\n            unsigned re_n = 0;\n            while ((gs_n < K) && (re_n < K)) {\n                float d=(re_row[re_n]-gs_row[gs_n])/gs_row[gs_n];\n\t\t\t\tif(d<=4)\n\t\t\t\t\tdist += d;\n\t\t\t\telse\n\t\t\t\t\tdist+=4; \n  \t\t\t\t++gs_n;\n                ++re_n;\n\t\t\t}\n\t\t\tavg += dist/K;\n        }\n        *accuracy=avg / result.size();\n    }\n\n\tinline float compute_number_closer (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor (unsigned gs_n=0;gs_n < K ;gs_n++)\n\t\t\t{\n\t\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t\t{\n\t\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t\t{\n\t\t\t\t\t\trate += (float)(gs_n+1)/(re_n+1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_mean_reciprocal_rank (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tfor(unsigned re_n=0; re_n < K; re_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[0]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/(re_n+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n\n\tinline float compute_mean_average_precision (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tint count = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t\trate += 1.0*(count)/(gs_n+1);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate/K;\n        }\n        return sum / result.size();\n    }\n\n\tinline float compute_discounted_culmulative_gain (Matrix<float> const &gs, Matrix<float> const &result, unsigned K = 0) {\n        if (K == 0) {\n            K = result.dim();\n        }\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(result.dim() >= K);\n        BOOST_VERIFY(gs.size() >= result.size());\n        float sum = 0;\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < K; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\trate += 1.0/log2(gs_n+2);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate;\n        }\n        return sum / result.size();\n    }\n\n    inline void AverageMinDist (Matrix<float> const &gs, Matrix<float> const &result, float *MinDist,float *AvgDist,float *MaxDist) {\n\n        BOOST_VERIFY(gs.size() >= result.size());\n        for (unsigned i = 0; i < result.size(); ++i) {\n            float const *gs_row = gs[i];\n            float const *re_row = result[i];\n            *MinDist += re_row[0]-gs_row[0];\n            *MaxDist += abs(re_row[result.dim()]-gs_row[0]);\n            for(unsigned j=0;j<result.dim();j++)\n            {\n                *AvgDist += re_row[j]-gs_row[j];\n            }\n        }\n\t    *MinDist /= result.size();\n        *AvgDist /= result.size()*result.dim();\n        *MaxDist /= result.size();\n    }\n}\n\n#ifndef KGRAPH_NO_VECTORIZE\n#ifdef __GNUC__\n#ifdef __AVX__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_avx(t1, t2, dim);\n        }\n}}\n#else\n#ifdef __SSE2__\nnamespace kgraph { namespace metric {\n        template <>\n        inline float l2sqr::apply<float> (float const *t1, float const *t2, unsigned dim) {\n            return float_l2sqr_sse2(t1, t2, dim);\n        }\n        template <>\n        inline float l2sqr::apply<uint8_t> (uint8_t const *t1, uint8_t const *t2, unsigned dim) {\n            return uint8_l2sqr_sse2(t1, t2, dim);\n        }\n}}\n#endif\n#endif\n#endif\n#endif\n\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/KGraph/src/kgraph.cpp",
    "content": "//static char const *kgraph_version = KGRAPH_VERSION \"-\" KGRAPH_BUILD_NUMBER \",\" KGRAPH_BUILD_ID;\nstatic char const *kgraph_version = \"deiversified proximity graph\";\n\n#include <omp.h>\n#include <unordered_set>\n#include <mutex>\n#include <iostream>\n#include <fstream>\n#include <random>\n#include <algorithm>\n#include <queue>\n#include <boost/timer/timer.hpp>\n#define timer timer_for_boost_progress_t\n#include <boost/progress.hpp>\n#undef timer\n#include <boost/dynamic_bitset.hpp>\n#include <boost/accumulators/accumulators.hpp>\n#include <boost/accumulators/statistics/stats.hpp>\n#include <boost/accumulators/statistics/mean.hpp>\n#include <boost/accumulators/statistics/moment.hpp>\n#include \"boost/smart_ptr/detail/spinlock.hpp\"\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nnamespace kgraph {\n\n    using namespace std;\n    using namespace boost;\n    using namespace boost::accumulators;\n\n    unsigned verbosity = default_verbosity;\n\n    typedef boost::detail::spinlock Lock;\n    typedef std::lock_guard<Lock> LockGuard;\n\n    // generate size distinct random numbers < N\n    template <typename RNG>\n    static void GenRandom (RNG &rng, unsigned *addr, unsigned size, unsigned N) {\n        for (unsigned i = 0; i < size; ++i) {\n            addr[i] = rng() % (N - size);\n        }\n        sort(addr, addr + size);\n        for (unsigned i = 1; i < size; ++i) {\n            if (addr[i] <= addr[i-1]) {\n                addr[i] = addr[i-1] + 1;\n            }\n        }\n        unsigned off = rng() % N;\n        for (unsigned i = 0; i < size; ++i) {\n            addr[i] = (addr[i] + off) % N;\n        }\n    }\n\n    struct Neighbor {\n        unsigned id;\n        float dist;\n        bool flag;  // whether this entry is a newly found one      \n        Neighbor () {}\n        Neighbor (unsigned i, float d, bool f = true): id(i), dist(d), flag(f) {\n        }\n    };\n\n    static inline bool operator < (Neighbor const &n1, Neighbor const &n2) {\n      if (n1.dist == n2.dist)\n\treturn n1.id < n2.id;\n      else \n        return n1.dist < n2.dist;\n    }\n\n    typedef vector<Neighbor> Neighbors;\n\n    // both pool and knn should be sorted in ascending order\n    static float EvaluateRecall (Neighbors const &pool, Neighbors const &knn) {\n        if (knn.empty()) return 1.0;\n        unsigned found = 0;\n        unsigned n_p = 0;\n        unsigned n_k = 0;\n        for (;;) {\n            if (n_p >= pool.size()) break;\n            if (n_k >= knn.size()) break;\n            if (knn[n_k].dist < pool[n_p].dist) {\n                ++n_k;\n            }\n            else if (knn[n_k].dist == pool[n_p].dist) {\n                ++found;\n                ++n_k;\n                ++n_p;\n            }\n            else {\n                cerr << \"Distance is unstable.\" << endl;\n                cerr << \"Exact\";\n                for (auto const &p: knn) {\n                    cerr << ' ' << p.id << ':' << p.dist;\n                }\n                cerr << endl;\n                cerr << \"Approx\";\n                for (auto const &p: pool) {\n                    cerr << ' ' << p.id << ':' << p.dist;\n                }\n                cerr << endl;\n                throw runtime_error(\"distance is unstable\");\n            }\n        }\n        return float(found) / knn.size(); //recall\n    }\n\n    static float EvaluateAccuracy (Neighbors const &pool, Neighbors const &knn) {\n        unsigned m = std::min(pool.size(), knn.size());\n        float sum = 0;\n        unsigned cnt = 0;\n        for (unsigned i = 0; i < m; ++i) {\n            if (knn[i].dist >  0) {\n                sum += abs(pool[i].dist - knn[i].dist) / knn[i].dist;\n                ++cnt;\n            }\n        }\n        return cnt > 0 ? sum / cnt: 0;\n    }\n\n    static float EvaluateOneRecall (Neighbors const &pool, Neighbors const &knn) {\n        if (pool[0].dist == knn[0].dist) return 1.0;\n        return 0;\n    }\n  \n    static float EvaluateDelta (Neighbors const &pool, unsigned K) {\n        unsigned c = 0;\n        unsigned N = K;\n        if (pool.size() < N) N = pool.size();\n        for (unsigned i = 0; i < N; ++i) {\n            if (pool[i].flag) ++c;\n        }\n        return float(c) / K;  //the fraction of true in pool's flags\n    }\n\n    struct Control {\n        unsigned id;\n        Neighbors neighbors;\n    };\n\n    // try insert nn into the list\n    // the array addr must contain at least K+1 entries:\n    //      addr[0..K-1] is a sorted list\n    //      addr[K] is as output parameter\n    // * if nn is already in addr[0..K-1], return K+1\n    // * Otherwise, do the equivalent of the following\n    //      put nn into addr[K]\n    //      make addr[0..K] sorted\n    //      return the offset of nn's index in addr (could be K)\n    //\n    // Special case:  K == 0\n    //      addr[0] <- nn\n    //      return 0\n    static inline unsigned UpdateKnnList (Neighbor *addr, unsigned K, Neighbor nn) {\n        // find the location to insert\n        unsigned j;\n        unsigned i = K;\n        while (i > 0) {\n            j = i - 1;\n            if (addr[j].dist <= nn.dist) break;\n            i = j;\n        }\n        // check for equal ID\n        unsigned l = i;\n        while (l > 0) {\n            j = l - 1;\n            if (addr[j].dist < nn.dist) break;\n            if (addr[j].id == nn.id) return K + 1;\n            l = j;\n        }\n        // i <= K-1\n        j = K;\n        while (j > i) {\n            addr[j] = addr[j-1];\n            --j;\n        }\n        addr[i] = nn;\n        return i;\n    }\n\n    void LinearSearch (IndexOracle const &oracle, unsigned i, unsigned K, vector<Neighbor> *pnns) {\n        vector<Neighbor> nns(K+1);\n        unsigned N = oracle.size();\n        Neighbor nn;\n        nn.id = 0;\n        nn.flag = true; // we don't really use this\n        unsigned k = 0;\n        while (nn.id < N) {\n            if (nn.id != i) {\n                nn.dist = oracle(i, nn.id);\n                UpdateKnnList(&nns[0], k, nn);\n                if (k < K) ++k;\n            }\n            ++nn.id;\n        }\n        nns.resize(K);\n        pnns->swap(nns);\n    }\n\n    unsigned SearchOracle::search (unsigned K, float epsilon, unsigned *ids, float *dists) const {\n        vector<Neighbor> nns(K+1);\n        //cout<<\"oracle searching\"<<endl;\n        unsigned N = size();\n        unsigned L = 0;\n        for (unsigned k = 0; k < N; ++k) {\n            float k_dist = operator () (k);\n            if (k_dist > epsilon) continue;\n            UpdateKnnList(&nns[0], L, Neighbor(k, k_dist));\n            if (L < K) ++L;\n        }\n        if (ids) {\n            for (unsigned k = 0; k < L; ++k) {\n                ids[k] = nns[k].id;\n            }\n        }\n        if (dists) {\n            for (unsigned k = 0; k < L; ++k) {\n                dists[k] = nns[k].dist;\n            }\n        }\n        return L;\n    }\n\n    void GenerateControl (IndexOracle const &oracle, unsigned C, unsigned K, vector<Control> *pcontrols) {\n        vector<Control> controls(C);\n        {\n            vector<unsigned> index(oracle.size());\n            int i = 0;\n            for (unsigned &v: index) {\n                v = i++;\n            }\n            random_shuffle(index.begin(), index.end());\n#ifdef PARALLEL            \n#pragma omp parallel for\n#endif             \n            for (unsigned i = 0; i < C; ++i) {\n                controls[i].id = index[i];\n                LinearSearch(oracle, index[i], K, &controls[i].neighbors);\n            }\n        }\n        pcontrols->swap(controls);\n    }\n\n    static char const *KGRAPH_MAGIC = \"KNNGRAPH\";\n    static unsigned constexpr KGRAPH_MAGIC_SIZE = 8;\n    static uint32_t constexpr VERSION_MAJOR = 2;\n    static uint32_t constexpr VERSION_MINOR = 0;\n\n    class KGraphImpl: public KGraph {\n    protected:\n        vector<unsigned> M;\n        vector<vector<Neighbor>> graph;\n    public:\n        virtual ~KGraphImpl () {\n        }\n        virtual void load (char const *path) {\n            BOOST_VERIFY(sizeof(unsigned) == sizeof(uint32_t));\n            ifstream is(path, ios::binary);\n            char magic[KGRAPH_MAGIC_SIZE];\n            uint32_t major;\n            uint32_t minor;\n            uint32_t N;\n            is.read(magic, sizeof(magic));\n            is.read(reinterpret_cast<char *>(&major), sizeof(major));\n            is.read(reinterpret_cast<char *>(&minor), sizeof(minor));\n            if (major != VERSION_MAJOR) throw runtime_error(\"data version not supported.\");\n            is.read(reinterpret_cast<char *>(&N), sizeof(N));\n            if (!is) runtime_error(\"error reading index file.\");\n            for (unsigned i = 0; i < KGRAPH_MAGIC_SIZE; ++i) {\n                if (KGRAPH_MAGIC[i] != magic[i]) runtime_error(\"index corrupted.\");\n            }\n            graph.resize(N);\n            M.resize(N);\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                auto &knn = graph[i];\n                unsigned K;\n                is.read(reinterpret_cast<char *>(&M[i]), sizeof(M[i]));\n                is.read(reinterpret_cast<char *>(&K), sizeof(K));\n                if (!is) runtime_error(\"error reading index file.\");\n                knn.resize(K);\n                //modified by Yifang\n                for (unsigned j = 0; j < K; ++j){\n                  is.read(reinterpret_cast<char *>(&knn[j].id), sizeof(knn[j].id));\n                  knn[j].flag = true;\n                  knn[j].dist = 0.0;\n                }\n                //is.read(reinterpret_cast<char *>(&knn[0]), K * sizeof(knn[0]));\n            }\n        }\n\n      virtual void merge(char const * graph_path, char const * id_path){\n\tifstream is(graph_path, ios::binary);\n\tchar magic[KGRAPH_MAGIC_SIZE];\n\tuint32_t major;\n\tuint32_t minor;\n\tuint32_t N;\n\tis.read(magic, sizeof(magic));\n\tis.read(reinterpret_cast<char *>(&major), sizeof(major));\n\tis.read(reinterpret_cast<char *>(&minor), sizeof(minor));\n\tif (major != VERSION_MAJOR) throw runtime_error(\"data version not supported.\");\n\tis.read(reinterpret_cast<char *>(&N), sizeof(N));\n\tif (!is) runtime_error(\"error reading index file.\");\n\tfor (unsigned i = 0; i < KGRAPH_MAGIC_SIZE; ++i) {\n\t  if (KGRAPH_MAGIC[i] != magic[i]) runtime_error(\"index corrupted.\");\n\t}\n\tvector<vector<Neighbor> > small_graph;\n\tvector<unsigned> small_M;\n\tsmall_graph.resize(N);\n\tsmall_M.resize(N);\n\tfor (unsigned i = 0; i < small_graph.size(); ++i) {\n\t  auto &knn = small_graph[i];\n\t  unsigned K;\n\t  is.read(reinterpret_cast<char *>(&small_M[i]), sizeof(small_M[i]));\n\t  is.read(reinterpret_cast<char *>(&K), sizeof(K));\n\t  if (!is) runtime_error(\"error reading index file.\");\n\t  knn.resize(K);\n\t  is.read(reinterpret_cast<char *>(&knn[0]), K * sizeof(knn[0]));\n\t}\n\t//loaded the small graph\n\tFILE *fp = fopen(id_path, \"rb\");\n\tunsigned * id_arr = new unsigned[N];\n\tfread(id_arr, sizeof(unsigned), N, fp);\n\tfclose(fp);\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  unsigned real_id = id_arr[i];\n\t  auto &small_knn = small_graph[i];\n\t  auto &knn = graph[real_id];\n\t  if (M[real_id] != knn.size()){\n\t    knn.resize(M[real_id]);\n\t  }\n\t  for (unsigned k = 0; k < small_M[i]; ++k){\n\t    knn.push_back(Neighbor(id_arr[small_knn[k].id], small_knn[k].dist, false));\n\t  }\n\t  sort(knn.begin(), knn.end());\n\t  for (unsigned k = 1; k < knn.size(); ++k){\n\t    if (knn[k].id == knn[k-1].id){\n\t      knn.erase(knn.begin() + k);\n\t      k--;\n\t    }\n\t  }\n\t  M[real_id] = knn.size();\n\t}\t\n      }\n\n        virtual void output_info(int const id){\n\t  if (id > graph.size()){\n\t    fprintf(stderr, \"out_of_index_bound!\\n\");\n\t    return;\n\t  }\n\t  auto const &knn = graph[id];\n\t  knn.size();\n\t  \n\t  fprintf(stderr, \"%d\\n%d\\n=================\\n\", M[id], knn.size());\n\t  for (int i = 0; i < knn.size(); ++i){\n\t    fprintf(stderr, \"%d %f\\n\", knn[i].id, knn[i].dist);\n\t  }\n\t}\n\n\n      struct hub_pair{\n\tunsigned id;\n\tint in_degree;\n\thub_pair(unsigned x, int y){\n\t  id = x;\n\t  in_degree = y;\n\t}\n\tbool operator<(const hub_pair& rhs) const{\n\t  return in_degree > rhs.in_degree;\n\t}\n      };\n      \n      struct rknn_pair{\n\tunsigned id;\n\tfloat dist;\n\trknn_pair(unsigned x, float y){\n\t  id = x;\n\t  dist = y;\n\t}\n      };\n\n      virtual void connectivity(unsigned const source, unsigned const dest){\n\tuint32_t N = graph.size();\n\tint level[N];\n\tfor (int i = 0; i < N; ++i){\n\t  level[i] = 0;\n\t}\n\t\n\tqueue<unsigned> q;\n\tq.push(source);\n\tlevel[source] = 1;\n\tbool find = false;\n\twhile (!q.empty() && !find){\n\t  unsigned cur_id = q.front();\n\t  auto const &knn = graph[cur_id];\n\t  q.pop();\n\t  for (int i = 0; i < M[cur_id]; ++i){\n\t    if (level[knn[i].id] != 0){\n\t      continue;\n\t    }\n\t    q.push(knn[i].id);\n\t    level[knn[i].id] = level[cur_id] + 1;\n\t    if (knn[i].id == dest){\n\t      find = true;\n\t      fprintf(stderr, \"Found! Level = %d\\n\", level[knn[i].id]);\n\t    }\n\t  }\n\t}\n\tif (!find){\n\t  fprintf(stderr, \"Not Found!\\n\");\n\t}\n      }\n\n      virtual void get_partitions(char const *output_path){\n\tvector<vector<int> > partitions;\n\tuint32_t N = graph.size();\n\tfor (int i = 0; i < N; ++i){\n\t  if (i % 1000 == 0) {\n            fprintf(stderr, \"\\r%d (%.3f\\%)\", i, 1.0 * i / N * 100);\n          }\n\t  auto const &knn = graph[i];\n\t  int major_set_pos = -1;\n\t  for (int j = 0; j < partitions.size(); ++j){\n\t    if (find (partitions[j].begin(), partitions[j].end(), i) != partitions[j].end()){\n\t      major_set_pos = j;\n\t      break;\n\t    }\n\t  }\n\t  if (major_set_pos == -1){\n\t    vector<int> new_set;\n\t    new_set.push_back(i);\n\t    partitions.push_back(new_set);\n\t    major_set_pos = partitions.size() - 1;\n\t    //fprintf(stderr, \"%d is in %d\\n\", i, major_set_pos);\n\t  }\n\n\t  //fprintf(stderr, \"i is in %d\\n\", major_set_pos);\n\t  \n\t  unsigned maxM = M[i];\n\t  for (int j = 0; j < maxM; ++j){\n\t    bool done = false;\n\t    //test if knn[j] is in some partition\n\t    for (int k = 0; k < partitions.size(); ++k){\n\t      if (find (partitions[k].begin(), partitions[k].end(), knn[j].id) != partitions[k].end()){\n\t\tif (k == major_set_pos){\n\t\t  done = true;\n\t\t  break;\n\t\t} else {\n\t\t  //merge\n\t\t  //fprintf(stderr, \"markmerge\\n\");\n\t\t  for ( auto it = partitions[k].begin(); it != partitions[k].end(); ++it ){\n\t\t    //fprintf(stderr, \"markmerge %d %d\\n\", *it, partitions[major_set_pos].max_size());\n\t\t    partitions[major_set_pos].push_back(*it);\n\t\t    //fprintf(stderr, \"markmergeee\\n\");\n\t\t  }\n\t\t  //fprintf(stderr, \"markmerge done\\n\");\n\t\t  //partitions[major_set_pos].insert(partitions[k].begin(), partitions[k].end());\n\t\t  //vector<int> temp = partitions.end();\n\t\t  \n\t\t  //\t\t  partitions[k].swap(partitions.back());\n\t\t  partitions[k].clear();\n\t\t  for ( auto it = partitions.back().begin(); it != partitions.back().end(); ++it ){\n                    //fprintf(stderr, \"markmerge %d %d\\n\", *it, partitions[major_set_pos].max_size());\n                    partitions[k].push_back(*it);\n                    //fprintf(stderr, \"markmergeee\\n\");\n                  }\n\t\t  partitions.back().clear();\n\t\t  //partitions.erase(partitions.begin() + k);\n\t\t  done = true;\n\t\t  //fprintf(stderr, \"mark merge done\\n\");\n\t\t  break;\n\t\t}\n\t      }\n\t    }\n\t    if (!done){\n\t      //add\n\t      partitions[major_set_pos].push_back(knn[j].id);\n\t      continue;\n\t    }\n\t  }\n\t  //fprintf(stderr, \"mark2\\n\");\n\t}\n\tfprintf(stderr, \"%d\\n\", partitions.size());\n\t//\treturn partitions;\n\tint count = 0;\n\tfor (int i = 0; i < partitions.size(); ++i){\n\t  if (partitions[i].size() != 0){\n\t    fprintf(stderr, \"%d\\n\", partitions[i].size());\n\t    count ++;\n\t  }\n\t}\n\tfprintf(stderr, \"%d\\n\", count);\n\n      }\n\n      virtual void output_M (char const* filename) {\n        FILE *fp = fopen(filename, \"wb\");\n        unsigned N = graph.size();\n        fwrite(&N, sizeof(unsigned), 1, fp);\n\tfor (int i = 0; i < N; ++i){\n          unsigned len = M[i];\n          fwrite(&len, sizeof(unsigned), 1, fp);\n        }\n\tfclose(fp);\n      }\n\n\n      virtual void make_inverse_graph(){\n\tuint32_t N = graph.size();\n\tvector<vector<Neighbor> > inverse_graph;\n\tfor (unsigned i = 0; i < N; ++i){\n\t  inverse_graph.push_back(vector<Neighbor>());\n\t}\n\tfor (unsigned i = 0; i < N; ++i) {\n          auto const &knn = graph[i];\n\t  for (unsigned j = 0; j < M[i]; j++)  {\n\t    inverse_graph[knn[j].id].push_back(Neighbor(i, knn[j].dist, false));\n\t  }\n\t}\n\tfor (unsigned i = 0; i < N; ++i) {\n\t  M[i] = inverse_graph[i].size();\n\t}\n\tgraph = inverse_graph;\n      }\n      \n      \n\n    virtual void test_connectivity(unsigned dest){ // for inverse kgraph\n\tuint32_t N = graph.size();\n\tbool * traversed = new bool[N];\n\tqueue<unsigned> q;\n\tq.push(dest);\n\tmemset(traversed, 0, sizeof(bool)*N);\n\ttraversed[dest] = true;\n\tint count = 1;\n\t\n\twhile(!q.empty()){\n\t  unsigned pivot = q.front();\n\t  q.pop();\n\t  auto const &knn = graph[pivot];\n\t  for (unsigned i = 0; i < knn.size(); ++i){\n\t    if (!traversed[knn[i].id]){\n\t      q.push(knn[i].id);\n\t      traversed[knn[i].id] = true;\n\t      count++;\n\t    }\n\t  }\n\t}\n\n\tfprintf(stderr, \"%d points connected with pivot\\n\", count);\n      }\n\n      virtual void add_random_backward_edges(char const *data_path, char const *hubs_path, int const num_of_hubs, char const * start_points_path, unsigned num_of_query){\n        uint32_t N = graph.size();\n\t//ofstream os(hubs_path, ios::binary);\n        vector <hub_pair > hubs;\n\tvector<vector<rknn_pair> > rknn_graph;\n        Matrix<float> data;\n        data.load_lshkit(data_path);\n\n\tint count = 0;\n\n        for (unsigned i = 0; i < N; ++i) {\n\t  hubs.push_back(hub_pair(i, 0));\n          rknn_graph.push_back(vector<rknn_pair>());\n\t}\n\n\tfor (unsigned i = 0; i < N; ++i) {\n          auto const &knn = graph[i];\n          uint32_t K = knn.size();\n\t  for (unsigned j=0; j<K; j++)  {\n            hubs[knn[j].id].in_degree++;\n            rknn_graph[knn[j].id].push_back(rknn_pair(i, knn[j].dist));\n          }\n        }\n\n\t//\tfor (unsigned i = 0; i < N; ++i) {\n        //  os<<hubs[i].in_degree <<endl;\n        //}\n\n        //sort(hubs.begin(), hubs.end());\n\t\n\tfor (unsigned i = 0; i < num_of_hubs; ++i){\n\t  unsigned p = rand() % N;\n\t  hub_pair temp = hubs[i];\n\t  hubs[i] = hubs[p];\n\t  hubs[p] = temp;\n\t}\n\n\tMatrix<unsigned> ids;\n\tids.resize(num_of_query, num_of_hubs);\n        Matrix<float> hub_data;\n        hub_data.resize(num_of_hubs, data.dim());\n\n\t//unsigned * ids = new unsigned[num_of_hubs];\n        for (unsigned i = 0; i < num_of_hubs; ++i){\n          //fprintf(stderr, \"%d: %d %d\\n\", i, hubs[i].id, hubs[i].in_degree);\n\t  // add backward edges\n          vector<rknn_pair> rknn_list = rknn_graph[hubs[i].id];\n\t  count += rknn_list.size();\n          for (unsigned j = 0; j < rknn_list.size(); ++j){\n            graph[hubs[i].id].push_back(Neighbor(rknn_list[j].id, rknn_list[j].dist, true)); //rknn_list[j]);\n          }\n\n          for (unsigned j = 0; j < hub_data.dim(); ++j){\n            hub_data[i][j] = data[hubs[i].id][j];\n          }\n\n          // write start point file\n\t  for (int j = 0; j < num_of_query; ++j)\n            ids[j][i] = hubs[i].id;\n          //fprintf(stderr, \"%d: %d %d\\n\", i, ids[j][i], hubs[i].in_degree);\n          sort(graph[hubs[i].id].begin(), graph[hubs[i].id].end());\n          M[hubs[i].id] = rknn_list.size();\n\t}\n        ids.save_lshkit(start_points_path);\n\thub_data.save_lshkit(hubs_path);\n        //      for (unsigned i = 0; i < num_of_query; ++i){\n        //  os2.write((const char *)ids, sizeof(unsigned) * header[2]);\n        //}\n        //delete[] ids;\n\tfprintf(stderr, \"inverse edges: %d\\n\", count);\n      }\n\n      virtual void add_backward_edges(){\n\tuint32_t N = graph.size();\n\t//ofstream os(hubs_path, ios::binary);\n\t//vector <hub_pair > hubs;\n\tvector<vector<rknn_pair> > rknn_graph;\n        rknn_graph.resize(N);\n        \n\tint count = 0;\n        \n\t\n\tfor (unsigned i = 0; i < N; ++i) {\n\t  auto const &knn = graph[i];\n\t  uint32_t K = M[i]; //knn.size();\n\t  for (unsigned j=0; j<K; j++)  {\n\t    rknn_graph[knn[j].id].push_back(rknn_pair(i, knn[j].dist));\n\t  }\n\t}\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  vector<rknn_pair> rknn_list = rknn_graph[i];\n\t  count += rknn_list.size();\n\t  \n          for (unsigned j = 0; j < rknn_list.size(); ++j){\n\t    graph[i].push_back(Neighbor(rknn_list[j].id, rknn_list[j].dist, true)); //rknn_list[j]);\n\t    //sum += exp(-1 * sqrt(rknn_list[j].dist) * beta); // a function with dist\n\t  }\n\n\t  sort(graph[i].begin(), graph[i].end());\n\t  for (unsigned j = 1; j < graph[i].size(); ++j){\n\t    if (graph[i][j].id == graph[i][j - 1].id){\n\t      graph[i].erase(graph[i].begin() + j);\n\t      j--;\n\t    }\n\t  }\n\t  \n          M[i] = graph[i].size();\n\t}\n\tfprintf(stderr, \"inverse edges: %d\\n\", count);\n      }\n\n\n virtual void compute_diversity(IndexOracle const &oracle, int d, float * norm){ // diversity\n\tif (oracle.size() != graph.size()){\n          throw runtime_error(\"Build kgraph before adding long edges\");\n        }\n\n        uint32_t N = oracle.size();\n\tfloat * avg_arr = new float[N];\n\tuint32_t true_N = N;\n#pragma omp parallel for\n        for (unsigned k = 0; k < N; k++){\n          int len = M[k];\n\t  int true_len = len * (len - 1) / 2;\n\t  float sum_angle = 0.0;\n          for (int i = 0; i < len; ++i){ // the first max_edge_num elements are the remaining ones\n\t    if (graph[k][i].dist < 0.00001){\n\t      true_len -= len - i - 1;\n\t      continue;\n\t    }\n            for (int cand_pos = i + 1; cand_pos < len; cand_pos++){\n\t      float angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i].id);\n\t      if (!(angle > 0.00001)){\n\t\ttrue_len --;\n\t\tcontinue;\n\t      }\n              sum_angle += angle; //oracle.angle(k, graph[k][cand_pos].id, graph[k][i].id);\n            }\n          }\n\t  if (true_len <= 0){\n\t    avg_arr[k] = 0.0;\n\t    true_N--;\n\t  } else {\n\t    avg_arr[k] = sum_angle / true_len;\n\t  }\n\t  //\t  if (!(avg_arr[k] > 0.00001))\n\t  //  fprintf(stderr, \"%d %f %f\\n\", k, sum_angle, avg_arr[k]);\n\n        }\n\n\tdouble avg_angle = 0.0;\n\tdouble normed_angle = 0.0;\n\tfor (unsigned k = 0; k < N; ++k){\n\t  avg_angle = avg_angle + avg_arr[k];\n\t  normed_angle += avg_arr[k] / norm[M[k] - 1];\n\t}\n\n\t//avg_angle /= N;\n\t//normed_angle /= N;\n\n\tcout << \"Average pairwise angle: \" << avg_angle / true_N << endl;\n\tcout << \"Normed pairwise angle: \" << normed_angle / N << endl;\n\n\tdelete[] avg_arr;\n      }\n\n\nvirtual void diversify_by_cut(IndexOracle const &oracle, const int edge_num){\n\n    if (oracle.size() != graph.size()){\n      throw runtime_error(\"diversify_by_cut : inconsistent.\" );\n    }\n    \n    uint32_t N = oracle.size();\n\n    int cnt = 0;\n    int nnt = 0;\n\n    unsigned step = N / 100;\n    cerr << endl << \"Progress : \";\n\n    // #pragma omp parallel for\n    for (unsigned k = 0; k < N; k++){\n\n    if ( k % step == 0 ) cerr <<\"*\";\n\n\n      // float *map = new float[N];\n      // memset(map, 0, sizeof(float)*N);\n\n      int len = graph[k].size();\n      while(graph[k][len-1].id == 0){\n        len--;\n      }\n      if (len > 2 * edge_num){\n        len = 2 * edge_num;\n      } \n      \n      // materialize the ditance here \n      int* hit = new int[len];\n\n      for ( int i=0; i< len; i++){\n        graph[k][i].dist = oracle(k, graph[k][i].id );\n        hit[i] = 0;\n      }      \n\n      for ( int i=0; i < len-1; i++ ){\n         // for ( int j=0; j < len; j++){\n         for ( int j=i+1; j < len; j++){\n            \n            if ( i==j ) continue;\n\n            Neighbor n_b = graph[k][i]; \n            Neighbor n_k = graph[k][j];\n\n            float dist = oracle(n_b.id, n_k.id);\n            // cout << dist << \" : (\" << n_b.id << \" , \"  << n_k.id << endl;  \n            if ( dist < n_k.dist ){\n                hit[j]++;\n            }\n        }\n      }\n\n\n      // sort by the hits and find the cuts \n      int* b_hit = new int[len];\n      for ( int i=0; i< len; i++ )\n        b_hit[i] = hit[i];\n\n      // memcpy( b_hit, hit, sizeof(int)*len);\n\n      sort(b_hit, b_hit + len );\n      float cut = b_hit[edge_num];\n\n      // update the neighbors by #hits \n      Neighbor tmp[len];\n      for ( int i=0; i < len; i++)\n        tmp[i] = graph[k][i];\n\n\n      cnt = 0;\n      for ( int i=0; i < len; i++){        \n        if ( hit[i] <= cut )\n            graph[k][cnt++] = tmp[i];\n      }\n\n      graph[k].resize(edge_num); // reset the size of NN list \n\n      delete []hit;\n      delete []b_hit;\n\n      /*      \n      if ( k % 100 == 0 ){\n        for ( int i=0; i< len; i++){\n            if ( hit[i]> cut )\n                cout << hit[i] << \"* \";\n            else\n                cout << hit[i] << \" \";\n        }\n        cout << endl;\n      }\n      */      \n\n      /*\n      for (int i = 1; i < edge_num; ++i){ // the first max_edge_num elements are the remaining ones\n        float max_sum_angle = -1.0;\n        int max_pos = -1;\n        for (int cand_pos = i; cand_pos < len; cand_pos++){\n          map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n          float sum_angle = map[graph[k][cand_pos].id];\n          if (sum_angle > max_sum_angle){\n        max_sum_angle = sum_angle;\n        max_pos = cand_pos;\n          }\n        }\n        Neighbor temp = graph[k][i];\n        graph[k][i] = graph[k][max_pos];\n        graph[k][max_pos] = temp;\n      }\n      */\n\n\n      // graph[k].resize(edge_num); // reset the size of NN list \n\n      // sort(graph[k].begin(), graph[k].end());\n      \n      M[k] = edge_num;\n      \n      // delete[] map;\n    }\n\n    cerr << endl;\n\n    } // end of diversify_by_cut\n      \n\n    virtual  float statistics(IndexOracle const &oracle, const int edge_num){ // diversity\n    if (oracle.size() != graph.size()){\n      throw runtime_error(\"in consistent ~!\");\n    }\n\n    uint32_t N = oracle.size();\n    float avg_co (0.0);\n\n    unsigned step = N / 100;\n    cerr << \"Progress : \";\n\n    for (unsigned k = 0; k < N; k++){\n\n       if ( k % step == 0) cerr <<\"*\"; \n\n      int len = graph[k].size();\n      while(graph[k][len-1].id == 0){\n        len--;\n      }\n      if (len >  edge_num){\n        len = edge_num;\n      }\n\n\n      // check each pair of neighbors   \n      long hit = 0; \n      for ( int i=0; i < len; i++ )        \n        for ( int j=i+1; j < len; j++ ){\n\n            // check if the edge < id[i] and id[j] exisits in the K-NN-graph; now we assume \n            bool exist = false;\n            // check i's NBs \n            unsigned id_1 = graph[k][i].id;\n            unsigned id_2 = graph[k][j].id;\n            for ( int s=0; s < len; s++)\n                if (graph[id_1][s].id == id_2) {\n                    exist = true; break;\n                }\n\n            if ( !exist ) continue; \n\n            for ( int s=0; s < len; s++)\n                if (graph[id_2][s].id == id_1) {\n                    hit++; break;\n                }\n        }   \n\n            // also check j's NBs  \n        float ratio = 2.0*hit/(len*(len-1)); \n        avg_co += ratio;\n\n    } // end of K \n\n    cerr << endl;\n\n    avg_co = avg_co / N;\n\n    return avg_co;\n        \n    } // end of function statistics \n\n            \n    virtual void remove_near_edges(IndexOracle const &oracle, const int edge_num){ // diversity\n\tif (oracle.size() != graph.size()){\n\t  throw runtime_error(\"Build kgraph before adding long edges\");\n\t}\n\t\n\tuint32_t N = oracle.size();\n    unsigned step = N / 100;\n    cerr << \"Progress : \";\n\n    //#pragma omp parallel for\n\tfor (unsigned k = 0; k < N; k++){\n\n        if ( k % step == 0 ) cerr <<\"*\";\n\n\t  //if (k % 1000 == 0) {\n\t  //  fprintf(stderr, \"\\r%d (%.3f\\%)\", k, 1.0 * k / N * 100);\n\t  //}\n\t  //auto const &knn = graph[k];\n          //edge_num[k] /= 2;\n\t  float * map = new float[N];\n\t  memset(map, 0, sizeof(float)*N);\n\t  int len = graph[k].size();\n\t  while(graph[k][len-1].id == 0){\n\t    len--;\n\t  }\n\t  if (len > 2 * edge_num){\n\t    len = 2 * edge_num;\n\t  } \n\t  for (int i = 1; i < edge_num; ++i){ // the first max_edge_num elements are the remaining ones\n\t    float max_sum_angle = -1.0;\n\t    int max_pos = -1;\n\t    for (int cand_pos = i; cand_pos < len; cand_pos++){\n\t      map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n\t      float sum_angle = map[graph[k][cand_pos].id];\n\t      if (sum_angle > max_sum_angle){\n\t\tmax_sum_angle = sum_angle;\n\t\tmax_pos = cand_pos;\n\t      }\n\t    }\n\t    Neighbor temp = graph[k][i];\n\t    graph[k][i] = graph[k][max_pos];\n\t    graph[k][max_pos] = temp;\n\t  }\n\t  graph[k].resize(edge_num); // reset the size of NN list \n\n\t  sort(graph[k].begin(), graph[k].end());\n\t  M[k] = edge_num;\n\t  delete[] map;\n\t}\n\n    cerr << endl;\n\n      }\n \n      virtual void remove_near_edges_2(IndexOracle const &oracle, vector<unsigned> const &edge_num, unordered_set<unsigned> const &skip_set){ // diversification, maxmin\n        if (oracle.size() != graph.size()){\n          throw runtime_error(\"Build kgraph before adding long edges\");\n        }\n\n        uint32_t N = oracle.size();\n\n// #pragma omp parallel for\n        for (unsigned k = 0; k < N; k++){\n\t  if (skip_set.find(k) != skip_set.end()){\n            continue;\n          }\n          //if (k % 1000 == 0) {\n          //  fprintf(stderr, \"\\r%d (%.3f\\%)\", k, 1.0 * k / N * 100);\n          //}\n          //auto const &knn = graph[k];\n          float * map = new float[N];\n          memset(map, 0, sizeof(float)*N);\n          int len = graph[k].size();\n          while(graph[k][len-1].dist == 0.0){\n            len--;\n          }\n          for (int i = 1; i < edge_num[k]; ++i){ // the first max_edge_num elements are the remaining ones\n            float min_angle = 10000000000.0;\n            int min_pos = -1;\n            for (int cand_pos = i; cand_pos < len; cand_pos++){\n\t      float angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n\t      if (map[graph[k][cand_pos].id] == 0 || map[graph[k][cand_pos].id] < angle){\n\t\tmap[graph[k][cand_pos].id] = angle;\n\t      }\n\t      //map[graph[k][cand_pos].id] += oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n              //float sum_angle = oracle.angle(k, graph[k][cand_pos].id, graph[k][i - 1].id);\n              if (min_angle > map[graph[k][cand_pos].id]){\n                min_angle = map[graph[k][cand_pos].id];\n                min_pos = cand_pos;\n              }\n            }\n            Neighbor temp = graph[k][i];\n            graph[k][i] = graph[k][min_pos];\n            graph[k][min_pos] = temp;\n          }\n          graph[k].resize(edge_num[k]);\n          sort(graph[k].begin(), graph[k].end());\n          M[k] = edge_num[k];\n          delete[] map;\n        }\n      }\n\n      virtual void add_long_edges(IndexOracle const &oracle, int const rank_top_k, int const change_num){\n\t  if (oracle.size() != graph.size()){\n\t    throw runtime_error(\"Build kgraph before adding long edges\");\n\t  }\n\n\t  //fprintf(stderr, \"mark\\n\");\n\n\t  uint32_t N = oracle.size();\n\t  vector<unsigned> rank_id_vec; // index: rank;  value: id\n\t  vector<unsigned> id_rank_vec; // index: id;  value: rank\n\t  for (unsigned i = 0; i < N; ++i){\n\t    rank_id_vec.push_back(i);\n\t  }\n\t  id_rank_vec.resize(N);\n\n\t  //fprintf(stderr, \"mark\\n\");\n\n\t  for (unsigned i = 0; i < N; ++i){ \n\t    //fprintf(stderr, \"=======length: %d=========\\n\", graph[i].size());\n\t    if (i % change_num == 0){\n\t      // re-shuffle\n\t      random_shuffle(rank_id_vec.begin(), rank_id_vec.end());\n\t      for (unsigned j = 0; j < N; ++j){\n\t\tid_rank_vec[rank_id_vec[j]] = j;\n\t      }\n\t    }\n\t    unsigned start = id_rank_vec[i] - rank_top_k / 2;\n\t    if (start < 0) {\n\t      start = 0;\n\t    }\n\t    unsigned end = id_rank_vec[i] + rank_top_k / 2;\n\t    if (end >= N) {\n\t      end = N - 1;\n\t    }\n\t    \n\t    //fprintf(stderr, \"start = %d, end = %d\\n\", start, end);\n\n\t    for (unsigned j = start; j <= end; ++j){\n\t      //test if rank_id[j] should be added\n\t      float dist = oracle(rank_id_vec[j], i);\n\t      bool is_dominated = false;\n\t      for (int k = 0; k < graph[i].size(); ++k){\n\t\t// if there exists a point in graph[i] that is closer to i in both distance and rank, \n\t\t// then the test point will be not added into the graph\n\t\tif (abs(j - id_rank_vec[i]) > abs(id_rank_vec[i] - id_rank_vec[graph[i][k].id]) && dist > graph[i][k].dist){\n\t\t  is_dominated = true;\n\t\t  break;\n\t\t}\n\t      }\n\t      if (!is_dominated){\n\t\tM[i] += 1;\n\t\tgraph[i].push_back(Neighbor(rank_id_vec[j], dist, true));\n\t      }\n\t    }\n\n\t    //fprintf(stderr, \"length: %d\\n\", graph[i].size());\n\n\t    sort(graph[i].begin(), graph[i].end());\n\t  } // for\n\t  //fprintf(stderr, \"final mark\\n\");\n\t}\n\n      virtual void saver (char const *path) const {\n\tuint32_t N = graph.size();\n\t//fprintf(stderr,\"%d\\n\", N);\n\tofstream os(path, ios::binary);\n\tos.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n\tos.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n\tos.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n\tos.write(reinterpret_cast<char const *>(&N), sizeof(N));\n\tfor (unsigned i = 0; i < graph.size(); ++i) {\n\t  auto const &knn = graph[i];\n\t  uint32_t K = knn.size();\n\t  //cout<<K<<endl;\n\t  //fprintf(stderr,\"%d\\n\", K);\n\t  os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n\t  os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n\t  os.write(reinterpret_cast<char const *>(&knn[0]), K * sizeof(knn[0]));\n\t}\n      }\n\n        virtual void save (char const *path) const {\n            uint32_t N = graph.size();\n            ofstream os(path, ios::binary);\n            os.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n            os.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n            os.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n            os.write(reinterpret_cast<char const *>(&N), sizeof(N));\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                auto const &knn = graph[i];\n                uint32_t K = knn.size();\n\t\t\t\t\n                os.write(reinterpret_cast<char const *>(&K), sizeof(K)); // modified by Yifang\n                os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n                for (unsigned j = 0; j < K; ++j){\n                  os.write(reinterpret_cast<char const *>(&knn[j].id), sizeof(knn[j].id));\n                }\n                //os.write(reinterpret_cast<char const *>(&knn[0]), K * sizeof(knn[0]));\n            }\n        }\n\t\t\n        virtual void get_hubs (char const *hubs_path,char const *knn_path) const {\n            uint32_t N = graph.size();\n            ofstream os(hubs_path, ios::binary);\n            ofstream knn_out(knn_path, ios::binary);\n            int hubs[N];\n\t    memset(hubs,0,sizeof(int)*N);\n            for (unsigned i = 0; i < N; ++i) {\n                auto const &knn = graph[i];\n                uint32_t K = knn.size();\n                for (unsigned j=0;j<K;j++)  {\n\t\t  hubs[knn[j].id]++;\n\t\t  knn_out<<knn[j].id<<\" \";\n\t\t}\n\t\tknn_out<<\"\\n\";\n\t\t\n            }\n\t    for (unsigned i = 0; i < N; ++i) {\n\t      os<<hubs[i]<<endl;\n            }\n        }\n\n      virtual void build (IndexOracle const &oracle, IndexParams const &param,  char const *path, IndexInfo *info);\n      //virtual void build (IndexOracle const &oracle, char const *path, IndexParams const &param);\n\n        /*\n        virtual void prune (unsigned K) {\n            for (auto &v: graph) {\n                if (v.size() > K) {\n                    v.resize(K);\n                }\n            }\n            return;\n            vector<vector<unsigned>> pruned(graph.size());\n            vector<set<unsigned>> reachable(graph.size());\n            vector<bool> added(graph.size());\n            for (unsigned k = 0; k < K; ++k) {\n#pragma omp parallel for\n                for (unsigned n = 0; n < graph.size(); ++n) {\n                    vector<unsigned> const &from = graph[n];\n                    if (from.size() <= k) continue;\n                    unsigned e = from[k];\n                    if (reachable[n].count(e)) {\n                        added[n] = false;\n                    }\n                    else {\n                        pruned[n].push_back(e);\n                        added[n] = true;\n                    }\n                }\n                // expand reachable\n#pragma omp parallel for\n                for (unsigned n = 0; n < graph.size(); ++n) {\n                    vector<unsigned> const &to = pruned[n];\n                    set<unsigned> &nn = reachable[n];\n                    if (added[n]) {\n                        for (unsigned v: pruned[to.back()]) {\n                            nn.insert(v);\n                        }\n                    }\n                    for (unsigned v: to) {\n                        if (added[v]) {\n                            nn.insert(pruned[v].back());\n                        }\n                    }\n                }\n            }\n            graph.swap(pruned);\n        }\n        */\n\n      virtual void kgraph2dot (char * const &filename){\n\tstd::ofstream fs;\n\tfs.open(filename, std::ofstream::out);\n\n\t//\tfs << \"strict digraph g {\" << endl;\n\n\tfor (unsigned i = 0; i < graph.size(); ++i){\n\t  for (unsigned j = 0; j < M[i]; ++j){\n\t    fs << i << \" => \" << graph[i][j].id << endl; //\"[ label=\\\"\" << graph[i][j].dist << \"\\\" ];\" << endl;;\n\t  }\n\t}\n\n\t//fs << \"}\" << endl;\n      }\n\n      virtual unsigned advanced_search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n\t/*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n\t    for (int i = 1; i < oracle.size(); ++i){\n\t        fprintf(stderr, \", %f\", oracle(i));\n\t\t}*/\n\t//fprintf(stderr, \"access_dist=(\");\n\t//fprintf(stdout, \"minimum_dist=(\");\n\n\tbool print_flag = true;\n\tstd::ofstream path_fs, mind_fs, curd_fs, nh_fs;\n\tstring file_name;\n\tif (info_path.empty()) {\n\t  print_flag = false;\n\t}\n\t\n\tif (print_flag){\n\t  file_name.assign(info_path);\n\t  file_name += \"_path.txt\";\n\t  path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n\t  mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n\t  curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_nh.txt\";\n          nh_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t}\n\t\n\tif (graph.size() > oracle.size()) {\n\t  throw runtime_error(\"dataset larger than index\");\n\t}\n\tif (params.P >= graph.size()) {\n\t  if (pinfo) {\n\t    pinfo->updates = 0;\n\t    pinfo->cost = 1.0;\n\t  }\n\t  return oracle.search(params.K, params.epsilon, ids, dists);\n\t}\n\tvector<Neighbor> knn(params.K + params.P +1);\n\tvector<Neighbor> init_knn(params.init);\n\tvector<Neighbor> results;\n\tboost::dynamic_bitset<> flags(graph.size(), false);\n\n\tif (params.init && params.T > 1) {\n\t  throw runtime_error(\"when init > 0, T must be 1.\");\n\t}\n\n\tunsigned seed = params.seed;\n\tunsigned updates = 0;\n\tif (seed == 0) seed = time(NULL);\n\tmt19937 rng(seed);\n\tunsigned n_comps = 0;\n\tfor (unsigned trial = 0; trial < params.T; ++trial) {\n\t  unsigned L = params.init;\n\t  //init>=K\n\t  if (L == 0) {   // generate random starting points\n\t    vector<unsigned> random(params.P);\n\t    GenRandom(rng, &random[0], random.size(), graph.size());\n\t    for (unsigned s: random) {\n\t      if (!flags[s]) {\n\t\tknn[L++].id = s;\n\t\t//flags[s] = true;\n\t      }\n\t    }\n\t    for (unsigned k = 0; k < L; ++k) {\n\t      flags[knn[k].id] = true;\n\t      knn[k].flag = true;\n\t      knn[k].dist = oracle(knn[k].id);\n\t            \n\t    }\n\t    sort(knn.begin(), knn.begin() + L);\n\t  }\n\t  else {          // user-provided starting points.\n\t    BOOST_VERIFY(ids); //ids\n\t    //std::cout<<\"set seed\"<<endl;\n\t    //BOOST_VERIFY(L < params.K);\n\t    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n\t      init_knn[l].id = ids[l];  //ids\n\t      init_knn[l].flag = true;\n              init_knn[l].dist = dists[l];\n\t      //fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n\t    }\n\t    //std::cout<<knn.size()<<endl;\n\t    //cout<<knn[0].id<<endl;\n                \n\t           \n\t    //sort(init_knn.begin(), init_knn.begin() + L);\n\t        \n\t    /*//delete\n\t          vector<Neighbor> init_fknn(graph.size());\n\t\t      for (unsigned k = 0; k < graph.size(); ++k){\n\t\t            init_fknn[k].id = k;\n\t\t\t          init_fknn[k].flag = true;\n\t\t\t\t        init_fknn[k].dist = oracle(k);\n\t\t\t\t\t    }\n\t\t\t\t\t        sort(init_fknn.begin(), init_fknn.end());\n\t\t\t\t\t\t    //end delete\n\t\t\t\t\t\t    */\n\t    L = params.K;\n\t    for (int ii = 0; ii < L; ++ii){\n\t      //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n\t      //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n\t      //recover\n\t      flags[init_knn[ii].id] = true;\n\t      knn[ii] = init_knn[ii];\n\t      //end recover\n\t      //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n\t    }\n\t  }\n\n\t  if (print_flag){\n\t    for (unsigned k = 0; k < L; ++k){\n\t      path_fs << \"-3 \" << knn[k].id << endl;\n\t      mind_fs << knn[0].dist << endl;\n\t      curd_fs << knn[k].dist << endl;\n\t          \n\t      nh_fs << M[knn[k].id] << \" \";\n\t      unordered_set<int> set;\n\t      set.insert(knn[k].id);\n\t      auto const &neighbors = graph[knn[k].id];\n\t      for (unsigned l = 0; l < M[knn[k].id]; ++l){\n\t\tset.insert(neighbors[l].id);\n\t\tauto const &new_neighbors = graph[neighbors[l].id];\n\t\tfor (unsigned ll = 0; ll < M[neighbors[l].id]; ++ll){\n\t\t  set.insert(new_neighbors[ll].id);\n\t\t}\n\t      }\n\t      nh_fs << set.size() << endl;\n\t    }\n\t  }\n\t  \n\t  unsigned k = 0;\n\t  while (k < L) {\n\t    unsigned nk = L;\n\t    if (knn[k].flag) {\n\t      knn[k].flag = false;\n\t      unsigned cur = knn[k].id;\n\t      //BOOST_VERIFY(cur < graph.size());\n\t      unsigned maxM = M[cur];\n\t      if (params.M > maxM) maxM = params.M;\n\t      auto const &neighbors = graph[cur];\n\t      if (maxM > neighbors.size()) {\n\t\tmaxM = neighbors.size();\n\t      }\n\t      for (unsigned m = 0; m < maxM; ++m) {\n\t\tunsigned id = neighbors[m].id;\n\t\t//BOOST_VERIFY(id < graph.size());\n\t\tif (flags[id]) continue;\n\t\tflags[id] = true;\n\t\t++n_comps;\n\t\t//if(n_comps >= params.Maxchecks)\n\t\t//  {\n\t\t//  break;\n\t\t//  }\n\t\tfloat dist = oracle(id);\n\t\t    \n\t\t/*if(n_comps == 1){\n\t\t        fprintf(stderr, \"%f\", dist);\n\t\t\t    } else {\n\t\t\t          fprintf(stderr, \", %f\", dist);\n\t\t\t\t  }*/\n\t\tNeighbor nn(id, dist);\n\t\tunsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\tif (print_flag){\n\t\t  path_fs << cur << \" \" << id << endl;\n\t\t  mind_fs << knn[0].dist << endl;\n\t\t  curd_fs << dist << endl;\n\n\t\t  nh_fs << M[id] << \" \";\n\t\t  unordered_set<int> set;\n\t\t  set.insert(id);\n\t\t  auto const &nbors = graph[id];\n\t\t  for (unsigned l_1 = 0; l_1 < M[id]; ++l_1){\n\t\t    set.insert(nbors[l_1].id);\n\t\t    auto const &new_neighbors = graph[nbors[l_1].id];\n\t\t    for (unsigned ll = 0; ll < M[nbors[l_1].id]; ++ll){\n\t\t      set.insert(new_neighbors[ll].id);\n\t\t    }\n\t\t  }\n\t\t  nh_fs << set.size() << endl;\n\t\t}\n\t\t/*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n                            } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n\t\tBOOST_VERIFY(r <= L);\n\t\t//if (r > L) continue;\n\t\tif (L + 1 < knn.size()) ++L;\n\t\tif (r < nk) {\n\t\t  nk = r;\n\t\t}\n\t      }\n\t      //fprintf(stderr, \"}\\n\");\n\t    }\n\t    if (nk <= k) {\n\t      k = nk;\n\t    }\n\t    else {\n\t      ++k;\n\t    }\n\t    //if(n_comps >= params.Maxchecks)\n\t    //{\n\t    //   break;\n\t    //}\n\t  }\n\t  if (L > params.K) L = params.K;\n\t  if (results.empty()) {\n\t    results.reserve(params.K + 1);\n\t    results.resize(L + 1);\n\t    copy(knn.begin(), knn.begin() + L, results.begin());\n\t  }\n\t  else {\n\t    // update results\n\t    for (unsigned l = 0; l < L; ++l) {\n\t      unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n\t      if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n\t\tresults.resize(results.size() + 1);\n\t      }\n\t    }\n\t  }\n\t}\n\t// check epsilon\n\t{\n\t  for (unsigned l = 0; l < results.size(); ++l) {\n\t    if (results[l].dist > params.epsilon) {\n\t      results.resize(l);\n\t      break;\n\t    }\n\t  }\n\t}\n\tunsigned L = results.size() - 1;\n\tBOOST_VERIFY(L <= params.K);\n\t// check epsilon\n\tif (ids) {\n\t  for (unsigned k = 0; k < L; ++k) {\n\t    ids[k] = results[k].id;\n\t  }\n\t}\n\tif (dists) {\n\t  for (unsigned k = 0; k < L; ++k) {\n\t    dists[k] = results[k].dist;\n\t  }\n\t}\n\tif (pinfo) {\n\t  pinfo->updates = updates;\n\t  pinfo->cost = float(n_comps) / graph.size();\n\t  pinfo->checks=n_comps;\n\t}\n\tif (print_flag){\n\t  path_fs << \"-1\" << endl;\n\t  for (unsigned k = 0; k < results.size() - 1; ++k){\n\t    path_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n\t  }\n\t  path_fs << \"-2\" << endl;\n\t  mind_fs << \"-1\" << endl;\n\t  curd_fs << \"-1\" << endl;\n\t  nh_fs << \"-1\" << endl;\n\t}\n\t//fprintf(stderr, \")\\n\");\n\t//fprintf(stdout, \")\\n\");\n\t//fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n\treturn L;\n      }\n\n      virtual void find_lm (SearchOracle const &oracle) const {\n\tunsigned K = 10;\n\tunsigned N = oracle.size();\n\tunsigned * ordered_nn_id = new unsigned[N];\n\tunsigned * rank = new unsigned[N];\n\tfloat * ordered_nn_dist = new float[N];\n\tbool * is_lm = new bool[N];\n\tunordered_set<unsigned> top_set;\n\tint * top_cover = new int[K];\n\tbool * traverse = new bool[N];\n\tint counter = 0;\n\n\n\tqueue<unsigned> new_queue;\n\tqueue<unsigned> cur_queue;\n\t\n\toracle.search(N, default_epsilon, ordered_nn_id, ordered_nn_dist);\n\n\n\tfor (unsigned i = 0; i < N; ++i){\n\t  rank[ordered_nn_id[i]] = i;\n\t  is_lm[i] = true;\n\t  traverse[i] = false;\n\t}\n\tfor (unsigned i = 0; i < K; ++i){\n\t  top_set.insert(i);\n\t}\n\t\n\tfor (unsigned i = 0; i < N; ++i){\n\t  auto const &neighbors = graph[i];\n\t  for (unsigned l = 0; l < M[i]; ++l){\n\t    if (rank[neighbors[l].id] < rank[i]){\n\t      is_lm[i] = false;\n\t      break;\n\t    }\n\t  }\n\t  if (is_lm[i]){ // is LM, output something\n\t    counter ++;\n\t    fprintf(stderr, \"rank:\\t%d\\n\", rank[i]);\n\t    fprintf(stderr, \"dist:\\t%f\\n\", ordered_nn_dist[rank[i]]);\n\t    cur_queue.push(i);\n\t    traverse[i] = true;\n\t    if (top_set.find(rank[i]) != top_set.end()){\n\t      top_cover[rank[i]] = 0;\n\t      top_set.erase(rank[i]);\n\t    }\n\t  }\n\t}\n\n\t//\tfprintf(stderr, \"N=%d\\n\", N);\n\t//find coverage of top-K\n\tunsigned level = 0;\n\twhile(true){\n\t  level++;\n\t  //fprintf(stderr, \"mark2.1\\n\");\n\t  while(!cur_queue.empty()){\n\t    unsigned id = cur_queue.front();\n\t    cur_queue.pop();\n\t    auto const &neighbors = graph[id];\n\t    //fprintf(stderr, \"mark2.5 %d\\n\", M[id]);\n\t    for (unsigned l = 0; l < M[id]; ++l){\n\t      //fprintf(stderr, \"%d\\n\", neighbors[l].id);\n\t      //fprintf(stderr, \"%d\\n\", traverse[neighbors[l].id]);\n\t      if (!traverse[neighbors[l].id]){\n\t\tnew_queue.push(neighbors[l].id);\n\t\ttraverse[neighbors[l].id] = true;\n\t\t//fprintf(stderr, \"-> %d\\n\", rank[neighbors[l].id]);\n\t\tif (rank[neighbors[l].id] < K && top_set.find(rank[neighbors[l].id]) != top_set.end()){\n\t\t  top_cover[rank[neighbors[l].id]] = level;\n\t\t  top_set.erase(rank[neighbors[l].id]);\n\t\t  if (top_set.empty()){\n\t\t    goto jump_out;\n\t\t  }\n\t\t}\n\t      }\n\t    } // end for loop\n\t  }\n\t  cur_queue.swap(new_queue);\n\t}\n\n\n      jump_out:\n\tfprintf(stderr, \"mark3\\n\");\n\tfprintf(stderr, \"# of LMins:\\t%d\\n\", counter);\n\tfor (unsigned i = 0; i < K; ++i){\n\t  fprintf(stderr, \"top-%d is %d hops away from LMins\\n\", i + 1, top_cover[i]);\n\t}\n\t\n\tdelete[] ordered_nn_id;\n\tdelete[] rank;\n\tdelete[] ordered_nn_dist;\n\tdelete[] is_lm;\n\tdelete[] top_cover;\n      }\n      \n      virtual unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n\t  /*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n\t  for (int i = 1; i < oracle.size(); ++i){\n\t    fprintf(stderr, \", %f\", oracle(i));\n\t    }*/\n\t  //fprintf(stderr, \"access_dist=(\");\n\t  //fprintf(stdout, \"minimum_dist=(\");\n\n\tbool print_flag = true;\n\tstd::ofstream path_fs, mind_fs, curd_fs, nh_fs;\n\tstring file_name;\n\tif (info_path.empty()) {\n\t  print_flag = false;\n\t}\n\t\n\tif (print_flag){\n\t  file_name.assign(info_path);\n\t  file_name += \"_path.txt\";\n\t  path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n\t  mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n\t  curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t  file_name.assign(info_path);\n          file_name += \"_nh.txt\";\n          nh_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n\t}\n\t\n\tif (graph.size() > oracle.size()) {\n\t  throw runtime_error(\"dataset larger than index\");\n\t}\n\tif (params.P >= graph.size()) {\n\t  if (pinfo) {\n\t    pinfo->updates = 0;\n\t    pinfo->cost = 1.0;\n\t  }\n\t  return oracle.search(params.K, params.epsilon, ids, dists);\n\t}\n            vector<Neighbor> knn(params.K + params.P +1);\n\t    vector<Neighbor> init_knn(params.init);\n            vector<Neighbor> results;\n            boost::dynamic_bitset<> flags(graph.size(), false);\n\n            if (params.init && params.T > 1) {\n                throw runtime_error(\"when init > 0, T must be 1.\");\n            }\n\n            unsigned seed = params.seed;\n            unsigned updates = 0;\n            if (seed == 0) seed = time(NULL);\n            mt19937 rng(seed);\n            unsigned n_comps = 0;\n            for (unsigned trial = 0; trial < params.T; ++trial) {\n                unsigned L = params.init;\n                //init>=K\n                if (L == 0) {   // generate random starting points\n                    vector<unsigned> random(params.P);\n                    GenRandom(rng, &random[0], random.size(), graph.size());\n                    for (unsigned s: random) {\n                        if (!flags[s]) {\n                            knn[L++].id = s;\n                            //flags[s] = true;\n                        }\n                    }\n\t\t    for (unsigned k = 0; k < L; ++k) {\n\t\t      flags[knn[k].id] = true;\n\t\t      knn[k].flag = true;\n\t\t      knn[k].dist = oracle(knn[k].id);\n\t\t      \n\t\t    }\n\t\t    sort(knn.begin(), knn.begin() + L);\n                }\n                else {          // user-provided starting points.\n                    BOOST_VERIFY(ids); //ids\n                    //std::cout<<\"set seed\"<<endl;\n                    //BOOST_VERIFY(L < params.K);\n                    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n                        init_knn[l].id = ids[l];  //ids\n\t\t\t//fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n                    }\n                    //std::cout<<knn.size()<<endl;\n                    //cout<<knn[0].id<<endl;\n                \n\t       \n\t\t    for (unsigned k = 0; k < L; ++k) {\n\t\t      //flags[knn[k].id] = true;\n\t\t      init_knn[k].flag = true;\n\t\t      init_knn[k].dist = oracle(init_knn[k].id);\n\t\t    }\n\t\t    sort(init_knn.begin(), init_knn.begin() + L);\n\t\t    \n\t\t    /*//delete\n\t\t    vector<Neighbor> init_fknn(graph.size());\n\t\t    for (unsigned k = 0; k < graph.size(); ++k){\n\t\t      init_fknn[k].id = k;\n\t\t      init_fknn[k].flag = true;\n\t\t      init_fknn[k].dist = oracle(k);\n\t\t    }\n\t\t    sort(init_fknn.begin(), init_fknn.end());\n\t\t    //end delete\n\t\t    */\n\t\t    L = params.K;\n\t\t    for (int ii = 0; ii < L; ++ii){\n\t\t      //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n\t\t      //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n\t\t      //recover\n\t\t      flags[init_knn[ii].id] = true;\n\t\t      knn[ii] = init_knn[ii];\n\t\t      //end recover\n\t\t      //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n\t\t    }\n\t\t}\n\n\t\tif (print_flag){\n\t\t  for (unsigned k = 0; k < L; ++k){\n\t\t    path_fs << \"-3 \" << knn[k].id << endl;\n\t\t    mind_fs << knn[0].dist << endl;\n\t\t    curd_fs << knn[k].dist << endl;\n\t\t    \n\t\t    nh_fs << M[knn[k].id] << \" \";\n\t\t    unordered_set<int> set;\n\t\t    set.insert(knn[k].id);\n\t\t    auto const &neighbors = graph[knn[k].id];\n\t\t    for (unsigned l = 0; l < M[knn[k].id]; ++l){\n\t\t      set.insert(neighbors[l].id);\n\t\t      auto const &new_neighbors = graph[neighbors[l].id];\n\t\t      for (unsigned ll = 0; ll < M[neighbors[l].id]; ++ll){\n\t\t\tset.insert(new_neighbors[ll].id);\n\t\t      }\n\t\t    }\n\t\t    nh_fs << set.size() << endl;\n\t\t  }\n\t\t}\n\t\t\n\t\tunsigned k = 0;\n \n                while (k < L) {\n                    unsigned nk = L;\n                    if (knn[k].flag) {\n                        knn[k].flag = false;\n                        unsigned cur = knn[k].id;\n\t\t\t//BOOST_VERIFY(cur < graph.size());\n                        unsigned maxM = M[cur];\n                        if (params.M > maxM) maxM = params.M;\n                        auto const &neighbors = graph[cur];\n                        if (maxM > neighbors.size()) {\n                            maxM = neighbors.size();\n                        }\n                        for (unsigned m = 0; m < maxM; ++m) {\n                            unsigned id = neighbors[m].id;\n                            //BOOST_VERIFY(id < graph.size());\n                            if (flags[id]) continue;\n                            flags[id] = true;\n                            ++n_comps;\n                            //if(n_comps >= params.Maxchecks)\n\t\t\t    //  {\n                            //  break;\n\t\t\t    //  }\n                            float dist = oracle(id);\n\t\t\t    \n\t\t\t    /*if(n_comps == 1){\n\t\t\t      fprintf(stderr, \"%f\", dist);\n\t\t\t    } else {\n\t\t\t      fprintf(stderr, \", %f\", dist);\n\t\t\t      }*/\n\t\t\t    Neighbor nn(id, dist);\n\t\t\t    unsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\t\t    if (print_flag){\n                              path_fs << cur << \" \" << id << endl;\n                              mind_fs << knn[0].dist << endl;\n\t\t\t      curd_fs << dist << endl;\n\n\t\t\t      nh_fs << M[id] << \" \";\n\t\t\t      unordered_set<int> set;\n\t\t\t      set.insert(id);\n\t\t\t      auto const &nbors = graph[id];\n\t\t\t      for (unsigned l_1 = 0; l_1 < M[id]; ++l_1){\n\t\t\t\tset.insert(nbors[l_1].id);\n\t\t\t\tauto const &new_neighbors = graph[nbors[l_1].id];\n\t\t\t\tfor (unsigned ll = 0; ll < M[nbors[l_1].id]; ++ll){\n\t\t\t\t  set.insert(new_neighbors[ll].id);\n\t\t\t\t}\n\t\t\t      }\n\t\t\t      nh_fs << set.size() << endl;\n                            }\n\t\t\t    /*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n                            } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n                            BOOST_VERIFY(r <= L);\n                            //if (r > L) continue;\n                            if (L + 1 < knn.size()) ++L;\n                            if (r < nk) {\n                                nk = r;\n                            }\n                        }\n\t\t\t//fprintf(stderr, \"}\\n\");\n                    }\n                    if (nk <= k) {\n                        k = nk;\n                    }\n                    else {\n                        ++k;\n                    }\n                    //if(n_comps >= params.Maxchecks)\n\t\t    //\t\t\t{\n                    //   break;\n                    //}\n                }\n                if (L > params.K) L = params.K;\n                if (results.empty()) {\n                    results.reserve(params.K + 1);\n                    results.resize(L + 1);\n                    copy(knn.begin(), knn.begin() + L, results.begin());\n                }\n                else {\n                    // update results\n                    for (unsigned l = 0; l < L; ++l) {\n                        unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n                        if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n                            results.resize(results.size() + 1);\n                        }\n                    }\n                }\n            }\n\t    //\t    results.pop_back();\n            // check epsilon\n            {\n                for (unsigned l = 0; l < results.size(); ++l) {\n                    if (results[l].dist > params.epsilon) {\n                        results.resize(l);\n                        break;\n                    }\n                }\n            }\n            unsigned L = results.size() - 1;\n            BOOST_VERIFY(L <= params.K);\n            // check epsilon\n            if (ids) {\n                for (unsigned k = 0; k < L; ++k) {\n                    ids[k] = results[k].id;\n                }\n            }\n            if (dists) {\n                for (unsigned k = 0; k < L; ++k) {\n                    dists[k] = results[k].dist;\n                }\n            }\n            if (pinfo) {\n                pinfo->updates = updates;\n                pinfo->cost = float(n_comps) / graph.size();\n                pinfo->checks=n_comps;\n            }\n\t    if (print_flag){\n\t      path_fs << \"-1\" << endl;\n\t      for (unsigned k = 0; k < results.size() - 1; ++k){\n\t\tpath_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n\t      }\n\t      path_fs << \"-2\" << endl;\n\t      mind_fs << \"-1\" << endl;\n\t      curd_fs << \"-1\" << endl;\n\t      nh_fs << \"-1\" << endl;\n\t    }\n\t    //fprintf(stderr, \")\\n\");\n\t    //fprintf(stdout, \")\\n\");\n\t    //fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n            return L;\n        }\n\n\n      virtual unsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *pinfo, string const &info_path) const {// Matrix<float> const &d_init,\n      /*fprintf(stderr, \"all_dist=(%f\", oracle(0));\n      for (int i = 1; i < oracle.size(); ++i){\n        fprintf(stderr, \", %f\", oracle(i));\n        }*/\n      //fprintf(stderr, \"access_dist=(\");\n      //fprintf(stdout, \"minimum_dist=(\");\n\n    bool print_flag = true;\n    std::ofstream path_fs, mind_fs, curd_fs;\n    string file_name;\n    if (info_path.empty()) {\n      print_flag = false;\n    }\n    \n    if (print_flag){\n      file_name.assign(info_path);\n      file_name += \"_path.txt\";\n      path_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n      file_name.assign(info_path);\n          file_name += \"_mindist.txt\";\n      mind_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n      file_name.assign(info_path);\n          file_name += \"_curdist.txt\";\n      curd_fs.open(file_name.c_str(), std::ofstream::out | std::ofstream::app);\n    }\n    \n    if (graph.size() > oracle.size()) {\n      throw runtime_error(\"dataset larger than index\");\n    }\n    if (params.P >= graph.size()) {\n      if (pinfo) {\n        pinfo->updates = 0;\n        pinfo->cost = 1.0;\n      }\n      return oracle.search(params.K, params.epsilon, ids, dists);\n    }\n            vector<Neighbor> knn(params.K + params.P +1);\n        vector<Neighbor> init_knn(params.init);\n            vector<Neighbor> results;\n            boost::dynamic_bitset<> flags(graph.size(), false);\n\n            if (params.init && params.T > 1) {\n                throw runtime_error(\"when init > 0, T must be 1.\");\n            }\n\n            unsigned seed = params.seed;\n            unsigned updates = 0;\n            if (seed == 0) seed = time(NULL);\n            mt19937 rng(seed);\n            unsigned n_comps = 0;\n            for (unsigned trial = 0; trial < params.T; ++trial) {\n                unsigned L = params.init;\n                //init>=K\n                if (L == 0) {   // generate random starting points\n                    vector<unsigned> random(params.P);\n                    GenRandom(rng, &random[0], random.size(), graph.size());\n                    for (unsigned s: random) {\n                        if (!flags[s]) {\n                            knn[L++].id = s;\n                            //flags[s] = true;\n                        }\n                    }\n            for (unsigned k = 0; k < L; ++k) {\n              flags[knn[k].id] = true;\n              knn[k].flag = true;\n              knn[k].dist = oracle(knn[k].id);\n            }\n            sort(knn.begin(), knn.begin() + L);\n                }\n                else {          // user-provided starting points.\n                    BOOST_VERIFY(ids); //ids\n                    //std::cout<<\"set seed\"<<endl;\n                    //BOOST_VERIFY(L < params.K);\n                    for (unsigned l = 0; l < L; ++l) { // L -> knn.size()\n                        init_knn[l].id = ids[l];  //ids\n            //fprintf(stderr, \"%d: %d\\n\", l, knn[l].id);\n                    }\n                    //std::cout<<knn.size()<<endl;\n                    //cout<<knn[0].id<<endl;\n                \n           \n            for (unsigned k = 0; k < L; ++k) {\n              //flags[knn[k].id] = true;\n              init_knn[k].flag = true;\n              init_knn[k].dist = oracle(init_knn[k].id);\n            }\n            sort(init_knn.begin(), init_knn.begin() + L);\n            \n            /*//delete\n            vector<Neighbor> init_fknn(graph.size());\n            for (unsigned k = 0; k < graph.size(); ++k){\n              init_fknn[k].id = k;\n              init_fknn[k].flag = true;\n              init_fknn[k].dist = oracle(k);\n            }\n            sort(init_fknn.begin(), init_fknn.end());\n            //end delete\n            */\n            L = params.K;\n            for (int ii = 0; ii < L; ++ii){\n              //flags[init_fknn[graph.size() - 1 - ii].id] = true;\n              //knn[L - 1 - ii] = init_fknn[graph.size() - 1 - ii];\n              //recover\n              flags[init_knn[ii].id] = true;\n              knn[ii] = init_knn[ii];\n              //end recover\n              //fprintf(stderr, \"%d %f\\n\", knn[ii].id, knn[ii].dist);\n            }\n        }\n\n        if (print_flag){\n          mind_fs << knn[0].dist << endl;\n          curd_fs << knn[0].dist << endl;\n        }\n        \n        unsigned k = 0;\n                while (k < L) {\n                    unsigned nk = L;\n                    if (knn[k].flag) {\n                        knn[k].flag = false;\n                        unsigned cur = knn[k].id;\n            //BOOST_VERIFY(cur < graph.size());\n                        unsigned maxM = M[cur];\n\t\t\tfloat thres = knn[k].dist;\n                        if (params.M > maxM) maxM = params.M;\n                        auto const &neighbors = graph[cur];\n                        if (maxM > neighbors.size()) {\n                            maxM = neighbors.size();\n                        }\n                        for (unsigned m = 0; m < maxM; ++m) {\n                            unsigned id = neighbors[m].id;\n                            //BOOST_VERIFY(id < graph.size());\n                            if (flags[id]) continue;\n                            flags[id] = true;\n                            ++n_comps;\n\t\t\t    //                            if(n_comps >= params.Maxchecks)\n\t\t\t    //  {\n\t\t\t    //break;\n\t\t\t    //  }\n                            float dist = oracle(id);\n\t\t\t    if (dist > thres) {\n\t\t\t      continue;\n\t\t\t    }\n                /*if(n_comps == 1){\n                  fprintf(stderr, \"%f\", dist);\n                } else {\n                  fprintf(stderr, \", %f\", dist);\n                  }*/\n\t\t\t    Neighbor nn(id, dist);\n\t\t\t    unsigned r = UpdateKnnList(&knn[0], L, nn);\n\t\t\t    if (print_flag){\n                              path_fs << cur << \" \" << id << endl;\n                              mind_fs << knn[0].dist << endl;\n\t\t\t      curd_fs << dist << endl;\n                            }\n\t\t\t    /*if(n_comps == 1){\n                              fprintf(stdout, \"%f\", knn[0].dist);\n\t\t\t      } else {\n                              fprintf(stdout, \", %f\", knn[0].dist);\n\t\t\t      }*/\n                            BOOST_VERIFY(r <= L);\n                            //if (r > L) continue;\n                            if (L + 1 < knn.size()) ++L;\n                            if (r < nk) {\n\t\t\t      nk = r;\n                            }\n                        }\n\t\t\t//fprintf(stderr, \"}\\n\");\n                    }\n                    if (nk <= k) {\n                        k = nk;\n                    }\n                    else {\n                        ++k;\n                    }\n\t\t    //                    if(n_comps >= params.Maxchecks)\n                    //{\n                    //   break;\n\t\t    //    }\n                }\n                if (L > params.K) L = params.K;\n                if (results.empty()) {\n                    results.reserve(params.K + 1);\n                    results.resize(L + 1);\n                    copy(knn.begin(), knn.begin() + L, results.begin());\n                }\n                else {\n                    // update results\n                    for (unsigned l = 0; l < L; ++l) {\n                        unsigned r = UpdateKnnList(&results[0], results.size() - 1, knn[l]);\n                        if (r < results.size() /* inserted */ && results.size() < (params.K + 1)) {\n                            results.resize(results.size() + 1);\n                        }\n                    }\n                }\n            }\n            // check epsilon\n            {\n                for (unsigned l = 0; l < results.size(); ++l) {\n                    if (results[l].dist > params.epsilon) {\n                        results.resize(l);\n                        break;\n                    }\n                }\n            }\n            unsigned L = results.size() - 1;\n            BOOST_VERIFY(L <= params.K);\n            // check epsilon\n            if (ids) {\n                for (unsigned k = 0; k < L; ++k) {\n                    ids[k] = results[k].id;\n                }\n            }\n            if (dists) {\n                for (unsigned k = 0; k < L; ++k) {\n                    dists[k] = results[k].dist;\n                }\n            }\n            if (pinfo) {\n                pinfo->updates = updates;\n                pinfo->cost = float(n_comps) / graph.size();\n                pinfo->checks=n_comps;\n            }\n        if (print_flag){\n          path_fs << \"-1\" << endl;\n          for (unsigned k = 0; k < results.size() - 1; ++k){\n        path_fs << results[k].id << endl; //fprintf(stderr, \"%d [color=lightblue, style=filled, label=\\\"top-%d\\\"]\\n\", results[k].id, k+1);\n          }\n          path_fs << \"-2\" << endl;\n          mind_fs << \"-1\" << endl;\n          curd_fs << \"-1\" << endl;\n        }\n        //fprintf(stderr, \")\\n\");\n        //fprintf(stdout, \")\\n\");\n        //fprintf(stderr, \")\\nplt.hist(kg_access_dist, bins=100, normed=False, alpha=0.75, label='accessed')\\nplt.hist(all_dist, bins=100, normed=False, alpha=0.5, label='all')\\nplt.title(\\\"Distribution of accessed points by KGraph\\\")\\nplt.xlabel(\\\"distance\\\")\\nplt.ylabel(\\\"Frequency\\\")\\nplt.legend(loc='upper right')\\nshow()\\n\");\n            return L;\n        }\n\n        virtual void get_nn (unsigned id, unsigned *nns, float *dist, unsigned *pM, unsigned *pL) const {\n            BOOST_VERIFY(id < graph.size());\n            auto const &v = graph[id];\n            *pM = M[id];\n            *pL = v.size();\n            if (nns) {\n                for (unsigned i = 0; i < v.size(); ++i) {\n                    nns[i] = v[i].id;\n                }\n            }\n            if (dist) {\n                for (unsigned i = 0; i < v.size(); ++i) {\n                    dist[i] = v[i].dist;\n                }\n            }\n        }\n\n        void prune1 () {\n            for (unsigned i = 0; i < graph.size(); ++i) {\n                if (graph[i].size() > M[i]) {\n                    graph[i].resize(M[i]);\n                }\n            }\n        }\n\n        void prune2 () {\n#if 0\n            vector<vector<unsigned>> new_graph(graph.size());\n            vector<unsigned> new_M(graph.size());\n            vector<vector<unsigned>> reverse(graph.size());\n            vector<unordered_set<unsigned>> todo(graph.size());\n            unsigned L = 0;\n            {\n                cerr << \"Level 2 Prune, stage 1/2 ...\" << endl;\n                progress_display progress(graph.size(), cerr);\n                for (unsigned i = 0; i < graph.size(); ++i) {\n                    if (graph[i].size() > L) L = graph[i].size();\n                    todo[i] = unordered_set<unsigned>(graph[i].begin(), graph[i].end());\n                    ++progress;\n                }\n            }\n            {\n                cerr << \"Level 2 Prune, stage 2/2 ...\" << endl;\n                progress_display progress(L, cerr);\n                for (unsigned l = 0; l < L; ++l) {\n                    for (unsigned i = 0; i < graph.size(); ++i) {\n                        if (todo[i].empty()) continue;\n                        BOOST_VERIFY(l < graph[i].size());\n                        unsigned T = graph[i][l];\n                        if (todo[i].erase(T)) { // still there, need to be added\n                            new_graph[i].push_back(T);\n                            reverse[T].push_back(i);\n                            // mark newly reachable nodes\n                            for (auto n2: new_graph[T]) {\n                                todo[i].erase(n2);\n                            }\n                            for (auto r: reverse[i]) {\n                                todo[r].erase(T);\n                            }\n                        }\n                        if (l + 1 == M[i]) {\n                            new_M[i] = new_graph[i].size();\n                        }\n                    }\n                    ++progress;\n                }\n            }\n            graph.swap(new_graph);\n            M.swap(new_M);\n#endif\n        }\n\n        virtual void prune (IndexOracle const &oracle, unsigned level) {\n            if (level & PRUNE_LEVEL_1) {\n                prune1();\n            }\n            if (level & PRUNE_LEVEL_2) {\n                prune2();\n            }\n        }\n    };\n\n    class KGraphConstructor: public KGraphImpl {\n        // The neighborhood structure maintains a pool of near neighbors of an object.\n        // The neighbors are stored in the pool.  \"n\" (<=\"params.L\") is the number of valid entries\n        // in the pool, with the beginning \"k\" (<=\"n\") entries sorted.\n        struct Nhood { // neighborhood\n            Lock lock;\n            float radius;   // distance of interesting range\n            float radiusM;\n            Neighbors pool;\n            unsigned L;     // # valid items in the pool,  L + 1 <= pool.size()\n            unsigned M;     // we only join items in pool[0..M)\n            bool found;     // helped found new NN in this round\n            vector<unsigned> nn_old;\n            vector<unsigned> nn_new;\n            vector<unsigned> rnn_old;\n            vector<unsigned> rnn_new;\n\n            // only non-readonly method which is supposed to be called in parallel\n            unsigned parallel_try_insert (unsigned id, float dist) {\n                if (dist > radius) return pool.size();\n                LockGuard guard(lock);\n                unsigned l = UpdateKnnList(&pool[0], L, Neighbor(id, dist, true));\n                if (l <= L) { // inserted\n                    if (L + 1 < pool.size()) { // if l == L + 1, there's a duplicate\n                        ++L;\n                    }\n                    else {\n                        radius = pool[L-1].dist;\n                    }\n                }\n                return l;\n            }\n\n            // join should not be conflict with insert\n            template <typename C>\n            void join (C callback) const {\n                for (unsigned const i: nn_new) {\n                    for (unsigned const j: nn_new) {\n                        if (i < j) {\n                            callback(i, j);\n                        }\n                    }\n                    for (unsigned j: nn_old) {\n                        callback(i, j);\n                    }\n                }\n            }\n        };\n\n        IndexOracle const &oracle;\n        IndexParams params;\n        IndexInfo *pinfo;\n        vector<Nhood> nhoods;\n        size_t n_comps;\n\n        void init () {\n            unsigned N = oracle.size();\n            unsigned seed = params.seed;\n            mt19937 rng(seed);\n            for (auto &nhood: nhoods) {\n                nhood.nn_new.resize(params.S * 2);\n                nhood.pool.resize(params.L+1);\n                nhood.radius = numeric_limits<float>::max();\n            }\n            #pragma omp parallel\n            {\n              #ifdef _OPENMP\n              mt19937 rng(seed ^ omp_get_thread_num());\n              #else\n                mt19937 rng(seed);\n              #endif\n                vector<unsigned> random(params.S + 1);\n               #pragma omp for\n                for (unsigned n = 0; n < N; ++n) {\n                    auto &nhood = nhoods[n];\n                    Neighbors &pool = nhood.pool;\n                    GenRandom(rng, &nhood.nn_new[0], nhood.nn_new.size(), N); //nn_new 2*S random sampling \n                    GenRandom(rng, &random[0], random.size(), N);  //random s+1\n                    nhood.L = params.S;\n                    nhood.M = params.S;\n\t\t\t\t\t//cout<<nhood.L<<endl;\n                    unsigned i = 0;\n                    for (unsigned l = 0; l < nhood.L; ++l) {\n                        if (random[i] == n) ++i;\n                        auto &nn = nhood.pool[l];\n                        nn.id = random[i++];\n                        nn.dist = oracle(nn.id, n);\n                        nn.flag = true;\n                    }\n                    sort(pool.begin(), pool.begin() + nhood.L);\n                }\n            }\n        }\n        void join () {\n            size_t cc = 0;\n            #pragma omp parallel for default(shared) schedule(dynamic, 100) reduction(+:cc)\n            for (unsigned n = 0; n < oracle.size(); ++n) {\n                size_t uu = 0;\n                nhoods[n].found = false;\n                nhoods[n].join([&](unsigned i, unsigned j) {\n                        float dist = oracle(i, j);\n                        ++cc;\n                        unsigned r;\n                        r = nhoods[i].parallel_try_insert(j, dist);\n                        if (r < params.K) ++uu;\n                        nhoods[j].parallel_try_insert(i, dist);\n                        if (r < params.K) ++uu;\n                });\n                nhoods[n].found = uu > 0;\n            }\n            n_comps += cc;\n        }\n        void update () {\n            unsigned N = oracle.size();\n            for (auto &nhood: nhoods) {\n                nhood.nn_new.clear();\n                nhood.nn_old.clear();\n                nhood.rnn_new.clear();\n                nhood.rnn_old.clear();\n                nhood.radius = nhood.pool.back().dist;\n            }\n            //!!! compute radius2\n            #pragma omp parallel for\n            for (unsigned n = 0; n < N; ++n) {\n                auto &nhood = nhoods[n];\n                if (nhood.found) {\n                    unsigned maxl = std::min(nhood.M + params.S, nhood.L);\n                    unsigned c = 0;\n                    unsigned l = 0;\n                    while ((l < maxl) && (c < params.S)) {\n                        if (nhood.pool[l].flag) ++c;\n                        ++l;\n                    }\n                    nhood.M = l;\n                }\n                BOOST_VERIFY(nhood.M > 0);\n                nhood.radiusM = nhood.pool[nhood.M-1].dist;\n            }\n            #pragma omp parallel for\n            for (unsigned n = 0; n < N; ++n) {\n                auto &nhood = nhoods[n];\n                auto &nn_new = nhood.nn_new;\n                auto &nn_old = nhood.nn_old;\n                for (unsigned l = 0; l < nhood.M; ++l) {\n\t\t\t\t\t\n                    auto &nn = nhood.pool[l];\n                    auto &nhood_o = nhoods[nn.id];  // nhood on the other side of the edge\n                    if (nn.flag) {\n                        nn_new.push_back(nn.id);\n                        if (nn.dist > nhood_o.radiusM) {\n                            LockGuard guard(nhood_o.lock);\n                            nhood_o.rnn_new.push_back(n);\n                        }\n                        nn.flag = false;\n                    }\n                    else {\n                        nn_old.push_back(nn.id);\n                        if (nn.dist > nhood_o.radiusM) {\n                            LockGuard guard(nhood_o.lock);\n                            nhood_o.rnn_old.push_back(n);\n                        }\n                    }\n                }\n            }\n            for (unsigned i = 0; i < N; ++i) {\n                auto &nn_new = nhoods[i].nn_new;\n                auto &nn_old = nhoods[i].nn_old;\n                auto &rnn_new = nhoods[i].rnn_new;\n                auto &rnn_old = nhoods[i].rnn_old;\n                if (params.R && (rnn_new.size() > params.R)) {\n                    random_shuffle(rnn_new.begin(), rnn_new.end());\n                    rnn_new.resize(params.R);\n                }\n                nn_new.insert(nn_new.end(), rnn_new.begin(), rnn_new.end());\n                if (params.R && (rnn_old.size() > params.R)) {\n                    random_shuffle(rnn_old.begin(), rnn_old.end());\n                    rnn_old.resize(params.R);\n                }\n                nn_old.insert(nn_old.end(), rnn_old.begin(), rnn_old.end());\n            }\n        }\n\npublic:\n      KGraphConstructor (IndexOracle const &o, IndexParams const &p, IndexInfo *r, char const *path)\n            : oracle(o), params(p), pinfo(r), nhoods(o.size()), n_comps(0)\n        {\n            boost::timer::cpu_timer timer;\n            //params.check();\n            unsigned N = oracle.size(); // size of dataset\n            if (N <= params.K) throw runtime_error(\"K larger than dataset size\");\n\n            vector<Control> controls;  //struct control {unsigned id;Neighbors neighbors;}\n            if (verbosity > 0) cerr << \"Generating control...\" << endl;\n            GenerateControl(oracle, params.controls, params.K, &controls); //controls data points are sampled, and then calculate the true knn \n            if (verbosity > 0) cerr << \"Initializing...\" << endl;\n            // initialize nhoods\n            init();\n\n            // iterate until converge\n            float total = N * float(N - 1) / 2;\n            IndexInfo info;\n            info.stop_condition = IndexInfo::ITERATION;\n            info.recall = 0;\n            info.accuracy = numeric_limits<float>::max();\n            info.cost = 0;\n            info.iterations = 0;\n            info.delta = 1.0;\n\n            for (unsigned it = 0; (params.iterations <= 0) || (it < params.iterations); ++it) {\n                ++info.iterations;\n                join();\n                {\n                    info.cost = n_comps / total;\n                    accumulator_set<float, stats<tag::mean>> one_exact;\n                    accumulator_set<float, stats<tag::mean>> one_approx;\n                    accumulator_set<float, stats<tag::mean>> one_recall;\n                    accumulator_set<float, stats<tag::mean>> recall;\n                    accumulator_set<float, stats<tag::mean>> accuracy;\n                    accumulator_set<float, stats<tag::mean>> M;\n                    accumulator_set<float, stats<tag::mean>> delta;\n                    for (auto const &nhood: nhoods) {\n                        M(nhood.M);\n                        delta(EvaluateDelta(nhood.pool, params.K));\n                    }\n                    for (auto const &c: controls) {\n                        one_approx(nhoods[c.id].pool[0].dist);\n                        one_exact(c.neighbors[0].dist);\n                        one_recall(EvaluateOneRecall(nhoods[c.id].pool, c.neighbors));\n                        recall(EvaluateRecall(nhoods[c.id].pool, c.neighbors));\n                        accuracy(EvaluateAccuracy(nhoods[c.id].pool, c.neighbors));\n                    }\n                    info.delta = mean(delta);\n                    info.recall = mean(recall);\n                    info.accuracy = mean(accuracy);\n                    info.M = mean(M);\n                    auto times = timer.elapsed();\n                    if (verbosity > 0) {\n\n                        cerr << \"iteration: \" << info.iterations\n                             << \" recall: \" << info.recall\n                             << \" accuracy: \" << info.accuracy\n                             << \" cost: \" << info.cost\n                             << \" M: \" << info.M\n                             << \" delta: \" << info.delta\n                             << \" time: \" << times.wall / 1e9\n                             << \" one-recall: \" << mean(one_recall)\n                             << \" one-ratio: \" << mean(one_approx) / mean(one_exact)\n                             << endl;\n                    }\n                }\n                if (info.delta <= params.delta) {\n                    info.stop_condition = IndexInfo::DELTA;\n                    break;\n                }\n                if (info.recall >= params.recall) {\n                    info.stop_condition = IndexInfo::RECALL;\n                    break;\n                }\n                update();\n            }\n\n            ofstream os(path, ios::binary);\n            os.write(KGRAPH_MAGIC, KGRAPH_MAGIC_SIZE);\n            os.write(reinterpret_cast<char const *>(&VERSION_MAJOR), sizeof(VERSION_MAJOR));\n            os.write(reinterpret_cast<char const *>(&VERSION_MINOR), sizeof(VERSION_MINOR));\n            os.write(reinterpret_cast<char const *>(&N), sizeof(N));\n            \n            \n            for (unsigned n = 0; n < N; ++n) {\n              auto const &pool = nhoods[n].pool;\n              unsigned K = params.L;\n              os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n              os.write(reinterpret_cast<char const *>(&K), sizeof(K));\n              for (unsigned j = 0; j < K; ++j){\n                os.write(reinterpret_cast<char const *>(&pool[j].id), sizeof(pool[j].id));\n              }\n            }\n            /* // deleted by yifang\n            M.resize(N);\n            graph.resize(N);\n            if (params.prune > 2) throw runtime_error(\"prune level not supported.\");\n            for (unsigned n = 0; n < N; ++n) {\n                auto &knn = graph[n];\n                M[n] = nhoods[n].M;\n                auto const &pool = nhoods[n].pool;\n\n                unsigned K = params.L;\n                knn.resize(K);\n                for (unsigned k = 0; k < K; ++k) {\n                    knn[k].id = pool[k].id;\n                    knn[k].dist = pool[k].dist;\n                }\n                nhoods[n].pool.clear();\n                }\n            if (params.prune) {\n                prune(o, params.prune);\n            }\n            if (pinfo) {\n                *pinfo = info;\n                }*/\n        }\n\n    };\n\nvoid KGraphImpl::build (IndexOracle const &oracle, IndexParams const &param, char const *path, IndexInfo *info) {\n  KGraphConstructor con(oracle, param, info, path);\n  /* //deleted by yifang\n  M.swap(con.M);\n  graph.swap(con.graph);\n  */\n}\n\n    KGraph *KGraph::create () {\n        return new KGraphImpl;\n    }\n\n    char const* KGraph::version () {\n        return kgraph_version;\n    }\n}\n\n"
  },
  {
    "path": "algorithms/KGraph/src/kgraph.h",
    "content": "// Copyright (C) 2013-2015 Wei Dong <wdong@wdong.org>. All Rights Reserved.\n//\n// \\mainpage KGraph: A Library for Efficient K-NN Search\n// \\author Wei Dong \\f$ wdong@wdong.org \\f$\n// \\author 2013-2015\n//\n\n#ifndef WDONG_KGRAPH\n#define WDONG_KGRAPH\n\n#include <iostream>\n#include <unordered_set>\n#include <vector>\n#include <unordered_map>\n//#include \"kgraph-data.h\"\n\nusing namespace std;\n\nnamespace kgraph {\n    static unsigned const default_iterations =  30;\n    static unsigned const default_L = 100;\n    static unsigned const default_K = 100;\n    static unsigned const default_P = 100;\n    static unsigned const default_M = 0;\n    static unsigned const default_T = 1;\n    static unsigned const default_S = 10;\n    static unsigned const default_Maxchecks = 10;\n    static unsigned const default_seedIndex = 1;\n    static unsigned const default_R = 100;\n    static unsigned const default_controls = 100;\n    static unsigned const default_seed = 1998;\n    static float const default_delta = 0.002;\n    static float const default_recall = 0.99;\n    static float const default_epsilon = 1e30;\n    static unsigned const default_verbosity = 1;\n    enum {\n        PRUNE_LEVEL_1 = 1,\n        PRUNE_LEVEL_2 = 2\n    };\n    static unsigned const default_prune = 0;\n\n    /// Verbosity control\n    /** Set verbosity = 0 to disable information output to stderr.\n     */\n    extern unsigned verbosity;\n\n    /// Index oracle\n    /** The index oracle is the user-supplied plugin that computes\n     * the distance between two arbitrary objects in the dataset.\n     * It is used for offline k-NN graph construction.\n     */\n    class IndexOracle {\n    public:\n        /// Returns the size of the dataset.\n        virtual unsigned size () const = 0;\n        /// Computes similarity\n        /**\n         * 0 <= i, j < size() are the index of two objects in the dataset.\n         * This method return the distance between objects i and j.\n         */\n        virtual float operator () (unsigned i, unsigned j) const = 0;\n\tvirtual float angle (unsigned orign, unsigned pivot, unsigned x) const = 0;\n    };\n\n    /// Search oracle\n    /** The search oracle is the user-supplied plugin that computes\n     * the distance between the query and a arbitrary object in the dataset.\n     * It is used for online k-NN search.\n     */\n    class SearchOracle {\n    public:\n        /// Returns the size of the dataset.\n        virtual unsigned size () const = 0;\n        /// Computes similarity\n        /**\n         * 0 <= i < size() are the index of an objects in the dataset.\n         * This method return the distance between the query and object i.\n         */\n        virtual float operator () (unsigned i) const = 0;\n        /// Search with brutal force.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param K Return at most K nearest neighbors.\n         * @param epsilon Only returns nearest neighbors within distance epsilon.\n         * @param ids Pointer to the memory where neighbor IDs are returned.\n         * @param dists Pointer to the memory where distance values are returned, can be nullptr.\n         */\n        unsigned search (unsigned K, float epsilon, unsigned *ids, float *dists = nullptr) const;\n    };\n\n    /// The KGraph index.\n    /** This is an abstract base class.  Use KGraph::create to create an instance.\n     */\n    class KGraph {\n    public:\n        /// Indexing parameters.\n        struct IndexParams {\n            unsigned iterations; \n            unsigned L;\n            unsigned K;\n            unsigned S;\n            unsigned R;\n            unsigned controls;\n            unsigned seed;\n            float delta;\n            float recall;\n            unsigned prune;\n\n            /// Construct with default values.\n            IndexParams (): iterations(default_iterations), L(default_L), K(default_K), S(default_S), R(default_R), controls(default_controls), seed(default_seed), delta(default_delta), recall(default_recall), prune(default_prune) {\n            }\n        };\n\n        /// Search parameters.\n        struct SearchParams {\n            unsigned K;\n            unsigned M;\n            unsigned P;\n            unsigned T;\n            unsigned Maxchecks;\n            float epsilon;\n            unsigned seed;\n            unsigned init;\n      \n\n            /// Construct with default values.\n            SearchParams (): K(default_K), M(default_M), P(default_P), T(default_T), epsilon(default_epsilon), seed(1998), init(0) {\n            }\n        };\n\n        /// Information and statistics of the indexing algorithm.\n        struct IndexInfo {\n            enum StopCondition {\n                ITERATION = 0,\n                DELTA,\n                RECALL\n            } stop_condition;\n            unsigned iterations;\n            float cost;\n            float recall;\n            float accuracy;\n            float delta;\n            float M;\n        };\n\n        /// Information and statistics of the search algorithm.\n        struct SearchInfo {\n            float cost;\n            unsigned updates;\n            int checks;\n        };\n\n        virtual ~KGraph () {\n        }\n        /// Load index from file.\n        /**\n         * @param path Path to the index file.\n         */\n        virtual void load (char const *path) = 0;\n        /// Save index to file.\n        /**sa\n         * @param path Path to the index file.\n         */\n        virtual void save (char const *path) const = 0; // save to file\n\t    virtual void saver (char const *path) const = 0;\n\t\tvirtual void get_hubs (char const *hubs_path,char const *knn_path) const = 0; // get_hubs\n\t\tvirtual void add_long_edges(IndexOracle const &oracle, int const rank_top_k, int const change_num) = 0; //add long edges\n\t\tvirtual void output_M (char const * filename) = 0;\n\t\tvirtual void output_info(int const id) = 0; // output info for id-th point\n\t\tvirtual void merge(char const * graph_path, char const * id_path) = 0;\n\t\tvirtual void test_connectivity(unsigned dest) = 0;\n\t\tvirtual void remove_near_edges(IndexOracle const &oracle, const int edge_num) = 0;\n        virtual float statistics(IndexOracle const &oracle, const int edge_num) = 0;\n        virtual void diversify_by_cut(IndexOracle const &oracle, const int edge_num) = 0;\n\t\tvirtual void remove_near_edges_2(IndexOracle const &oracle, vector<unsigned> const &edge_num, unordered_set<unsigned> const &skip_set) = 0;\n\t\tvirtual void add_random_backward_edges(char const *data_path, char const *hubs_path, int const num_of_hubs, char const * start_points_path, unsigned num_of_query) = 0;\n\t\tvirtual void add_backward_edges() = 0;\n\t\tvirtual void get_partitions(char const *output_path) = 0;\n\t\tvirtual void compute_diversity(IndexOracle const &oracle, int d, float * norm) = 0;\n\t\tvirtual void connectivity(unsigned const source, unsigned const dest) = 0;\n\t\tvirtual void make_inverse_graph() = 0;\n\t\tvirtual void find_lm (SearchOracle const &oracle) const = 0;\n\t\tvirtual void kgraph2dot (char * const &filename) = 0;\n        /// Build the index\n                virtual void build (IndexOracle const &oracle, IndexParams const &params, char const *path, IndexInfo *info = 0) = 0;\n        /// Prune the index\n        /**\n         * Pruning makes the index smaller to save memory, and makes online search on the pruned index faster.\n         * (The cost parameters of online search must be enlarged so accuracy is not reduced.)\n         *\n         * Currently only two pruning levels are supported:\n         * - PRUNE_LEVEL_1 = 1: Only reduces index size, fast.\n         * - PRUNE_LEVEL_2 = 2: For improve online search speed, slow.\n         *\n         * No pruning is done if level = 0.\n         */\n        virtual void prune (IndexOracle const &oracle, unsigned level) = 0;\n        /// Online k-NN search.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param ids Pointer to the memory where neighbor IDs are stored, must have space to save params.K ids.\n         */\n        unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, SearchInfo *info = 0, string const &info_path = \"\") const {\n            //std::cout <<\"h search \\n\";\n\t  return search(oracle, params, ids, nullptr, info, info_path);// d_init, Matrix<float> const &d_init,\n        }\n\n\tunsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, SearchInfo *info = 0, string const &info_path = \"\") const {\n\t  //std::cout <<\"h search \\n\";\n          return search_greedy(oracle, params, ids, nullptr, info, info_path);// d_init, Matrix<float> const &d_init,\n        }\n        /// Online k-NN search.\n        /**\n         * Search results are guaranteed to be ranked in ascending order of distance.\n         *\n         * @param ids Pointer to the memory where neighbor IDs are stored, must have space to save params.K values.\n         * @param dists Pointer to the memory where distances are stored, must have space to save params.K values.\n         */\n\tvirtual unsigned advanced_search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n\n        virtual unsigned search (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n\n\tvirtual unsigned search_greedy (SearchOracle const &oracle, SearchParams const &params, unsigned *ids, float *dists, SearchInfo *info, string const &info_path) const = 0; //,Matrix<float> const &d_init\n        /// Constructor.\n        static KGraph *create ();\n        /// Returns version string.\n        static char const* version ();\n\n        /// Get offline computed k-NNs of a given object.\n        /**\n         * See the full version of get_nn.\n         */\n        virtual void get_nn (unsigned id, unsigned *nns, unsigned *M, unsigned *L) const {\n            get_nn(id, nns, nullptr, M, L);\n        }\n        /// Get offline computed k-NNs of a given object.\n        /**\n         * The user must provide space to save IndexParams::L values.\n         * The actually returned L could be smaller than IndexParams::L, and\n         * M <= L is the number of neighbors KGraph thinks\n         * could be most useful for online search, and is usually < L.\n         * If the index has been pruned, the returned L could be smaller than\n         * IndexParams::L used to construct the index.\n         *\n         * @params id Object ID whose neighbor information are returned.\n         * @params nns Neighbor IDs, must have space to save IndexParams::L values. \n         * @params dists Distance values, must have space to save IndexParams::L values.\n         * @params M Useful number of neighbors, output only.\n         * @params L Actually returned number of neighbors, output only.\n         */\n        virtual void get_nn (unsigned id, unsigned *nns, float *dists, unsigned *M, unsigned *L) const = 0;\n    };\n}\n\n#if __cplusplus > 199711L\n#include <functional>\nnamespace kgraph {\n    /// Oracle adapter for datasets stored in a vector-like container.\n    /**\n     * If the dataset is stored in a container of CONTAINER_TYPE that supports\n     * - a size() method that returns the number of objects.\n     * - a [] operator that returns the const reference to an object.\n     * This class can be used to provide a wrapper to facilitate creating\n     * the index and search oracles.\n     *\n     * The user must provide a callback function that takes in two\n     * const references to objects and returns a distance value.\n     */\n    template <typename CONTAINER_TYPE, typename OBJECT_TYPE>\n    class VectorOracle: public IndexOracle {\n    public:\n        typedef std::function<float(OBJECT_TYPE const &, OBJECT_TYPE const &)> METRIC_TYPE;\n    private:\n        CONTAINER_TYPE const &data;\n        METRIC_TYPE dist;\n    public:\n        class VectorSearchOracle: public SearchOracle {\n            CONTAINER_TYPE const &data;\n            OBJECT_TYPE const query;\n            METRIC_TYPE dist;\n        public:\n            VectorSearchOracle (CONTAINER_TYPE const &p, OBJECT_TYPE const &q, METRIC_TYPE m): data(p), query(q), dist(m) {\n            }\n            virtual unsigned size () const {\n                return data.size();\n            }\n            virtual float operator () (unsigned i) const {\n                return dist(data[i], query);\n            }\n        };\n        /// Constructor.\n        /**\n         * @param d: the container that holds the dataset.\n         * @param m: a callback function for distance computation.  m(d[i], d[j]) must be\n         *  a valid expression to compute distance.\n         */\n        VectorOracle (CONTAINER_TYPE const &d, METRIC_TYPE m): data(d), dist(m) {\n        }\n        virtual unsigned size () const {\n            return data.size();\n        }\n        virtual float operator () (unsigned i, unsigned j) const {\n            return dist(data[i], data[j]);\n        }\n        /// Constructs a search oracle for query object q.\n        VectorSearchOracle query (OBJECT_TYPE const &q) const {\n            return VectorSearchOracle(data, q, dist);\n        }\n    };\n}\n#endif\n\n#endif\n\n"
  },
  {
    "path": "algorithms/KGraph/src/kgraph_index.cpp",
    "content": "#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\n#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\nint main(int argc, char *argv[]) {\n    string data_path;\n    string output_path;\n    KGraph::IndexParams params;\n    unsigned D;\n    unsigned skip;\n    unsigned gap;\n    unsigned synthetic;\n    float noise;\n\n    bool lshkit = true;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version information.\")\n    (\"data\", po::value(&data_path), \"input path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\",K\", po::value(&params.K)->default_value(default_K), \"number of nearest neighbor\")\n    (\"controls,C\", po::value(&params.controls)->default_value(default_controls), \"number of control pounsigneds\")\n    ;\n\n    po::options_description desc_hidden(\"Expert options\");\n    desc_hidden.add_options()\n    (\"iterations,I\", po::value(&params.iterations)->default_value(default_iterations), \"\")\n    (\",S\", po::value(&params.S)->default_value(default_S), \"\")\n    (\",R\", po::value(&params.R)->default_value(default_R), \"\")\n    (\",L\", po::value(&params.L)->default_value(default_L), \"\")\n    (\"delta\", po::value(&params.delta)->default_value(default_delta), \"\")\n    (\"recall\", po::value(&params.recall)->default_value(default_recall), \"\")\n    (\"prune\", po::value(&params.prune)->default_value(default_prune), \"\")\n    (\"noise\", po::value(&noise)->default_value(0), \"noise\")\n    (\"seed\", po::value(&params.seed)->default_value(default_seed), \"\")\n    (\"dim,D\", po::value(&D), \"dimension, see format\")\n    (\"skip\", po::value(&skip)->default_value(0), \"see format\")\n    (\"gap\", po::value(&gap)->default_value(0), \"see format\")\n    (\"raw\", \"read raw binary file, need to specify D.\")\n    (\"synthetic\", po::value(&synthetic)->default_value(0), \"generate synthetic data, for performance evaluation only, specify number of points\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible).add(desc_hidden);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm;\n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm);\n\n    if (vm.count(\"raw\") == 1) {\n        lshkit = false;\n    }\n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\")\n            || (synthetic && (vm.count(\"dim\") == 0 || vm.count(\"data\")))\n            || (!synthetic && (vm.count(\"data\") == 0 || (vm.count(\"dim\") == 0 && !lshkit)))) {\n        cout << \"Usage: index [OTHER OPTIONS]... INPUT [OUTPUT]\" << endl;\n        cout << desc_visible << endl;\n        cout << desc_hidden << endl;\n        return 0;\n    }\n\n    if (params.S == 0) {\n        params.S = params.K;\n    }\n\n    if (lshkit && (synthetic == 0)) {   // read dimension information from the data file\n        static const unsigned LSHKIT_HEADER = 3;\n        ifstream is(data_path.c_str(), ios::binary);\n        unsigned header[LSHKIT_HEADER]; /* entry size, row, col */\n        is.read((char *)header, sizeof header);\n        BOOST_VERIFY(is);\n        BOOST_VERIFY(header[0] == sizeof(value_type));\n        is.close();\n        D = header[2];\n        skip = LSHKIT_HEADER * sizeof(unsigned);\n        gap = 0;\n    }\n\n    Matrix<value_type> data;\n    if (synthetic) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"synthetic data not implemented for non-floating-point values.\");\n        }\n        data.resize(synthetic, D);\n        cerr << \"Generating synthetic data...\" << endl;\n        default_random_engine rng(params.seed);\n        uniform_real_distribution<double> distribution(-1.0, 1.0);\n        data.zero(); // important to do that\n        for (unsigned i = 0; i < synthetic; ++i) {\n            value_type *row = data[i];\n            for (unsigned j = 0; j < D; ++j) {\n                row[j] = distribution(rng);\n            }\n        }\n    }\n    else {\n        data.load(data_path, D, skip, gap);\n    }\n    if (noise != 0) {\n        if (!std::is_floating_point<value_type>::value) {\n            throw runtime_error(\"noise injection not implemented for non-floating-point value.\");\n        }\n        tr1::ranlux64_base_01 rng;\n        double sum = 0, sum2 = 0;\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                value_type v = data[i][j];\n                sum += v;\n                sum2 += v * v;\n            }\n        }\n        double total = double(data.size()) * data.dim();\n        double avg2 = sum2 / total, avg = sum / total;\n        double dev = sqrt(avg2 - avg * avg);\n        cerr << \"Adding Gaussian noise w/ \" << noise << \"x sigma(\" << dev << \")...\" << endl;\n        boost::normal_distribution<double> gaussian(0, noise * dev);\n        for (unsigned i = 0; i < data.size(); ++i) {\n            for (unsigned j = 0; j < data.dim(); ++j) {\n                data[i][j] += gaussian(rng);\n            }\n        }\n    }\n\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    KGraph::IndexInfo info;\n    KGraph *kgraph = KGraph::create(); //(oracle, params, &info);\n    {\n        auto_cpu_timer timer;\n        kgraph->build(oracle, params, output_path.c_str(), &info);\n        cerr << info.stop_condition << endl;\n    }\n\n    if (output_path.size()) {\n     \n      //Note that we modify the index save procedure to reduce index size    \n      //kgraph->save(output_path.c_str());\n    }\n\n  \n    \n    delete kgraph;\n\n    return 0;\n}\n"
  },
  {
    "path": "algorithms/KGraph/src/kgraph_search.cpp",
    "content": "#include <cctype>\n#include <type_traits>\n#include <iostream>\n#include <boost/timer/timer.hpp>\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <cctype>\n#include <random>\n#include <iomanip>\n#include <type_traits>\n#include <boost/timer/timer.hpp>\n#include <boost/tr1/random.hpp>\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n\nusing namespace boost::timer;\nusing namespace std;\nusing namespace boost;\nusing namespace kgraph;\nnamespace po = boost::program_options; \n\n#ifndef KGRAPH_VALUE_TYPE\n#define KGRAPH_VALUE_TYPE float\n#endif\n\n\ntypedef KGRAPH_VALUE_TYPE value_type;\n\n\nint main(int argc, char *argv[]) {\n    vector<string> params;\n    string input_path;\n    string index_path;\n    string query_path;\n    string output_path;\n    string init_path;\n    string eval_path;\n    unsigned K, M, P, T;\n\n    po::options_description desc_visible(\"General options\");\n    desc_visible.add_options()\n    (\"help,h\", \"produce help message.\")\n    (\"version,v\", \"print version number.\")\n    (\"data\", po::value(&input_path), \"input path\")\n    (\"index\", po::value(&index_path), \"index path\")\n    (\"query\", po::value(&query_path), \"query path\")\n    (\"output\", po::value(&output_path), \"output path\")\n    (\"init\", po::value(&init_path), \"init path\")\n    (\"eval\", po::value(&eval_path), \"eval path\")\n    (\",K\", po::value(&K)->default_value(default_K), \"\")\n    (\",M\", po::value(&M)->default_value(default_M), \"\")\n    (\",P\", po::value(&P)->default_value(default_P), \"\")\n    (\",T\", po::value(&T)->default_value(default_T), \"\")\n    (\"linear\", \"\")\n    ;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add(desc_visible);\n\n    po::positional_options_description p;\n    p.add(\"data\", 1);\n    p.add(\"index\", 1);\n    p.add(\"query\", 1);\n    p.add(\"output\", 1);\n\n    po::variables_map vm; \n    po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);\n    po::notify(vm); \n\n    if (vm.count(\"version\")) {\n        cout << \"KGraph version \" << KGraph::version() << endl;\n        return 0;\n    }\n\n    if (vm.count(\"help\") || vm.count(\"data\") == 0 || vm.count(\"index\") == 0 || vm.count(\"query\") == 0) {\n        cout << \"DPG_search <data> <index> <query> [output]\" << endl;\n        cout << desc_visible << endl;\n        return 0;\n    }\n\n    if (P < K) {\n        P = K;\n    }\n\n    Matrix<value_type> data;\n    Matrix<value_type> query;\n    Matrix<unsigned> result; //(query.size(), U);\n    unsigned init = 0;\n\n    data.load_lshkit(input_path);\n    query.load_lshkit(query_path);\n    if (init_path.size()) {\n        result.load_lshkit(init_path);\n        BOOST_VERIFY(result.size() == query.size());\n        init = result.dim();\n        BOOST_VERIFY(init >= K);\n    }\n    MatrixOracle<value_type, metric::l2sqr> oracle(data);\n    float recall = 0;\n    float cost = 0;\n    float time = 0;\n    if (vm.count(\"linear\")) {\n        boost::timer::auto_cpu_timer timer;\n        result.resize(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            oracle.query(query[i]).search(K, default_epsilon, result[i]);\n        }\n        cost = 1.0;\n        time = timer.elapsed().wall / 1e9;\n    }\n    else {\n        result.resize(query.size(), K);\n        KGraph::SearchParams params;\n        params.K = K;\n        params.M = M;\n        params.P = P;\n        params.T = T;\n        params.init = init;\n        KGraph *kgraph = KGraph::create();\n        kgraph->load(index_path.c_str());\n\n        boost::timer::auto_cpu_timer timer;\n        cerr << \"Searching...\" << endl;\n\n// #pragma omp parallel for reduction(+:cost)\n        for (unsigned i = 0; i < query.size(); ++i) {\n            KGraph::SearchInfo info;\n            kgraph->search(oracle.query(query[i]), params, result[i], &info);\n            cost += info.cost;\n        }\n        cost /= query.size();\n        time = timer.elapsed().wall / 1e9;\n        //cerr << \"Cost: \" << cost << endl;\n        delete kgraph;\n    }\n    if (output_path.size()) {\n        result.save_lshkit(output_path);\n    }\n    if (eval_path.size()) {\n        Matrix<unsigned> gs;\n        gs.load_lshkit(eval_path);\n        BOOST_VERIFY(gs.dim() >= K);\n        BOOST_VERIFY(gs.size() >= query.size());\n        kgraph::Matrix<float> gs_dist(query.size(), K);\n        kgraph::Matrix<float> result_dist(query.size(), K);\n// #pragma omp parallel for\n        for (unsigned i = 0; i < query.size(); ++i) {\n            auto Q = oracle.query(query[i]);\n            float *gs_dist_row = gs_dist[i];\n            float *result_dist_row = result_dist[i];\n            unsigned const *gs_row = gs[i];\n            unsigned const *result_row = result[i];\n            for (unsigned k = 0; k < K; ++k) {\n                gs_dist_row[k] = Q(gs_row[k]);\n                result_dist_row[k] = Q(result_row[k]);\n            }\n            sort(gs_dist_row, gs_dist_row + K);\n            sort(result_dist_row, result_dist_row + K);\n        }\n        recall = AverageRecall(gs_dist, result_dist, K);\n    }\n    cout << \"Time: \" << time << \" Recall: \" << recall << \" Cost: \" << cost << endl;\n\n    return 0;\n}"
  },
  {
    "path": "algorithms/KGraph/src/metric.cpp",
    "content": "#include \"kgraph.h\"\n#include \"kgraph-data.h\"\n#include <math.h>\n\n#ifdef __GNUC__\n#ifdef __AVX__\n#include <immintrin.h>\n#define AVX_L2SQR(addr1, addr2, dest, tmp1, tmp2) \\\n    tmp1 = _mm256_loadu_ps(addr1);\\\n    tmp2 = _mm256_loadu_ps(addr2);\\\n    tmp1 = _mm256_sub_ps(tmp1, tmp2); \\\n    tmp1 = _mm256_mul_ps(tmp1, tmp1); \\\n    dest = _mm256_add_ps(dest, tmp1); \nnamespace kgraph {\nfloat float_l2sqr_avx (float const *t1, float const *t2, unsigned dim) {\n    __m256 sum;\n    __m256 l0, l1, l2, l3;\n    __m256 r0, r1, r2, r3;\n    unsigned D = (dim + 7) & ~7U; // # dim aligned up to 256 bits, or 8 floats\n    unsigned DR = D % 32;\n    unsigned DD = D - DR;\n    const float *l = t1;\n    const float *r = t2;\n    const float *e_l = l + DD;\n    const float *e_r = r + DD;\n    float unpack[8] __attribute__ ((aligned (32))) = {0, 0, 0, 0, 0, 0, 0, 0};\n    float ret = 0.0;\n    sum = _mm256_load_ps(unpack);\n    switch (DR) {\n        case 24:\n            AVX_L2SQR(e_l+16, e_r+16, sum, l2, r2);\n        case 16:\n            AVX_L2SQR(e_l+8, e_r+8, sum, l1, r1);\n        case 8:\n            AVX_L2SQR(e_l, e_r, sum, l0, r0);\n    }\n    for (unsigned i = 0; i < DD; i += 32, l += 32, r += 32) {\n        AVX_L2SQR(l, r, sum, l0, r0);\n        AVX_L2SQR(l + 8, r + 8, sum, l1, r1);\n        AVX_L2SQR(l + 16, r + 16, sum, l2, r2);\n        AVX_L2SQR(l + 24, r + 24, sum, l3, r3);\n    }\n    _mm256_storeu_ps(unpack, sum);\n    ret = unpack[0] + unpack[1] + unpack[2] + unpack[3]\n        + unpack[4] + unpack[5] + unpack[6] + unpack[7];\n    return ret;//sqrt(ret);\n}\n}\n#endif\n#ifdef __SSE2__\n#include <xmmintrin.h>\n#define SSE_L2SQR(addr1, addr2, dest, tmp1, tmp2) \\\n    tmp1 = _mm_load_ps(addr1);\\\n    tmp2 = _mm_load_ps(addr2);\\\n    tmp1 = _mm_sub_ps(tmp1, tmp2); \\\n    tmp1 = _mm_mul_ps(tmp1, tmp1); \\\n    dest = _mm_add_ps(dest, tmp1); \nnamespace kgraph {\nfloat float_l2sqr_sse2 (float const *t1, float const *t2, unsigned dim) {\n\t/*\t\n\t//cos dostance\n\tfloat dis=0;\n\tfloat x_ = 0;\n\tfloat y_ = 0;   \n\tfor(unsigned i=0;i<dim;i++)\n\t{\n\t\tdis += t1[i]*t2[i];\n\t\tx_ += t1[i]*t1[i];\n\t\ty_ += t2[i]*t2[i];\n\t}\n\tdis = dis / sqrt(x_*y_);\n\tcout<<dis<<endl;\n\treturn dis;\n\t*/\n\n    //l2 distance\n\t///*\t\n\tfloat dis=0;   \n    for(unsigned i=0;i<dim;i++)\n    {\n        //dis += pow((t1[i]-t2[i]),2);\n        float tmp = t1[i]-t2[i];\n        dis += tmp * tmp;\n    }\n    return dis;\n\t//*/\n\t\n\t// about the hardware speed\n\t/* \n    #ifdef DISTANCE_SP \n    __m128 sum;\n    __m128 l0, l1, l2, l3;\n    __m128 r0, r1, r2, r3;\n    unsigned D = (dim + 3) & ~3U;\n    unsigned DR = D % 16;\n    unsigned DD = D - DR;\n    const float *l = t1;\n    const float *r = t2;\n    const float *e_l = l + DD;\n    const float *e_r = r + DD;\n    float unpack[4] __attribute__ ((aligned (16))) = {0, 0, 0, 0};\n    float ret = 0.0;\n    sum = _mm_load_ps(unpack);\n    switch (DR) {\n        case 12:\n            SSE_L2SQR(e_l+8, e_r+8, sum, l2, r2);\n        case 8:\n            SSE_L2SQR(e_l+4, e_r+4, sum, l1, r1);\n        case 4:\n            SSE_L2SQR(e_l, e_r, sum, l0, r0);\n    }\n    for (unsigned i = 0; i < DD; i += 16, l += 16, r += 16) {\n        SSE_L2SQR(l, r, sum, l0, r0);\n        SSE_L2SQR(l + 4, r + 4, sum, l1, r1);\n        SSE_L2SQR(l + 8, r + 8, sum, l2, r2);\n        SSE_L2SQR(l + 12, r + 12, sum, l3, r3);\n    }\n    _mm_storeu_ps(unpack, sum);\n    ret = unpack[0] + unpack[1] + unpack[2] + unpack[3];\n    return ret;//sqrt(ret);\t\n    #else \n    float dis=0;   \n    for(unsigned i=0;i<dim;i++)\n    {\n        //dis += pow((t1[i]-t2[i]),2);\n        float tmp = t1[i]-t2[i];\n        dis += tmp * tmp;\n    }\n    return dis;\n    #endif \n*/\n\n\n}\n}\n/*\ntemplate <typename T>\nvoid print_128 (__m128i v) {\n    static unsigned constexpr L = 16 / sizeof(T);\n    T unpack[L] __attribute__ ((aligned (16)));\n    _mm_store_si128((__m128i *)unpack, v);\n    cout << '(' << int(unpack[0]);\n    for (unsigned i = 1; i < L; ++i) {\n        cout << ',' << int(unpack[i]);\n    }\n    cout << ')';\n}\n*/\n\n#define SSE_L2SQR_BYTE(addr1, addr2, sum, z) \\\n    do { \\\n        const __m128i o = _mm_load_si128((__m128i const *)(addr1));\\\n        const __m128i p = _mm_load_si128((__m128i const *)(addr2));\\\n        __m128i o1 = _mm_unpackhi_epi8(o,z); \\\n        __m128i p1 = _mm_unpackhi_epi8(p,z); \\\n        __m128i d = _mm_sub_epi16(o1, p1); \\\n        sum = _mm_add_epi32(sum, _mm_madd_epi16(d, d)); \\\n        o1 = _mm_unpacklo_epi8(o,z); \\\n        p1 = _mm_unpacklo_epi8(p,z); \\\n        d = _mm_sub_epi16(o1, p1); \\\n        sum = _mm_add_epi32(sum, _mm_madd_epi16(d, d)); \\\n    } while (false)\nnamespace kgraph {\nfloat uint8_l2sqr_sse2 (uint8_t const *t1, uint8_t const *t2, unsigned dim) {\n\tcout<<\"3\\n\";    \n\tunsigned D = (dim + 0xFU) & ~0xFU;   // actual dimension used in calculation, 0-padded\n    unsigned DR = D % 64;           // process 32 dims per iteration\n    unsigned DD = D - DR;\n    const uint8_t *l = t1;\n    const uint8_t *r = t2;\n    const uint8_t *e_l = l + DD;\n    const uint8_t *e_r = r + DD;\n    int32_t unpack[4] __attribute__ ((aligned (16))) = {0, 0, 0, 0};\n    __m128i sum = _mm_load_si128((__m128i *)unpack);\n    const __m128i z = sum;\n    switch (DR) {\n        case 48:\n            SSE_L2SQR_BYTE(e_l+32, e_r+32, sum, z);\n        case 32:\n            SSE_L2SQR_BYTE(e_l+16, e_r+16, sum, z);\n        case 16:\n            SSE_L2SQR_BYTE(e_l, e_r, sum, z);\n    }\n    for (unsigned i = 0; i < DD; i += 64, l += 64, r += 64) {\n        SSE_L2SQR_BYTE(l, r, sum, z);\n        SSE_L2SQR_BYTE(l + 16, r + 16, sum, z);\n        SSE_L2SQR_BYTE(l + 32, r + 32, sum, z);\n        SSE_L2SQR_BYTE(l + 48, r + 48, sum, z);\n    }\n    _mm_store_si128((__m128i *)unpack, sum);\n    int32_t ret = unpack[0] + unpack[1] + unpack[2] + unpack[3];\n    return float(ret);//sqrt(ret);\n}\n}\n#endif\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/README.md",
    "content": "NonMetricSpaceLib\n======================================================\n\nThis is a modified version of NonMetricSpaceLib, which contains the implementation of HNSW, SW, NAPP and VP-Tree. The original version can be found form  [here](https://github.com/searchivarius/nmslib).\n\nMain differences:\n\nWe disabled SIMD and multi-threading techniques. We also replace the compiler option -Ofast to -O3.\n\n##Prerequisites:\n\nA modern compiler that supports C++11: G++ 4.7, Intel compiler 14, Clang 3.4.\n- Boost (dev version).\n- CMake (version 2.8 or over is needed)\n- [Sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including data points, query point. Note that the input format is .txt and the ground truth results can be generated before evaluating.\n\n##Compile\n\nTo compile, go to the directory code and type:\n\ncmake .\nmake  \n\n##Build and Search\n\nrun_HNSW.sh, run_SW.sh, run_NAPP.sh, run_vptree.sh \n\ntype run_HNSW.sh, run_SW.sh, run_NAPP.sh, and run_vptree.sh to get the index and search results of Hierarchical Navigable Small World, Small World, NAAPP and VP-Tree. Note that vptree don't support to save the index and HNSW can't save the non-optimized index(skip_optimized_index=1).\n\nThe search performance (time and recall) results are kept in the NonMetricSpaceLib/results directory.\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/3.2.3/CMakeCCompiler.cmake",
    "content": "set(CMAKE_C_COMPILER \"/opt/rh/devtoolset-2/root/usr/bin/cc\")\nset(CMAKE_C_COMPILER_ARG1 \"\")\nset(CMAKE_C_COMPILER_ID \"GNU\")\nset(CMAKE_C_COMPILER_VERSION \"4.8.2\")\nset(CMAKE_C_COMPILE_FEATURES \"c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert\")\nset(CMAKE_C90_COMPILE_FEATURES \"c_function_prototypes\")\nset(CMAKE_C99_COMPILE_FEATURES \"c_restrict;c_variadic_macros\")\nset(CMAKE_C11_COMPILE_FEATURES \"c_static_assert\")\n\nset(CMAKE_C_PLATFORM_ID \"Linux\")\nset(CMAKE_C_SIMULATE_ID \"\")\nset(CMAKE_C_SIMULATE_VERSION \"\")\n\nset(CMAKE_AR \"/opt/rh/devtoolset-2/root/usr/bin/ar\")\nset(CMAKE_RANLIB \"/opt/rh/devtoolset-2/root/usr/bin/ranlib\")\nset(CMAKE_LINKER \"/opt/rh/devtoolset-2/root/usr/bin/ld\")\nset(CMAKE_COMPILER_IS_GNUCC 1)\nset(CMAKE_C_COMPILER_LOADED 1)\nset(CMAKE_C_COMPILER_WORKS TRUE)\nset(CMAKE_C_ABI_COMPILED TRUE)\nset(CMAKE_COMPILER_IS_MINGW )\nset(CMAKE_COMPILER_IS_CYGWIN )\nif(CMAKE_COMPILER_IS_CYGWIN)\n  set(CYGWIN 1)\n  set(UNIX 1)\nendif()\n\nset(CMAKE_C_COMPILER_ENV_VAR \"CC\")\n\nif(CMAKE_COMPILER_IS_MINGW)\n  set(MINGW 1)\nendif()\nset(CMAKE_C_COMPILER_ID_RUN 1)\nset(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)\nset(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)\nset(CMAKE_C_LINKER_PREFERENCE 10)\n\n# Save compiler ABI information.\nset(CMAKE_C_SIZEOF_DATA_PTR \"8\")\nset(CMAKE_C_COMPILER_ABI \"ELF\")\nset(CMAKE_C_LIBRARY_ARCHITECTURE \"\")\n\nif(CMAKE_C_SIZEOF_DATA_PTR)\n  set(CMAKE_SIZEOF_VOID_P \"${CMAKE_C_SIZEOF_DATA_PTR}\")\nendif()\n\nif(CMAKE_C_COMPILER_ABI)\n  set(CMAKE_INTERNAL_PLATFORM_ABI \"${CMAKE_C_COMPILER_ABI}\")\nendif()\n\nif(CMAKE_C_LIBRARY_ARCHITECTURE)\n  set(CMAKE_LIBRARY_ARCHITECTURE \"\")\nendif()\n\n\n\n\nset(CMAKE_C_IMPLICIT_LINK_LIBRARIES \"c\")\nset(CMAKE_C_IMPLICIT_LINK_DIRECTORIES \"/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib\")\nset(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES \"\")\n\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/3.2.3/CMakeCXXCompiler.cmake",
    "content": "set(CMAKE_CXX_COMPILER \"/opt/rh/devtoolset-2/root/usr/bin/c++\")\nset(CMAKE_CXX_COMPILER_ARG1 \"\")\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\nset(CMAKE_CXX_COMPILER_VERSION \"4.8.2\")\nset(CMAKE_CXX_COMPILE_FEATURES \"cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates\")\nset(CMAKE_CXX98_COMPILE_FEATURES \"cxx_template_template_parameters\")\nset(CMAKE_CXX11_COMPILE_FEATURES \"cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates\")\nset(CMAKE_CXX14_COMPILE_FEATURES \"\")\n\nset(CMAKE_CXX_PLATFORM_ID \"Linux\")\nset(CMAKE_CXX_SIMULATE_ID \"\")\nset(CMAKE_CXX_SIMULATE_VERSION \"\")\n\nset(CMAKE_AR \"/opt/rh/devtoolset-2/root/usr/bin/ar\")\nset(CMAKE_RANLIB \"/opt/rh/devtoolset-2/root/usr/bin/ranlib\")\nset(CMAKE_LINKER \"/opt/rh/devtoolset-2/root/usr/bin/ld\")\nset(CMAKE_COMPILER_IS_GNUCXX 1)\nset(CMAKE_CXX_COMPILER_LOADED 1)\nset(CMAKE_CXX_COMPILER_WORKS TRUE)\nset(CMAKE_CXX_ABI_COMPILED TRUE)\nset(CMAKE_COMPILER_IS_MINGW )\nset(CMAKE_COMPILER_IS_CYGWIN )\nif(CMAKE_COMPILER_IS_CYGWIN)\n  set(CYGWIN 1)\n  set(UNIX 1)\nendif()\n\nset(CMAKE_CXX_COMPILER_ENV_VAR \"CXX\")\n\nif(CMAKE_COMPILER_IS_MINGW)\n  set(MINGW 1)\nendif()\nset(CMAKE_CXX_COMPILER_ID_RUN 1)\nset(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)\nset(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)\nset(CMAKE_CXX_LINKER_PREFERENCE 30)\nset(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)\n\n# Save compiler ABI information.\nset(CMAKE_CXX_SIZEOF_DATA_PTR \"8\")\nset(CMAKE_CXX_COMPILER_ABI \"ELF\")\nset(CMAKE_CXX_LIBRARY_ARCHITECTURE \"\")\n\nif(CMAKE_CXX_SIZEOF_DATA_PTR)\n  set(CMAKE_SIZEOF_VOID_P \"${CMAKE_CXX_SIZEOF_DATA_PTR}\")\nendif()\n\nif(CMAKE_CXX_COMPILER_ABI)\n  set(CMAKE_INTERNAL_PLATFORM_ABI \"${CMAKE_CXX_COMPILER_ABI}\")\nendif()\n\nif(CMAKE_CXX_LIBRARY_ARCHITECTURE)\n  set(CMAKE_LIBRARY_ARCHITECTURE \"\")\nendif()\n\n\n\n\nset(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES \"stdc++;m;c\")\nset(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES \"/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib\")\nset(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES \"\")\n\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/3.2.3/CMakeSystem.cmake",
    "content": "set(CMAKE_HOST_SYSTEM \"Linux-2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_HOST_SYSTEM_NAME \"Linux\")\nset(CMAKE_HOST_SYSTEM_VERSION \"2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_HOST_SYSTEM_PROCESSOR \"x86_64\")\n\n\n\nset(CMAKE_SYSTEM \"Linux-2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_SYSTEM_NAME \"Linux\")\nset(CMAKE_SYSTEM_VERSION \"2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_SYSTEM_PROCESSOR \"x86_64\")\n\nset(CMAKE_CROSSCOMPILING \"FALSE\")\n\nset(CMAKE_SYSTEM_LOADED 1)\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/3.2.3/CompilerIdC/CMakeCCompilerId.c",
    "content": "#ifdef __cplusplus\n# error \"A C++ compiler has been selected for C.\"\n#endif\n\n#if defined(__18CXX)\n# define ID_VOID_MAIN\n#endif\n\n\n/* Version number components: V=Version, R=Revision, P=Patch\n   Version date components:   YYYY=Year, MM=Month,   DD=Day  */\n\n#if defined(__INTEL_COMPILER) || defined(__ICC)\n# define COMPILER_ID \"Intel\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n  /* __INTEL_COMPILER = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)\n# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)\n# if defined(__INTEL_COMPILER_UPDATE)\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)\n# else\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)\n# endif\n# if defined(__INTEL_COMPILER_BUILD_DATE)\n  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */\n#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)\n# endif\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__PATHCC__)\n# define COMPILER_ID \"PathScale\"\n# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)\n# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)\n# if defined(__PATHCC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)\n# endif\n\n#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)\n# define COMPILER_ID \"Embarcadero\"\n# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)\n# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)\n# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)\n\n#elif defined(__BORLANDC__)\n# define COMPILER_ID \"Borland\"\n  /* __BORLANDC__ = 0xVRR */\n# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)\n# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)\n\n#elif defined(__WATCOMC__) && __WATCOMC__ < 1200\n# define COMPILER_ID \"Watcom\"\n   /* __WATCOMC__ = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__WATCOMC__)\n# define COMPILER_ID \"OpenWatcom\"\n   /* __WATCOMC__ = VVRP + 1100 */\n# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__SUNPRO_C)\n# define COMPILER_ID \"SunPro\"\n# if __SUNPRO_C >= 0x5100\n   /* __SUNPRO_C = 0xVRRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)\n# else\n   /* __SUNPRO_CC = 0xVRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)\n# endif\n\n#elif defined(__HP_cc)\n# define COMPILER_ID \"HP\"\n  /* __HP_cc = VVRRPP */\n# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)\n# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)\n# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)\n\n#elif defined(__DECC)\n# define COMPILER_ID \"Compaq\"\n  /* __DECC_VER = VVRRTPPPP */\n# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)\n# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)\n# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)\n\n#elif defined(__IBMC__) && defined(__COMPILER_VER__)\n# define COMPILER_ID \"zOS\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800\n# define COMPILER_ID \"XL\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800\n# define COMPILER_ID \"VisualAge\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__PGI)\n# define COMPILER_ID \"PGI\"\n# define COMPILER_VERSION_MAJOR DEC(__PGIC__)\n# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)\n# if defined(__PGIC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)\n# endif\n\n#elif defined(_CRAYC)\n# define COMPILER_ID \"Cray\"\n# define COMPILER_VERSION_MAJOR DEC(_RELEASE)\n# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)\n\n#elif defined(__TI_COMPILER_VERSION__)\n# define COMPILER_ID \"TI\"\n  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */\n# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)\n# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)\n# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)\n\n#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)\n# define COMPILER_ID \"Fujitsu\"\n\n#elif defined(__TINYC__)\n# define COMPILER_ID \"TinyCC\"\n\n#elif defined(__SCO_VERSION__)\n# define COMPILER_ID \"SCO\"\n\n#elif defined(__clang__) && defined(__apple_build_version__)\n# define COMPILER_ID \"AppleClang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)\n\n#elif defined(__clang__)\n# define COMPILER_ID \"Clang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__GNUC__)\n# define COMPILER_ID \"GNU\"\n# define COMPILER_VERSION_MAJOR DEC(__GNUC__)\n# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)\n# if defined(__GNUC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)\n# endif\n\n#elif defined(_MSC_VER)\n# define COMPILER_ID \"MSVC\"\n  /* _MSC_VER = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)\n# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)\n# if defined(_MSC_FULL_VER)\n#  if _MSC_VER >= 1400\n    /* _MSC_FULL_VER = VVRRPPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)\n#  else\n    /* _MSC_FULL_VER = VVRRPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)\n#  endif\n# endif\n# if defined(_MSC_BUILD)\n#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)\n# endif\n\n#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)\n# define COMPILER_ID \"ADSP\"\n#if defined(__VISUALDSPVERSION__)\n  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */\n# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)\n# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)\n# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)\n#endif\n\n#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)\n# define COMPILER_ID \"IAR\"\n\n#elif defined(SDCC)\n# define COMPILER_ID \"SDCC\"\n  /* SDCC = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)\n#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)\n\n#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)\n# define COMPILER_ID \"MIPSpro\"\n# if defined(_SGI_COMPILER_VERSION)\n  /* _SGI_COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)\n# else\n  /* _COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)\n# endif\n\n\n/* These compilers are either not known or too old to define an\n  identification macro.  Try to identify the platform and guess that\n  it is the native compiler.  */\n#elif defined(__sgi)\n# define COMPILER_ID \"MIPSpro\"\n\n#elif defined(__hpux) || defined(__hpua)\n# define COMPILER_ID \"HP\"\n\n#else /* unknown compiler */\n# define COMPILER_ID \"\"\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_compiler = \"INFO\" \":\" \"compiler[\" COMPILER_ID \"]\";\n#ifdef SIMULATE_ID\nchar const* info_simulate = \"INFO\" \":\" \"simulate[\" SIMULATE_ID \"]\";\n#endif\n\n#ifdef __QNXNTO__\nchar const* qnxnto = \"INFO\" \":\" \"qnxnto[]\";\n#endif\n\n/* Identify known platforms by name.  */\n#if defined(__linux) || defined(__linux__) || defined(linux)\n# define PLATFORM_ID \"Linux\"\n\n#elif defined(__CYGWIN__)\n# define PLATFORM_ID \"Cygwin\"\n\n#elif defined(__MINGW32__)\n# define PLATFORM_ID \"MinGW\"\n\n#elif defined(__APPLE__)\n# define PLATFORM_ID \"Darwin\"\n\n#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)\n# define PLATFORM_ID \"Windows\"\n\n#elif defined(__FreeBSD__) || defined(__FreeBSD)\n# define PLATFORM_ID \"FreeBSD\"\n\n#elif defined(__NetBSD__) || defined(__NetBSD)\n# define PLATFORM_ID \"NetBSD\"\n\n#elif defined(__OpenBSD__) || defined(__OPENBSD)\n# define PLATFORM_ID \"OpenBSD\"\n\n#elif defined(__sun) || defined(sun)\n# define PLATFORM_ID \"SunOS\"\n\n#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)\n# define PLATFORM_ID \"AIX\"\n\n#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)\n# define PLATFORM_ID \"IRIX\"\n\n#elif defined(__hpux) || defined(__hpux__)\n# define PLATFORM_ID \"HP-UX\"\n\n#elif defined(__HAIKU__)\n# define PLATFORM_ID \"Haiku\"\n\n#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)\n# define PLATFORM_ID \"BeOS\"\n\n#elif defined(__QNX__) || defined(__QNXNTO__)\n# define PLATFORM_ID \"QNX\"\n\n#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)\n# define PLATFORM_ID \"Tru64\"\n\n#elif defined(__riscos) || defined(__riscos__)\n# define PLATFORM_ID \"RISCos\"\n\n#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)\n# define PLATFORM_ID \"SINIX\"\n\n#elif defined(__UNIX_SV__)\n# define PLATFORM_ID \"UNIX_SV\"\n\n#elif defined(__bsdos__)\n# define PLATFORM_ID \"BSDOS\"\n\n#elif defined(_MPRAS) || defined(MPRAS)\n# define PLATFORM_ID \"MP-RAS\"\n\n#elif defined(__osf) || defined(__osf__)\n# define PLATFORM_ID \"OSF1\"\n\n#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)\n# define PLATFORM_ID \"SCO_SV\"\n\n#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)\n# define PLATFORM_ID \"ULTRIX\"\n\n#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)\n# define PLATFORM_ID \"Xenix\"\n\n#elif defined(__WATCOMC__)\n# if defined(__LINUX__)\n#  define PLATFORM_ID \"Linux\"\n\n# elif defined(__DOS__)\n#  define PLATFORM_ID \"DOS\"\n\n# elif defined(__OS2__)\n#  define PLATFORM_ID \"OS2\"\n\n# elif defined(__WINDOWS__)\n#  define PLATFORM_ID \"Windows3x\"\n\n# else /* unknown platform */\n#  define PLATFORM_ID \"\"\n# endif\n\n#else /* unknown platform */\n# define PLATFORM_ID \"\"\n\n#endif\n\n/* For windows compilers MSVC and Intel we can determine\n   the architecture of the compiler being used.  This is because\n   the compilers do not have flags that can change the architecture,\n   but rather depend on which compiler is being used\n*/\n#if defined(_WIN32) && defined(_MSC_VER)\n# if defined(_M_IA64)\n#  define ARCHITECTURE_ID \"IA64\"\n\n# elif defined(_M_X64) || defined(_M_AMD64)\n#  define ARCHITECTURE_ID \"x64\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# elif defined(_M_ARM)\n#  define ARCHITECTURE_ID \"ARM\"\n\n# elif defined(_M_MIPS)\n#  define ARCHITECTURE_ID \"MIPS\"\n\n# elif defined(_M_SH)\n#  define ARCHITECTURE_ID \"SHx\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#elif defined(__WATCOMC__)\n# if defined(_M_I86)\n#  define ARCHITECTURE_ID \"I86\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#else\n#  define ARCHITECTURE_ID \"\"\n#endif\n\n/* Convert integer to decimal digit literals.  */\n#define DEC(n)                   \\\n  ('0' + (((n) / 10000000)%10)), \\\n  ('0' + (((n) / 1000000)%10)),  \\\n  ('0' + (((n) / 100000)%10)),   \\\n  ('0' + (((n) / 10000)%10)),    \\\n  ('0' + (((n) / 1000)%10)),     \\\n  ('0' + (((n) / 100)%10)),      \\\n  ('0' + (((n) / 10)%10)),       \\\n  ('0' +  ((n) % 10))\n\n/* Convert integer to hex digit literals.  */\n#define HEX(n)             \\\n  ('0' + ((n)>>28 & 0xF)), \\\n  ('0' + ((n)>>24 & 0xF)), \\\n  ('0' + ((n)>>20 & 0xF)), \\\n  ('0' + ((n)>>16 & 0xF)), \\\n  ('0' + ((n)>>12 & 0xF)), \\\n  ('0' + ((n)>>8  & 0xF)), \\\n  ('0' + ((n)>>4  & 0xF)), \\\n  ('0' + ((n)     & 0xF))\n\n/* Construct a string literal encoding the version number components. */\n#ifdef COMPILER_VERSION_MAJOR\nchar const info_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',\n  COMPILER_VERSION_MAJOR,\n# ifdef COMPILER_VERSION_MINOR\n  '.', COMPILER_VERSION_MINOR,\n#  ifdef COMPILER_VERSION_PATCH\n   '.', COMPILER_VERSION_PATCH,\n#   ifdef COMPILER_VERSION_TWEAK\n    '.', COMPILER_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct a string literal encoding the version number components. */\n#ifdef SIMULATE_VERSION_MAJOR\nchar const info_simulate_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',\n  SIMULATE_VERSION_MAJOR,\n# ifdef SIMULATE_VERSION_MINOR\n  '.', SIMULATE_VERSION_MINOR,\n#  ifdef SIMULATE_VERSION_PATCH\n   '.', SIMULATE_VERSION_PATCH,\n#   ifdef SIMULATE_VERSION_TWEAK\n    '.', SIMULATE_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_platform = \"INFO\" \":\" \"platform[\" PLATFORM_ID \"]\";\nchar const* info_arch = \"INFO\" \":\" \"arch[\" ARCHITECTURE_ID \"]\";\n\n\n\n\n/*--------------------------------------------------------------------------*/\n\n#ifdef ID_VOID_MAIN\nvoid main() {}\n#else\nint main(int argc, char* argv[])\n{\n  int require = 0;\n  require += info_compiler[argc];\n  require += info_platform[argc];\n  require += info_arch[argc];\n#ifdef COMPILER_VERSION_MAJOR\n  require += info_version[argc];\n#endif\n#ifdef SIMULATE_ID\n  require += info_simulate[argc];\n#endif\n#ifdef SIMULATE_VERSION_MAJOR\n  require += info_simulate_version[argc];\n#endif\n  (void)argv;\n  return require;\n}\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/3.2.3/CompilerIdCXX/CMakeCXXCompilerId.cpp",
    "content": "/* This source file must have a .cpp extension so that all C++ compilers\n   recognize the extension without flags.  Borland does not know .cxx for\n   example.  */\n#ifndef __cplusplus\n# error \"A C compiler has been selected for C++.\"\n#endif\n\n\n/* Version number components: V=Version, R=Revision, P=Patch\n   Version date components:   YYYY=Year, MM=Month,   DD=Day  */\n\n#if defined(__COMO__)\n# define COMPILER_ID \"Comeau\"\n  /* __COMO_VERSION__ = VRR */\n# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)\n# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)\n\n#elif defined(__INTEL_COMPILER) || defined(__ICC)\n# define COMPILER_ID \"Intel\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n  /* __INTEL_COMPILER = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)\n# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)\n# if defined(__INTEL_COMPILER_UPDATE)\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)\n# else\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)\n# endif\n# if defined(__INTEL_COMPILER_BUILD_DATE)\n  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */\n#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)\n# endif\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__PATHCC__)\n# define COMPILER_ID \"PathScale\"\n# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)\n# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)\n# if defined(__PATHCC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)\n# endif\n\n#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)\n# define COMPILER_ID \"Embarcadero\"\n# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)\n# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)\n# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)\n\n#elif defined(__BORLANDC__)\n# define COMPILER_ID \"Borland\"\n  /* __BORLANDC__ = 0xVRR */\n# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)\n# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)\n\n#elif defined(__WATCOMC__) && __WATCOMC__ < 1200\n# define COMPILER_ID \"Watcom\"\n   /* __WATCOMC__ = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__WATCOMC__)\n# define COMPILER_ID \"OpenWatcom\"\n   /* __WATCOMC__ = VVRP + 1100 */\n# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__SUNPRO_CC)\n# define COMPILER_ID \"SunPro\"\n# if __SUNPRO_CC >= 0x5100\n   /* __SUNPRO_CC = 0xVRRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)\n# else\n   /* __SUNPRO_CC = 0xVRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)\n# endif\n\n#elif defined(__HP_aCC)\n# define COMPILER_ID \"HP\"\n  /* __HP_aCC = VVRRPP */\n# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)\n# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)\n# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)\n\n#elif defined(__DECCXX)\n# define COMPILER_ID \"Compaq\"\n  /* __DECCXX_VER = VVRRTPPPP */\n# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)\n# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)\n# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)\n\n#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)\n# define COMPILER_ID \"zOS\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800\n# define COMPILER_ID \"XL\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800\n# define COMPILER_ID \"VisualAge\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__PGI)\n# define COMPILER_ID \"PGI\"\n# define COMPILER_VERSION_MAJOR DEC(__PGIC__)\n# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)\n# if defined(__PGIC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)\n# endif\n\n#elif defined(_CRAYC)\n# define COMPILER_ID \"Cray\"\n# define COMPILER_VERSION_MAJOR DEC(_RELEASE)\n# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)\n\n#elif defined(__TI_COMPILER_VERSION__)\n# define COMPILER_ID \"TI\"\n  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */\n# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)\n# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)\n# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)\n\n#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)\n# define COMPILER_ID \"Fujitsu\"\n\n#elif defined(__SCO_VERSION__)\n# define COMPILER_ID \"SCO\"\n\n#elif defined(__clang__) && defined(__apple_build_version__)\n# define COMPILER_ID \"AppleClang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)\n\n#elif defined(__clang__)\n# define COMPILER_ID \"Clang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__GNUC__)\n# define COMPILER_ID \"GNU\"\n# define COMPILER_VERSION_MAJOR DEC(__GNUC__)\n# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)\n# if defined(__GNUC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)\n# endif\n\n#elif defined(_MSC_VER)\n# define COMPILER_ID \"MSVC\"\n  /* _MSC_VER = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)\n# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)\n# if defined(_MSC_FULL_VER)\n#  if _MSC_VER >= 1400\n    /* _MSC_FULL_VER = VVRRPPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)\n#  else\n    /* _MSC_FULL_VER = VVRRPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)\n#  endif\n# endif\n# if defined(_MSC_BUILD)\n#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)\n# endif\n\n#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)\n# define COMPILER_ID \"ADSP\"\n#if defined(__VISUALDSPVERSION__)\n  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */\n# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)\n# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)\n# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)\n#endif\n\n#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)\n# define COMPILER_ID \"IAR\"\n\n#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)\n# define COMPILER_ID \"MIPSpro\"\n# if defined(_SGI_COMPILER_VERSION)\n  /* _SGI_COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)\n# else\n  /* _COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)\n# endif\n\n\n/* These compilers are either not known or too old to define an\n  identification macro.  Try to identify the platform and guess that\n  it is the native compiler.  */\n#elif defined(__sgi)\n# define COMPILER_ID \"MIPSpro\"\n\n#elif defined(__hpux) || defined(__hpua)\n# define COMPILER_ID \"HP\"\n\n#else /* unknown compiler */\n# define COMPILER_ID \"\"\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_compiler = \"INFO\" \":\" \"compiler[\" COMPILER_ID \"]\";\n#ifdef SIMULATE_ID\nchar const* info_simulate = \"INFO\" \":\" \"simulate[\" SIMULATE_ID \"]\";\n#endif\n\n#ifdef __QNXNTO__\nchar const* qnxnto = \"INFO\" \":\" \"qnxnto[]\";\n#endif\n\n/* Identify known platforms by name.  */\n#if defined(__linux) || defined(__linux__) || defined(linux)\n# define PLATFORM_ID \"Linux\"\n\n#elif defined(__CYGWIN__)\n# define PLATFORM_ID \"Cygwin\"\n\n#elif defined(__MINGW32__)\n# define PLATFORM_ID \"MinGW\"\n\n#elif defined(__APPLE__)\n# define PLATFORM_ID \"Darwin\"\n\n#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)\n# define PLATFORM_ID \"Windows\"\n\n#elif defined(__FreeBSD__) || defined(__FreeBSD)\n# define PLATFORM_ID \"FreeBSD\"\n\n#elif defined(__NetBSD__) || defined(__NetBSD)\n# define PLATFORM_ID \"NetBSD\"\n\n#elif defined(__OpenBSD__) || defined(__OPENBSD)\n# define PLATFORM_ID \"OpenBSD\"\n\n#elif defined(__sun) || defined(sun)\n# define PLATFORM_ID \"SunOS\"\n\n#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)\n# define PLATFORM_ID \"AIX\"\n\n#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)\n# define PLATFORM_ID \"IRIX\"\n\n#elif defined(__hpux) || defined(__hpux__)\n# define PLATFORM_ID \"HP-UX\"\n\n#elif defined(__HAIKU__)\n# define PLATFORM_ID \"Haiku\"\n\n#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)\n# define PLATFORM_ID \"BeOS\"\n\n#elif defined(__QNX__) || defined(__QNXNTO__)\n# define PLATFORM_ID \"QNX\"\n\n#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)\n# define PLATFORM_ID \"Tru64\"\n\n#elif defined(__riscos) || defined(__riscos__)\n# define PLATFORM_ID \"RISCos\"\n\n#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)\n# define PLATFORM_ID \"SINIX\"\n\n#elif defined(__UNIX_SV__)\n# define PLATFORM_ID \"UNIX_SV\"\n\n#elif defined(__bsdos__)\n# define PLATFORM_ID \"BSDOS\"\n\n#elif defined(_MPRAS) || defined(MPRAS)\n# define PLATFORM_ID \"MP-RAS\"\n\n#elif defined(__osf) || defined(__osf__)\n# define PLATFORM_ID \"OSF1\"\n\n#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)\n# define PLATFORM_ID \"SCO_SV\"\n\n#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)\n# define PLATFORM_ID \"ULTRIX\"\n\n#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)\n# define PLATFORM_ID \"Xenix\"\n\n#elif defined(__WATCOMC__)\n# if defined(__LINUX__)\n#  define PLATFORM_ID \"Linux\"\n\n# elif defined(__DOS__)\n#  define PLATFORM_ID \"DOS\"\n\n# elif defined(__OS2__)\n#  define PLATFORM_ID \"OS2\"\n\n# elif defined(__WINDOWS__)\n#  define PLATFORM_ID \"Windows3x\"\n\n# else /* unknown platform */\n#  define PLATFORM_ID \"\"\n# endif\n\n#else /* unknown platform */\n# define PLATFORM_ID \"\"\n\n#endif\n\n/* For windows compilers MSVC and Intel we can determine\n   the architecture of the compiler being used.  This is because\n   the compilers do not have flags that can change the architecture,\n   but rather depend on which compiler is being used\n*/\n#if defined(_WIN32) && defined(_MSC_VER)\n# if defined(_M_IA64)\n#  define ARCHITECTURE_ID \"IA64\"\n\n# elif defined(_M_X64) || defined(_M_AMD64)\n#  define ARCHITECTURE_ID \"x64\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# elif defined(_M_ARM)\n#  define ARCHITECTURE_ID \"ARM\"\n\n# elif defined(_M_MIPS)\n#  define ARCHITECTURE_ID \"MIPS\"\n\n# elif defined(_M_SH)\n#  define ARCHITECTURE_ID \"SHx\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#elif defined(__WATCOMC__)\n# if defined(_M_I86)\n#  define ARCHITECTURE_ID \"I86\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#else\n#  define ARCHITECTURE_ID \"\"\n#endif\n\n/* Convert integer to decimal digit literals.  */\n#define DEC(n)                   \\\n  ('0' + (((n) / 10000000)%10)), \\\n  ('0' + (((n) / 1000000)%10)),  \\\n  ('0' + (((n) / 100000)%10)),   \\\n  ('0' + (((n) / 10000)%10)),    \\\n  ('0' + (((n) / 1000)%10)),     \\\n  ('0' + (((n) / 100)%10)),      \\\n  ('0' + (((n) / 10)%10)),       \\\n  ('0' +  ((n) % 10))\n\n/* Convert integer to hex digit literals.  */\n#define HEX(n)             \\\n  ('0' + ((n)>>28 & 0xF)), \\\n  ('0' + ((n)>>24 & 0xF)), \\\n  ('0' + ((n)>>20 & 0xF)), \\\n  ('0' + ((n)>>16 & 0xF)), \\\n  ('0' + ((n)>>12 & 0xF)), \\\n  ('0' + ((n)>>8  & 0xF)), \\\n  ('0' + ((n)>>4  & 0xF)), \\\n  ('0' + ((n)     & 0xF))\n\n/* Construct a string literal encoding the version number components. */\n#ifdef COMPILER_VERSION_MAJOR\nchar const info_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',\n  COMPILER_VERSION_MAJOR,\n# ifdef COMPILER_VERSION_MINOR\n  '.', COMPILER_VERSION_MINOR,\n#  ifdef COMPILER_VERSION_PATCH\n   '.', COMPILER_VERSION_PATCH,\n#   ifdef COMPILER_VERSION_TWEAK\n    '.', COMPILER_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct a string literal encoding the version number components. */\n#ifdef SIMULATE_VERSION_MAJOR\nchar const info_simulate_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',\n  SIMULATE_VERSION_MAJOR,\n# ifdef SIMULATE_VERSION_MINOR\n  '.', SIMULATE_VERSION_MINOR,\n#  ifdef SIMULATE_VERSION_PATCH\n   '.', SIMULATE_VERSION_PATCH,\n#   ifdef SIMULATE_VERSION_TWEAK\n    '.', SIMULATE_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_platform = \"INFO\" \":\" \"platform[\" PLATFORM_ID \"]\";\nchar const* info_arch = \"INFO\" \":\" \"arch[\" ARCHITECTURE_ID \"]\";\n\n\n\n\n/*--------------------------------------------------------------------------*/\n\nint main(int argc, char* argv[])\n{\n  int require = 0;\n  require += info_compiler[argc];\n  require += info_platform[argc];\n#ifdef COMPILER_VERSION_MAJOR\n  require += info_version[argc];\n#endif\n#ifdef SIMULATE_ID\n  require += info_simulate[argc];\n#endif\n#ifdef SIMULATE_VERSION_MAJOR\n  require += info_simulate_version[argc];\n#endif\n  (void)argv;\n  return require;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/CMakeError.log",
    "content": "Determining if the pthread_create exist failed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec63957620/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0074 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec63957620.dir/build.make CMakeFiles/cmTryCompileExec63957620.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec63957620.dir/flags.make' has modification time 0.0035 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec63957620.dir/CheckSymbolExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec63957620.dir/CheckSymbolExists.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CheckSymbolExists.c\nLinking C executable cmTryCompileExec63957620\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec63957620.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec63957620.dir/CheckSymbolExists.c.o  -o cmTryCompileExec63957620 -rdynamic \nCMakeFiles/cmTryCompileExec63957620.dir/CheckSymbolExists.c.o: In function `main':\nCheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec63957620] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec63957620/fast] Error 2\n\nFile /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CheckSymbolExists.c:\n/* */\n#include <pthread.h>\n\nint main(int argc, char** argv)\n{\n  (void)argv;\n#ifndef pthread_create\n  return ((int*)(&pthread_create))[argc];\n#else\n  (void)argc;\n  return 0;\n#endif\n}\n\nDetermining if the function pthread_create exists in the pthreads failed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3176298737/fast\"\ngmake: Warning: File `Makefile' has modification time 0.01 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3176298737.dir/build.make CMakeFiles/cmTryCompileExec3176298737.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec3176298737.dir/flags.make' has modification time 0.0053 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3176298737.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec3176298737.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec3176298737\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3176298737.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec3176298737.dir/CheckFunctionExists.c.o  -o cmTryCompileExec3176298737 -rdynamic -lpthreads \n/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: cannot find -lpthreads\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec3176298737] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec3176298737/fast] Error 2\n\n\nDetermining if the pthread_create exist failed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1167864682/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1167864682.dir/build.make CMakeFiles/cmTryCompileExec1167864682.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1167864682.dir/CheckSymbolExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec1167864682.dir/CheckSymbolExists.c.o   -c /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CheckSymbolExists.c\nLinking C executable cmTryCompileExec1167864682\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1167864682.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec1167864682.dir/CheckSymbolExists.c.o  -o cmTryCompileExec1167864682 -rdynamic \nCMakeFiles/cmTryCompileExec1167864682.dir/CheckSymbolExists.c.o: In function `main':\nCheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec1167864682] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec1167864682/fast] Error 2\n\nFile /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CheckSymbolExists.c:\n/* */\n#include <pthread.h>\n\nint main(int argc, char** argv)\n{\n  (void)argv;\n#ifndef pthread_create\n  return ((int*)(&pthread_create))[argc];\n#else\n  (void)argc;\n  return 0;\n#endif\n}\n\nDetermining if the function pthread_create exists in the pthreads failed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1614964294/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1614964294.dir/build.make CMakeFiles/cmTryCompileExec1614964294.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1614964294.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec1614964294.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec1614964294\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1614964294.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec1614964294.dir/CheckFunctionExists.c.o  -o cmTryCompileExec1614964294 -rdynamic -lpthreads \n/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: cannot find -lpthreads\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec1614964294] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec1614964294/fast] Error 2\n\n\nDetermining if the pthread_create exist failed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1791637194/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1791637194.dir/build.make CMakeFiles/cmTryCompileExec1791637194.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1791637194.dir/CheckSymbolExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec1791637194.dir/CheckSymbolExists.c.o   -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CheckSymbolExists.c\nLinking C executable cmTryCompileExec1791637194\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1791637194.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec1791637194.dir/CheckSymbolExists.c.o  -o cmTryCompileExec1791637194 -rdynamic \nCMakeFiles/cmTryCompileExec1791637194.dir/CheckSymbolExists.c.o: In function `main':\nCheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec1791637194] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec1791637194/fast] Error 2\n\nFile /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CheckSymbolExists.c:\n/* */\n#include <pthread.h>\n\nint main(int argc, char** argv)\n{\n  (void)argv;\n#ifndef pthread_create\n  return ((int*)(&pthread_create))[argc];\n#else\n  (void)argc;\n  return 0;\n#endif\n}\n\nDetermining if the function pthread_create exists in the pthreads failed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3258096989/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3258096989.dir/build.make CMakeFiles/cmTryCompileExec3258096989.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3258096989.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec3258096989.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec3258096989\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3258096989.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec3258096989.dir/CheckFunctionExists.c.o  -o cmTryCompileExec3258096989 -rdynamic -lpthreads \n/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: cannot find -lpthreads\ncollect2: error: ld returned 1 exit status\ngmake[1]: *** [cmTryCompileExec3258096989] Error 1\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\ngmake: *** [cmTryCompileExec3258096989/fast] Error 2\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/CMakeOutput.log",
    "content": "The system is: Linux - 2.6.32-573.12.1.el6.x86_64 - x86_64\nCompiling the C compiler identification source file \"CMakeCCompilerId.c\" succeeded.\nCompiler: /opt/rh/devtoolset-2/root/usr/bin/cc \nBuild flags: \nId flags: \n\nThe output was:\n0\n\n\nCompilation of the C compiler identification source \"CMakeCCompilerId.c\" produced \"a.out\"\n\nThe C compiler identification is GNU, found in \"/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/3.2.3/CompilerIdC/a.out\"\n\nCompiling the CXX compiler identification source file \"CMakeCXXCompilerId.cpp\" succeeded.\nCompiler: /opt/rh/devtoolset-2/root/usr/bin/c++ \nBuild flags: \nId flags: \n\nThe output was:\n0\n\n\nCompilation of the CXX compiler identification source \"CMakeCXXCompilerId.cpp\" produced \"a.out\"\n\nThe CXX compiler identification is GNU, found in \"/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/3.2.3/CompilerIdCXX/a.out\"\n\nDetermining if the C compiler works passed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec685482307/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec685482307.dir/build.make CMakeFiles/cmTryCompileExec685482307.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec685482307.dir/testCCompiler.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec685482307.dir/testCCompiler.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/testCCompiler.c\nLinking C executable cmTryCompileExec685482307\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec685482307.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec685482307.dir/testCCompiler.c.o  -o cmTryCompileExec685482307 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\n\n\nDetecting C compiler ABI info compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec317719069/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0017 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec317719069.dir/build.make CMakeFiles/cmTryCompileExec317719069.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec317719069.dir/progress.make' has modification time 0.0065 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCCompilerABI.c\nLinking C executable cmTryCompileExec317719069\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec317719069.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc      -v CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec317719069 -rdynamic  \nUsing built-in specs.\nCOLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/cc\nCOLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper\nTarget: x86_64-redhat-linux\nConfigured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux\nThread model: posix\ngcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) \nCOMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/\nLIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/\nCOLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec317719069' '-rdynamic' '-mtune=generic' '-march=x86-64'\n /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec317719069 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o\ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\nParsed C implicit link information from above output:\n  link line regex: [^( *|.*[/\\])(ld|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]\n  ignore line: [Change Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp]\n  ignore line: []\n  ignore line: [Run Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec317719069/fast\"]\n  ignore line: [gmake: Warning: File `Makefile' has modification time 0.0017 s in the future]\n  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec317719069.dir/build.make CMakeFiles/cmTryCompileExec317719069.dir/build]\n  ignore line: [gmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp']\n  ignore line: [gmake[1]: Warning: File `CMakeFiles/cmTryCompileExec317719069.dir/progress.make' has modification time 0.0065 s in the future]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1]\n  ignore line: [Building C object CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCCompilerABI.c]\n  ignore line: [Linking C executable cmTryCompileExec317719069]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec317719069.dir/link.txt --verbose=1]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/cc      -v CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec317719069 -rdynamic  ]\n  ignore line: [Using built-in specs.]\n  ignore line: [COLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/cc]\n  ignore line: [COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper]\n  ignore line: [Target: x86_64-redhat-linux]\n  ignore line: [Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux]\n  ignore line: [Thread model: posix]\n  ignore line: [gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) ]\n  ignore line: [COMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/]\n  ignore line: [LIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/]\n  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec317719069' '-rdynamic' '-mtune=generic' '-march=x86-64']\n  link line: [ /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec317719069 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o]\n    arg [/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2] ==> ignore\n    arg [--build-id] ==> ignore\n    arg [--no-add-needed] ==> ignore\n    arg [--eh-frame-hdr] ==> ignore\n    arg [--hash-style=gnu] ==> ignore\n    arg [-m] ==> ignore\n    arg [elf_x86_64] ==> ignore\n    arg [-export-dynamic] ==> ignore\n    arg [-dynamic-linker] ==> ignore\n    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore\n    arg [-o] ==> ignore\n    arg [cmTryCompileExec317719069] ==> ignore\n    arg [/usr/lib/../lib64/crt1.o] ==> ignore\n    arg [/usr/lib/../lib64/crti.o] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o] ==> ignore\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64]\n    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]\n    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..]\n    arg [CMakeFiles/cmTryCompileExec317719069.dir/CMakeCCompilerABI.c.o] ==> ignore\n    arg [-lgcc] ==> lib [gcc]\n    arg [--as-needed] ==> ignore\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [--no-as-needed] ==> ignore\n    arg [-lc] ==> lib [c]\n    arg [-lgcc] ==> lib [gcc]\n    arg [--as-needed] ==> ignore\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [--no-as-needed] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o] ==> ignore\n    arg [/usr/lib/../lib64/crtn.o] ==> ignore\n  remove lib [gcc]\n  remove lib [gcc_s]\n  remove lib [gcc]\n  remove lib [gcc_s]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> [/opt/rh/devtoolset-2/root/usr/lib64]\n  collapse library dir [/lib/../lib64] ==> [/lib64]\n  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> [/opt/rh/devtoolset-2/root/usr/lib]\n  implicit libs: [c]\n  implicit dirs: [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib]\n  implicit fwks: []\n\n\n\n\nDetecting C [-std=c11] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2258770254/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0038 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2258770254.dir/build.make CMakeFiles/cmTryCompileExec2258770254.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec2258770254.dir/progress.make' has modification time 0.0068 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec2258770254.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c11 -o CMakeFiles/cmTryCompileExec2258770254.dir/feature_tests.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec2258770254\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2258770254.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec2258770254.dir/feature_tests.c.o  -o cmTryCompileExec2258770254 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:1c_restrict\n    Feature record: C_FEATURE:1c_static_assert\n    Feature record: C_FEATURE:1c_variadic_macros\n\n\nDetecting C [-std=c99] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3521544553/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0034 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3521544553.dir/build.make CMakeFiles/cmTryCompileExec3521544553.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec3521544553.dir/progress.make' has modification time 0.0079 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3521544553.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c99 -o CMakeFiles/cmTryCompileExec3521544553.dir/feature_tests.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec3521544553\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3521544553.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec3521544553.dir/feature_tests.c.o  -o cmTryCompileExec3521544553 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:1c_restrict\n    Feature record: C_FEATURE:0c_static_assert\n    Feature record: C_FEATURE:1c_variadic_macros\n\n\nDetecting C [-std=c90] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3695376473/fast\"\ngmake: Warning: File `Makefile' has modification time 0.003 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3695376473.dir/build.make CMakeFiles/cmTryCompileExec3695376473.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec3695376473.dir/progress.make' has modification time 0.0074 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3695376473.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c90 -o CMakeFiles/cmTryCompileExec3695376473.dir/feature_tests.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec3695376473\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3695376473.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec3695376473.dir/feature_tests.c.o  -o cmTryCompileExec3695376473 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:0c_restrict\n    Feature record: C_FEATURE:0c_static_assert\n    Feature record: C_FEATURE:0c_variadic_macros\nDetermining if the CXX compiler works passed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3770998589/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0044 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3770998589.dir/build.make CMakeFiles/cmTryCompileExec3770998589.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec3770998589.dir/progress.make' has modification time 0.0075 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec3770998589.dir/testCXXCompiler.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec3770998589.dir/testCXXCompiler.cxx.o -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/testCXXCompiler.cxx\nLinking CXX executable cmTryCompileExec3770998589\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3770998589.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec3770998589.dir/testCXXCompiler.cxx.o  -o cmTryCompileExec3770998589 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\nDetecting CXX compiler ABI info compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2289776478/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0035 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2289776478.dir/build.make CMakeFiles/cmTryCompileExec2289776478.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec2289776478.dir/progress.make' has modification time 0.0061 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o\n/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXCompilerABI.cpp\nLinking CXX executable cmTryCompileExec2289776478\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2289776478.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++       -v CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec2289776478 -rdynamic  \nUsing built-in specs.\nCOLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/c++\nCOLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper\nTarget: x86_64-redhat-linux\nConfigured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux\nThread model: posix\ngcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) \nCOMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/\nLIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/\nCOLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec2289776478' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'\n /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec2289776478 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o\ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\nParsed CXX implicit link information from above output:\n  link line regex: [^( *|.*[/\\])(ld|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]\n  ignore line: [Change Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp]\n  ignore line: []\n  ignore line: [Run Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2289776478/fast\"]\n  ignore line: [gmake: Warning: File `Makefile' has modification time 0.0035 s in the future]\n  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2289776478.dir/build.make CMakeFiles/cmTryCompileExec2289776478.dir/build]\n  ignore line: [gmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp']\n  ignore line: [gmake[1]: Warning: File `CMakeFiles/cmTryCompileExec2289776478.dir/progress.make' has modification time 0.0061 s in the future]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1]\n  ignore line: [Building CXX object CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXCompilerABI.cpp]\n  ignore line: [Linking CXX executable cmTryCompileExec2289776478]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2289776478.dir/link.txt --verbose=1]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/c++       -v CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec2289776478 -rdynamic  ]\n  ignore line: [Using built-in specs.]\n  ignore line: [COLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/c++]\n  ignore line: [COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper]\n  ignore line: [Target: x86_64-redhat-linux]\n  ignore line: [Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux]\n  ignore line: [Thread model: posix]\n  ignore line: [gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) ]\n  ignore line: [COMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/]\n  ignore line: [LIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/]\n  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec2289776478' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']\n  link line: [ /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec2289776478 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o]\n    arg [/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2] ==> ignore\n    arg [--build-id] ==> ignore\n    arg [--no-add-needed] ==> ignore\n    arg [--eh-frame-hdr] ==> ignore\n    arg [--hash-style=gnu] ==> ignore\n    arg [-m] ==> ignore\n    arg [elf_x86_64] ==> ignore\n    arg [-export-dynamic] ==> ignore\n    arg [-dynamic-linker] ==> ignore\n    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore\n    arg [-o] ==> ignore\n    arg [cmTryCompileExec2289776478] ==> ignore\n    arg [/usr/lib/../lib64/crt1.o] ==> ignore\n    arg [/usr/lib/../lib64/crti.o] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o] ==> ignore\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64]\n    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]\n    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..]\n    arg [CMakeFiles/cmTryCompileExec2289776478.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore\n    arg [-lstdc++] ==> lib [stdc++]\n    arg [-lm] ==> lib [m]\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [-lgcc] ==> lib [gcc]\n    arg [-lc] ==> lib [c]\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [-lgcc] ==> lib [gcc]\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o] ==> ignore\n    arg [/usr/lib/../lib64/crtn.o] ==> ignore\n  remove lib [gcc_s]\n  remove lib [gcc]\n  remove lib [gcc_s]\n  remove lib [gcc]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> [/opt/rh/devtoolset-2/root/usr/lib64]\n  collapse library dir [/lib/../lib64] ==> [/lib64]\n  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> [/opt/rh/devtoolset-2/root/usr/lib]\n  implicit libs: [stdc++;m;c]\n  implicit dirs: [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib]\n  implicit fwks: []\n\n\n\n\nDetecting CXX [-std=c++1y] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1519958920/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1519958920.dir/build.make CMakeFiles/cmTryCompileExec1519958920.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec1519958920.dir/progress.make' has modification time 0.0035 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec1519958920.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++1y -o CMakeFiles/cmTryCompileExec1519958920.dir/feature_tests.cxx.o -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec1519958920\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1519958920.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec1519958920.dir/feature_tests.cxx.o  -o cmTryCompileExec1519958920 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:1cxx_alias_templates\n    Feature record: CXX_FEATURE:1cxx_alignas\n    Feature record: CXX_FEATURE:1cxx_alignof\n    Feature record: CXX_FEATURE:1cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:1cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:1cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:1cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:1cxx_default_function_template_args\n    Feature record: CXX_FEATURE:1cxx_defaulted_functions\n    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:1cxx_delegating_constructors\n    Feature record: CXX_FEATURE:1cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:1cxx_explicit_conversions\n    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:1cxx_extern_templates\n    Feature record: CXX_FEATURE:1cxx_final\n    Feature record: CXX_FEATURE:1cxx_func_identifier\n    Feature record: CXX_FEATURE:1cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:1cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:1cxx_inline_namespaces\n    Feature record: CXX_FEATURE:1cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:1cxx_local_type_template_args\n    Feature record: CXX_FEATURE:1cxx_long_long_type\n    Feature record: CXX_FEATURE:1cxx_noexcept\n    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:1cxx_nullptr\n    Feature record: CXX_FEATURE:1cxx_override\n    Feature record: CXX_FEATURE:1cxx_range_for\n    Feature record: CXX_FEATURE:1cxx_raw_string_literals\n    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:1cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:1cxx_rvalue_references\n    Feature record: CXX_FEATURE:1cxx_sizeof_member\n    Feature record: CXX_FEATURE:1cxx_static_assert\n    Feature record: CXX_FEATURE:1cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:1cxx_thread_local\n    Feature record: CXX_FEATURE:1cxx_trailing_return_types\n    Feature record: CXX_FEATURE:1cxx_unicode_literals\n    Feature record: CXX_FEATURE:1cxx_uniform_initialization\n    Feature record: CXX_FEATURE:1cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:1cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:1cxx_variadic_macros\n    Feature record: CXX_FEATURE:1cxx_variadic_templates\n\n\nDetecting CXX [-std=c++11] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3107561267/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0039 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3107561267.dir/build.make CMakeFiles/cmTryCompileExec3107561267.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec3107561267.dir/progress.make' has modification time 0.0064 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec3107561267.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++11 -o CMakeFiles/cmTryCompileExec3107561267.dir/feature_tests.cxx.o -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec3107561267\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3107561267.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec3107561267.dir/feature_tests.cxx.o  -o cmTryCompileExec3107561267 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:1cxx_alias_templates\n    Feature record: CXX_FEATURE:1cxx_alignas\n    Feature record: CXX_FEATURE:1cxx_alignof\n    Feature record: CXX_FEATURE:1cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:1cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:1cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:1cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:1cxx_default_function_template_args\n    Feature record: CXX_FEATURE:1cxx_defaulted_functions\n    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:1cxx_delegating_constructors\n    Feature record: CXX_FEATURE:1cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:1cxx_explicit_conversions\n    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:1cxx_extern_templates\n    Feature record: CXX_FEATURE:1cxx_final\n    Feature record: CXX_FEATURE:1cxx_func_identifier\n    Feature record: CXX_FEATURE:1cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:1cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:1cxx_inline_namespaces\n    Feature record: CXX_FEATURE:1cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:1cxx_local_type_template_args\n    Feature record: CXX_FEATURE:1cxx_long_long_type\n    Feature record: CXX_FEATURE:1cxx_noexcept\n    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:1cxx_nullptr\n    Feature record: CXX_FEATURE:1cxx_override\n    Feature record: CXX_FEATURE:1cxx_range_for\n    Feature record: CXX_FEATURE:1cxx_raw_string_literals\n    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:1cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:1cxx_rvalue_references\n    Feature record: CXX_FEATURE:1cxx_sizeof_member\n    Feature record: CXX_FEATURE:1cxx_static_assert\n    Feature record: CXX_FEATURE:1cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:1cxx_thread_local\n    Feature record: CXX_FEATURE:1cxx_trailing_return_types\n    Feature record: CXX_FEATURE:1cxx_unicode_literals\n    Feature record: CXX_FEATURE:1cxx_uniform_initialization\n    Feature record: CXX_FEATURE:1cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:1cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:1cxx_variadic_macros\n    Feature record: CXX_FEATURE:1cxx_variadic_templates\n\n\nDetecting CXX [-std=c++98] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1247648529/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0016 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1247648529.dir/build.make CMakeFiles/cmTryCompileExec1247648529.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec1247648529.dir/progress.make' has modification time 0.0057 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec1247648529.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++98 -o CMakeFiles/cmTryCompileExec1247648529.dir/feature_tests.cxx.o -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec1247648529\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1247648529.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec1247648529.dir/feature_tests.cxx.o  -o cmTryCompileExec1247648529 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:0cxx_alias_templates\n    Feature record: CXX_FEATURE:0cxx_alignas\n    Feature record: CXX_FEATURE:0cxx_alignof\n    Feature record: CXX_FEATURE:0cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:0cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:0cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:0cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:0cxx_default_function_template_args\n    Feature record: CXX_FEATURE:0cxx_defaulted_functions\n    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:0cxx_delegating_constructors\n    Feature record: CXX_FEATURE:0cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:0cxx_explicit_conversions\n    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:0cxx_extern_templates\n    Feature record: CXX_FEATURE:0cxx_final\n    Feature record: CXX_FEATURE:0cxx_func_identifier\n    Feature record: CXX_FEATURE:0cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:0cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:0cxx_inline_namespaces\n    Feature record: CXX_FEATURE:0cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:0cxx_local_type_template_args\n    Feature record: CXX_FEATURE:0cxx_long_long_type\n    Feature record: CXX_FEATURE:0cxx_noexcept\n    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:0cxx_nullptr\n    Feature record: CXX_FEATURE:0cxx_override\n    Feature record: CXX_FEATURE:0cxx_range_for\n    Feature record: CXX_FEATURE:0cxx_raw_string_literals\n    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:0cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:0cxx_rvalue_references\n    Feature record: CXX_FEATURE:0cxx_sizeof_member\n    Feature record: CXX_FEATURE:0cxx_static_assert\n    Feature record: CXX_FEATURE:0cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:0cxx_thread_local\n    Feature record: CXX_FEATURE:0cxx_trailing_return_types\n    Feature record: CXX_FEATURE:0cxx_unicode_literals\n    Feature record: CXX_FEATURE:0cxx_uniform_initialization\n    Feature record: CXX_FEATURE:0cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:0cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:0cxx_variadic_macros\n    Feature record: CXX_FEATURE:0cxx_variadic_templates\nDetermining if files pthread.h exist passed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2326696968/fast\"\ngmake: Warning: File `Makefile' has modification time 0.011 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2326696968.dir/build.make CMakeFiles/cmTryCompileExec2326696968.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec2326696968.dir/flags.make' has modification time 0.0062 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec2326696968.dir/CheckIncludeFiles.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec2326696968.dir/CheckIncludeFiles.c.o   -c /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CheckIncludeFiles.c\nLinking C executable cmTryCompileExec2326696968\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2326696968.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec2326696968.dir/CheckIncludeFiles.c.o  -o cmTryCompileExec2326696968 -rdynamic \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\nDetermining if the function pthread_create exists in the pthread passed with the following output:\nChange Dir: /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1176357958/fast\"\ngmake: Warning: File `Makefile' has modification time 0.0093 s in the future\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1176357958.dir/build.make CMakeFiles/cmTryCompileExec1176357958.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake[1]: Warning: File `CMakeFiles/cmTryCompileExec1176357958.dir/flags.make' has modification time 0.0059 s in the future\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1176357958.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec1176357958.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec1176357958\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1176357958.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec1176357958.dir/CheckFunctionExists.c.o  -o cmTryCompileExec1176357958 -rdynamic -lpthread \ngmake[1]: warning:  Clock skew detected.  Your build may be incomplete.\ngmake[1]: Leaving directory `/home/yzhang4/HD/home/liwen/Documents/NMSLIB/nmslib-1.5.1/similarity_search/CMakeFiles/CMakeTmp'\ngmake: warning:  Clock skew detected.  Your build may be incomplete.\n\n\nDetermining if files pthread.h exist passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3784435972/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3784435972.dir/build.make CMakeFiles/cmTryCompileExec3784435972.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3784435972.dir/CheckIncludeFiles.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec3784435972.dir/CheckIncludeFiles.c.o   -c /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CheckIncludeFiles.c\nLinking C executable cmTryCompileExec3784435972\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3784435972.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec3784435972.dir/CheckIncludeFiles.c.o  -o cmTryCompileExec3784435972 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n\n\nDetermining if the function pthread_create exists in the pthread passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1739529121/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1739529121.dir/build.make CMakeFiles/cmTryCompileExec1739529121.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1739529121.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec1739529121.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec1739529121\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1739529121.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec1739529121.dir/CheckFunctionExists.c.o  -o cmTryCompileExec1739529121 -rdynamic -lpthread \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/CMakeFiles/CMakeTmp'\n\n\nDetermining if files pthread.h exist passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2023778701/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2023778701.dir/build.make CMakeFiles/cmTryCompileExec2023778701.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec2023778701.dir/CheckIncludeFiles.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec2023778701.dir/CheckIncludeFiles.c.o   -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CheckIncludeFiles.c\nLinking C executable cmTryCompileExec2023778701\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2023778701.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec2023778701.dir/CheckIncludeFiles.c.o  -o cmTryCompileExec2023778701 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n\n\nDetermining if the function pthread_create exists in the pthread passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec625074925/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec625074925.dir/build.make CMakeFiles/cmTryCompileExec625074925.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec625074925.dir/CheckFunctionExists.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec625074925.dir/CheckFunctionExists.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckFunctionExists.c\nLinking C executable cmTryCompileExec625074925\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec625074925.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec625074925.dir/CheckFunctionExists.c.o  -o cmTryCompileExec625074925 -rdynamic -lpthread \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/CMakeTmp'\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/Makefile.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# The generator used is:\nset(CMAKE_DEPENDS_GENERATOR \"Unix Makefiles\")\n\n# The top level Makefile was generated from the following files:\nset(CMAKE_MAKEFILE_DEPENDS\n  \"CMakeCache.txt\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCommonLanguageInclude.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeGenericSystem.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeParseArguments.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeSystemSpecificInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeSystemSpecificInitialize.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckIncludeFiles.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckLibraryExists.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CheckSymbolExists.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU-C.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU-CXX.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindBoost.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindPackageMessage.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindThreads.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU-C.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU-CXX.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/UnixPaths.cmake\"\n  \"CMakeFiles/3.2.3/CMakeCCompiler.cmake\"\n  \"CMakeFiles/3.2.3/CMakeCXXCompiler.cmake\"\n  \"CMakeFiles/3.2.3/CMakeSystem.cmake\"\n  \"CMakeLists.txt\"\n  \"FindEigen3.cmake\"\n  \"FindGSL.cmake\"\n  \"lshkit/CMakeLists.txt\"\n  \"src/CMakeLists.txt\"\n  \"test/CMakeLists.txt\"\n  \"/usr/lib64/boost/BoostConfigVersion.cmake\"\n  )\n\n# The corresponding makefile is:\nset(CMAKE_MAKEFILE_OUTPUTS\n  \"Makefile\"\n  \"CMakeFiles/cmake.check_cache\"\n  )\n\n# Byproducts of CMake generate step:\nset(CMAKE_MAKEFILE_PRODUCTS\n  \"CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"lshkit/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"src/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"test/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  )\n\n# Dependency information for all targets:\nset(CMAKE_DEPEND_INFO_FILES\n  \"lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  \"src/CMakeFiles/tune_vptree.dir/DependInfo.cmake\"\n  \"src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"src/CMakeFiles/dummy_app.dir/DependInfo.cmake\"\n  \"src/CMakeFiles/experiment.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/test_clust.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/test_integr.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/bench_projection.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/bench_distfunc.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/report_intr_dim.dir/DependInfo.cmake\"\n  \"test/CMakeFiles/bunit.dir/DependInfo.cmake\"\n  )\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/Makefile2",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# The main recursive all target\nall:\n.PHONY : all\n\n# The main recursive preinstall target\npreinstall:\n.PHONY : preinstall\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n#=============================================================================\n# Directory level rules for directory lshkit\n\n# Convenience name for \"all\" pass in the directory.\nlshkit/all: lshkit/CMakeFiles/lshkit.dir/all\n.PHONY : lshkit/all\n\n# Convenience name for \"clean\" pass in the directory.\nlshkit/clean: lshkit/CMakeFiles/lshkit.dir/clean\n.PHONY : lshkit/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nlshkit/preinstall:\n.PHONY : lshkit/preinstall\n\n#=============================================================================\n# Target rules for target lshkit/CMakeFiles/lshkit.dir\n\n# All Build rule for target.\nlshkit/CMakeFiles/lshkit.dir/all:\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/depend\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  80 81 82 83 84 85\n\t@echo \"Built target lshkit\"\n.PHONY : lshkit/CMakeFiles/lshkit.dir/all\n\n# Include target in all.\nall: lshkit/CMakeFiles/lshkit.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nlshkit/CMakeFiles/lshkit.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 6\n\t$(MAKE) -f CMakeFiles/Makefile2 lshkit/CMakeFiles/lshkit.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : lshkit/CMakeFiles/lshkit.dir/rule\n\n# Convenience name for target.\nlshkit: lshkit/CMakeFiles/lshkit.dir/rule\n.PHONY : lshkit\n\n# clean rule for target.\nlshkit/CMakeFiles/lshkit.dir/clean:\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/clean\n.PHONY : lshkit/CMakeFiles/lshkit.dir/clean\n\n# clean rule for target.\nclean: lshkit/CMakeFiles/lshkit.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Directory level rules for directory src\n\n# Convenience name for \"all\" pass in the directory.\nsrc/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\nsrc/all: src/CMakeFiles/dummy_app.dir/all\nsrc/all: src/CMakeFiles/experiment.dir/all\nsrc/all: src/CMakeFiles/tune_vptree.dir/all\n.PHONY : src/all\n\n# Convenience name for \"clean\" pass in the directory.\nsrc/clean: src/CMakeFiles/NonMetricSpaceLib.dir/clean\nsrc/clean: src/CMakeFiles/dummy_app.dir/clean\nsrc/clean: src/CMakeFiles/experiment.dir/clean\nsrc/clean: src/CMakeFiles/tune_vptree.dir/clean\n.PHONY : src/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nsrc/preinstall:\n.PHONY : src/preinstall\n\n#=============================================================================\n# Target rules for target src/CMakeFiles/NonMetricSpaceLib.dir\n\n# All Build rule for target.\nsrc/CMakeFiles/NonMetricSpaceLib.dir/all: lshkit/CMakeFiles/lshkit.dir/all\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/depend\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64\n\t@echo \"Built target NonMetricSpaceLib\"\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/all\n\n# Include target in all.\nall: src/CMakeFiles/NonMetricSpaceLib.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 70\n\t$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/rule\n\n# Convenience name for target.\nNonMetricSpaceLib: src/CMakeFiles/NonMetricSpaceLib.dir/rule\n.PHONY : NonMetricSpaceLib\n\n# clean rule for target.\nsrc/CMakeFiles/NonMetricSpaceLib.dir/clean:\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/clean\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/clean\n\n# clean rule for target.\nclean: src/CMakeFiles/NonMetricSpaceLib.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/CMakeFiles/dummy_app.dir\n\n# All Build rule for target.\nsrc/CMakeFiles/dummy_app.dir/all: lshkit/CMakeFiles/lshkit.dir/all\nsrc/CMakeFiles/dummy_app.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/depend\n\t$(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  78\n\t@echo \"Built target dummy_app\"\n.PHONY : src/CMakeFiles/dummy_app.dir/all\n\n# Include target in all.\nall: src/CMakeFiles/dummy_app.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/CMakeFiles/dummy_app.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/dummy_app.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : src/CMakeFiles/dummy_app.dir/rule\n\n# Convenience name for target.\ndummy_app: src/CMakeFiles/dummy_app.dir/rule\n.PHONY : dummy_app\n\n# clean rule for target.\nsrc/CMakeFiles/dummy_app.dir/clean:\n\t$(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/clean\n.PHONY : src/CMakeFiles/dummy_app.dir/clean\n\n# clean rule for target.\nclean: src/CMakeFiles/dummy_app.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/CMakeFiles/experiment.dir\n\n# All Build rule for target.\nsrc/CMakeFiles/experiment.dir/all: lshkit/CMakeFiles/lshkit.dir/all\nsrc/CMakeFiles/experiment.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/depend\n\t$(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  79\n\t@echo \"Built target experiment\"\n.PHONY : src/CMakeFiles/experiment.dir/all\n\n# Include target in all.\nall: src/CMakeFiles/experiment.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/CMakeFiles/experiment.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/experiment.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : src/CMakeFiles/experiment.dir/rule\n\n# Convenience name for target.\nexperiment: src/CMakeFiles/experiment.dir/rule\n.PHONY : experiment\n\n# clean rule for target.\nsrc/CMakeFiles/experiment.dir/clean:\n\t$(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/clean\n.PHONY : src/CMakeFiles/experiment.dir/clean\n\n# clean rule for target.\nclean: src/CMakeFiles/experiment.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/CMakeFiles/tune_vptree.dir\n\n# All Build rule for target.\nsrc/CMakeFiles/tune_vptree.dir/all: lshkit/CMakeFiles/lshkit.dir/all\nsrc/CMakeFiles/tune_vptree.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/depend\n\t$(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  89\n\t@echo \"Built target tune_vptree\"\n.PHONY : src/CMakeFiles/tune_vptree.dir/all\n\n# Include target in all.\nall: src/CMakeFiles/tune_vptree.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/CMakeFiles/tune_vptree.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/tune_vptree.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : src/CMakeFiles/tune_vptree.dir/rule\n\n# Convenience name for target.\ntune_vptree: src/CMakeFiles/tune_vptree.dir/rule\n.PHONY : tune_vptree\n\n# clean rule for target.\nsrc/CMakeFiles/tune_vptree.dir/clean:\n\t$(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/clean\n.PHONY : src/CMakeFiles/tune_vptree.dir/clean\n\n# clean rule for target.\nclean: src/CMakeFiles/tune_vptree.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Directory level rules for directory test\n\n# Convenience name for \"all\" pass in the directory.\ntest/all: test/CMakeFiles/bench_distfunc.dir/all\ntest/all: test/CMakeFiles/bench_projection.dir/all\ntest/all: test/CMakeFiles/bunit.dir/all\ntest/all: test/CMakeFiles/report_intr_dim.dir/all\ntest/all: test/CMakeFiles/test_clust.dir/all\ntest/all: test/CMakeFiles/test_integr.dir/all\n.PHONY : test/all\n\n# Convenience name for \"clean\" pass in the directory.\ntest/clean: test/CMakeFiles/bench_distfunc.dir/clean\ntest/clean: test/CMakeFiles/bench_projection.dir/clean\ntest/clean: test/CMakeFiles/bunit.dir/clean\ntest/clean: test/CMakeFiles/report_intr_dim.dir/clean\ntest/clean: test/CMakeFiles/test_clust.dir/clean\ntest/clean: test/CMakeFiles/test_integr.dir/clean\n.PHONY : test/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\ntest/preinstall:\n.PHONY : test/preinstall\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/bench_distfunc.dir\n\n# All Build rule for target.\ntest/CMakeFiles/bench_distfunc.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/bench_distfunc.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/depend\n\t$(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  65\n\t@echo \"Built target bench_distfunc\"\n.PHONY : test/CMakeFiles/bench_distfunc.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/bench_distfunc.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/bench_distfunc.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bench_distfunc.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/bench_distfunc.dir/rule\n\n# Convenience name for target.\nbench_distfunc: test/CMakeFiles/bench_distfunc.dir/rule\n.PHONY : bench_distfunc\n\n# clean rule for target.\ntest/CMakeFiles/bench_distfunc.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/clean\n.PHONY : test/CMakeFiles/bench_distfunc.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/bench_distfunc.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/bench_projection.dir\n\n# All Build rule for target.\ntest/CMakeFiles/bench_projection.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/bench_projection.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/depend\n\t$(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  66\n\t@echo \"Built target bench_projection\"\n.PHONY : test/CMakeFiles/bench_projection.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/bench_projection.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/bench_projection.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bench_projection.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/bench_projection.dir/rule\n\n# Convenience name for target.\nbench_projection: test/CMakeFiles/bench_projection.dir/rule\n.PHONY : bench_projection\n\n# clean rule for target.\ntest/CMakeFiles/bench_projection.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/clean\n.PHONY : test/CMakeFiles/bench_projection.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/bench_projection.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/bunit.dir\n\n# All Build rule for target.\ntest/CMakeFiles/bunit.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/bunit.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/depend\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  67 68 69 70 71 72 73 74 75 76 77\n\t@echo \"Built target bunit\"\n.PHONY : test/CMakeFiles/bunit.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/bunit.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/bunit.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 81\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bunit.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/bunit.dir/rule\n\n# Convenience name for target.\nbunit: test/CMakeFiles/bunit.dir/rule\n.PHONY : bunit\n\n# clean rule for target.\ntest/CMakeFiles/bunit.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/clean\n.PHONY : test/CMakeFiles/bunit.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/bunit.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/report_intr_dim.dir\n\n# All Build rule for target.\ntest/CMakeFiles/report_intr_dim.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/report_intr_dim.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/depend\n\t$(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  86\n\t@echo \"Built target report_intr_dim\"\n.PHONY : test/CMakeFiles/report_intr_dim.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/report_intr_dim.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/report_intr_dim.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/report_intr_dim.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/report_intr_dim.dir/rule\n\n# Convenience name for target.\nreport_intr_dim: test/CMakeFiles/report_intr_dim.dir/rule\n.PHONY : report_intr_dim\n\n# clean rule for target.\ntest/CMakeFiles/report_intr_dim.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/clean\n.PHONY : test/CMakeFiles/report_intr_dim.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/report_intr_dim.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/test_clust.dir\n\n# All Build rule for target.\ntest/CMakeFiles/test_clust.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/test_clust.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/depend\n\t$(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  87\n\t@echo \"Built target test_clust\"\n.PHONY : test/CMakeFiles/test_clust.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/test_clust.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/test_clust.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/test_clust.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/test_clust.dir/rule\n\n# Convenience name for target.\ntest_clust: test/CMakeFiles/test_clust.dir/rule\n.PHONY : test_clust\n\n# clean rule for target.\ntest/CMakeFiles/test_clust.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/clean\n.PHONY : test/CMakeFiles/test_clust.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/test_clust.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target test/CMakeFiles/test_integr.dir\n\n# All Build rule for target.\ntest/CMakeFiles/test_integr.dir/all: lshkit/CMakeFiles/lshkit.dir/all\ntest/CMakeFiles/test_integr.dir/all: src/CMakeFiles/NonMetricSpaceLib.dir/all\n\t$(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/depend\n\t$(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles  88\n\t@echo \"Built target test_integr\"\n.PHONY : test/CMakeFiles/test_integr.dir/all\n\n# Include target in all.\nall: test/CMakeFiles/test_integr.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\ntest/CMakeFiles/test_integr.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 71\n\t$(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/test_integr.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : test/CMakeFiles/test_integr.dir/rule\n\n# Convenience name for target.\ntest_integr: test/CMakeFiles/test_integr.dir/rule\n.PHONY : test_integr\n\n# clean rule for target.\ntest/CMakeFiles/test_integr.dir/clean:\n\t$(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/clean\n.PHONY : test/CMakeFiles/test_integr.dir/clean\n\n# clean rule for target.\nclean: test/CMakeFiles/test_integr.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/TargetDirectories.txt",
    "content": "/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/cmake.check_cache",
    "content": "# This file is generated by cmake for dependency checking of the CMakeCache.txt file\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/feature_tests.c",
    "content": "\n  const char features[] = {\"\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404\n\"1\"\n#else\n\"0\"\n#endif\n\"c_function_prototypes\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_restrict\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_static_assert\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_variadic_macros\\n\"\n\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/feature_tests.cxx",
    "content": "\n  const char features[] = {\"\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_aggregate_default_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alias_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alignas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alignof\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_attributes\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_attribute_deprecated\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_auto_type\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_binary_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_constexpr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_contextual_conversions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype_auto\\n\"\n\"CXX_FEATURE:\"\n#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype_incomplete_return_types\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_default_function_template_args\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_defaulted_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_defaulted_move_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_delegating_constructors\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_deleted_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_digit_separators\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_enum_forward_declarations\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_explicit_conversions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_extended_friend_declarations\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_extern_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_final\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_func_identifier\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_generalized_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_generic_lambdas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_inheriting_constructors\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_inline_namespaces\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_lambdas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_lambda_init_captures\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_local_type_template_args\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_long_long_type\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_noexcept\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_nonstatic_member_init\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_nullptr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_override\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_range_for\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_raw_string_literals\\n\"\n\"CXX_FEATURE:\"\n#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_reference_qualified_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_relaxed_constexpr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_return_type_deduction\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_right_angle_brackets\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_rvalue_references\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_sizeof_member\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_static_assert\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_strong_enums\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_template_template_parameters\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_thread_local\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_trailing_return_types\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_unicode_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_uniform_initialization\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_unrestricted_unions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_user_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variable_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variadic_macros\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variadic_templates\\n\"\n\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeFiles/progress.marks",
    "content": "89\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeLists.txt",
    "content": "#\n# Non-metric Space Library\n#\n# Authors: Bilegsaikhan Naidan, Leonid Boytsov.\n#\n# This code is released under the\n# Apache License Version 2.0 http://www.apache.org/licenses/.\n#\n#\n\ncmake_minimum_required (VERSION 2.8)\n\nproject (NonMetricSpaceLib)\n\n#\n# Runs compiler with \"-dumpversion\" and parses major/minor\n# version with a regex.\n#\n# Taken&Modified from Boost.cmake\n#\nfunction(CXX_COMPILER_DUMPVERSION _OUTPUT_VERSION)\n\n  exec_program(${CMAKE_CXX_COMPILER}\n    ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion\n    OUTPUT_VARIABLE COMPILER_VERSION\n  )\n  #string(REGEX REPLACE \"([0-9])\\\\.([0-9])(\\\\.[0-9])?\" \"\\\\1\\\\2\"\n  #   COMPILER_VERSION ${COMPILER_VERSION})\n\n  set(${_OUTPUT_VERSION} ${COMPILER_VERSION} PARENT_SCOPE)\nendfunction()\n\nif(NOT WIN32)\n    CXX_COMPILER_DUMPVERSION(CXX_COMPILER_VERSION)\nendif()\n#message(FATAL_ERROR \"stopping... compiler version is: ${CMAKE_CXX_COMPILER_ID} ${CXX_COMPILER_VERSION}\")\n\n\nif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"GNU\")\n    # require at least gcc 4.7\n    if (CXX_COMPILER_VERSION VERSION_LESS 4.7)\n        message(FATAL_ERROR \"GCC version must be at least 4.7!\")\n    endif()\n    # Uncomment the following lines to see how the code compiles without AVX,SSE4.2 and/or SSE2\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -march=x86-64\")\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -march=core2\")\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -msse4.2\")\n    set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic\") #-Ofast -fopenmp\n    set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic\")\nelseif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Intel\")\n    if (CXX_COMPILER_VERSION VERSION_LESS 14.0.1)\n        message(FATAL_ERROR \"Intel version must be at least 14.0.1!\")\n    endif()\n    set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -O3 -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X  -march=native -fpic\")\n    set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -ggdb  -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X  -march=native -fpic\")\nelseif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\")\n    if (CXX_COMPILER_VERSION VERSION_LESS 4.2.1)\n        message(FATAL_ERROR \"Clang version must be at least 3.4 (GCC >= 4.2.1 equivalent)!\")\n    endif()\n    if (CMAKE_SYSTEM_NAME MATCHES Darwin)\n        # MACOSX\n        set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -DNDEBUG -std=c++11 -DHAVE_CXX0X -fpic\")\n        set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -DNDEBUG -std=c++11 -DHAVE_CXX0X -fpic\")\n        set (WITHOUT_LSH YES)\n        set (WITHOUT_SIMD YES)\n    else()\n        set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -fpic\")\n        set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -fpic\")\n    endif()\n    #message(FATAL_ERROR \"CLANG ${CMAKE_SYSTEM_NAME}\")\nelseif(WIN32)\n    # TODO add support for later versions?\n    if(NOT MSVC12)\n         message(FATAL_ERROR \"On Windows, only MSVC version 12 is supported!\") \n    endif()\n    set (WITHOUT_LSH YES)\nelse ()\n    message(FATAL_ERROR \"Please, use GCC, Clang, or the Intel compiler!\")\nendif()\n\nif (WITHOUT_LSH)\n    message(STATUS \"Will build without LSH\")\n    add_definitions (-DWITHOUT_LSH=1)\nendif()\n\nif (WITHOUT_SIMD)\n    message(STATUS \"Will build without SIMD\")\n    add_definitions (-DWITHOUT_SIMD=1)\nendif()\n\n\nif (NOT CMAKE_BUILD_TYPE)\n    set (CMAKE_BUILD_TYPE Release CACHE STRING \"Build types: Release Debug\" FORCE)\nendif (NOT CMAKE_BUILD_TYPE)\nmessage (STATUS \"Build type: ${CMAKE_BUILD_TYPE}\")\n\nset (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})\n\n# GSL is needed by lshkit, yet NO lshkit for Win32 and MACOSX \nif ((NOT WITHOUT_LSH) AND (NOT WIN32))\n  find_package (GSL REQUIRED)\n  if (GSL_FOUND)\n      message (STATUS \"Found GSL.\")\n      include_directories (${GSL_INCLUDE_DIRS} ${GSLCBLAS_INCLUDE_DIRS})\n      set (LIBS ${LIBS} ${GSL_LIBRARIES} ${GSLCBLAS_LIBRARIES})\n  else (GSL_FOUND)\n      message (FATAL_ERROR \"Could not locate GSL.\")\n  endif (GSL_FOUND)\n\n  include_directories (${PROJECT_SOURCE_DIR}/lshkit/include)\n  add_subdirectory (lshkit)\nendif()\n\nfind_package(Eigen3 3 REQUIRED)\nif (EIGEN3_FOUND)\n  message (STATUS \"Found Eigen3.\")\n  include_directories (${EIGEN3_INCLUDE_DIR})\nelse ()\n  message (FATAL_ERROR \"Could not locate Eigen3.\")\nendif ()\n\n# Can be used to hardwire boost location.\n#set (BOOST_ROOT $ENV{HOME}/boost_1_48_0)\n#set (Boost_INCLUDE_DIR ${BOOST_ROOT})\n#set (Boost_LIBRARY_DIR ${BOOST_ROOT}/stage/lib)\n\nfind_package (Boost 1.48 COMPONENTS system filesystem program_options REQUIRED)\n\nif (Boost_FOUND)\n  message (STATUS \"Found BOOST.\")\n  include_directories (${Boost_INCLUDE_DIR})\n  include_directories (${PROJECT_SOURCE_DIR}/lshkit/include ${PROJECT_SOURCE_DIR}/src ${Boost_INCLUDE_DIR})\n  link_directories (${Boost_LIBRARY_DIR})\nelse ()\n  message (FATAL_ERROR \"Could not locate BOOST.\")\nendif ()\n\nadd_subdirectory (src)\nadd_subdirectory (test)\n\nmessage (STATUS \"Compiler: ${CMAKE_CXX_COMPILER_ID} ${CXX_COMPILER_VERSION}\")\n"
  },
  {
    "path": "algorithms/NMSLIB/code/CMakeLists.txt~",
    "content": "#\n# Non-metric Space Library\n#\n# Authors: Bilegsaikhan Naidan, Leonid Boytsov.\n#\n# This code is released under the\n# Apache License Version 2.0 http://www.apache.org/licenses/.\n#\n#\n\ncmake_minimum_required (VERSION 2.8)\n\nproject (NonMetricSpaceLib)\n\n#\n# Runs compiler with \"-dumpversion\" and parses major/minor\n# version with a regex.\n#\n# Taken&Modified from Boost.cmake\n#\nfunction(CXX_COMPILER_DUMPVERSION _OUTPUT_VERSION)\n\n  exec_program(${CMAKE_CXX_COMPILER}\n    ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion\n    OUTPUT_VARIABLE COMPILER_VERSION\n  )\n  #string(REGEX REPLACE \"([0-9])\\\\.([0-9])(\\\\.[0-9])?\" \"\\\\1\\\\2\"\n  #   COMPILER_VERSION ${COMPILER_VERSION})\n\n  set(${_OUTPUT_VERSION} ${COMPILER_VERSION} PARENT_SCOPE)\nendfunction()\n\nif(NOT WIN32)\n    CXX_COMPILER_DUMPVERSION(CXX_COMPILER_VERSION)\nendif()\n#message(FATAL_ERROR \"stopping... compiler version is: ${CMAKE_CXX_COMPILER_ID} ${CXX_COMPILER_VERSION}\")\n\n\nif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"GNU\")\n    # require at least gcc 4.7\n    if (CXX_COMPILER_VERSION VERSION_LESS 4.7)\n        message(FATAL_ERROR \"GCC version must be at least 4.7!\")\n    endif()\n    # Uncomment the following lines to see how the code compiles without AVX,SSE4.2 and/or SSE2\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -march=x86-64\")\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -march=core2\")\n    #set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Ofast -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -fopenmp -fpic -msse4.2\")\n    set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic\") #-Ofast -fopenmp\n    set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -lm -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic\")\nelseif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Intel\")\n    if (CXX_COMPILER_VERSION VERSION_LESS 14.0.1)\n        message(FATAL_ERROR \"Intel version must be at least 14.0.1!\")\n    endif()\n    set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -O3 -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X  -march=native -fpic\")\n    set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -ggdb  -lrt -DNDEBUG -std=c++11 -DHAVE_CXX0X  -march=native -fpic\")\nelseif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\")\n    if (CXX_COMPILER_VERSION VERSION_LESS 4.2.1)\n        message(FATAL_ERROR \"Clang version must be at least 3.4 (GCC >= 4.2.1 equivalent)!\")\n    endif()\n    if (CMAKE_SYSTEM_NAME MATCHES Darwin)\n        # MACOSX\n        set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -DNDEBUG -std=c++11 -DHAVE_CXX0X -fpic\")\n        set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -DNDEBUG -std=c++11 -DHAVE_CXX0X -fpic\")\n        set (WITHOUT_LSH YES)\n        set (WITHOUT_SIMD YES)\n    else()\n        set (CMAKE_CXX_FLAGS_RELEASE \"-Wall -Wunreachable-code -Wcast-align -O3 -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -fpic\")\n        set (CMAKE_CXX_FLAGS_DEBUG   \"-Wall -Wunreachable-code -Wcast-align -ggdb  -DNDEBUG -std=c++11 -DHAVE_CXX0X -march=native -fpic\")\n    endif()\n    #message(FATAL_ERROR \"CLANG ${CMAKE_SYSTEM_NAME}\")\nelseif(WIN32)\n    # TODO add support for later versions?\n    if(NOT MSVC12)\n         message(FATAL_ERROR \"On Windows, only MSVC version 12 is supported!\") \n    endif()\n    set (WITHOUT_LSH YES)\nelse ()\n    message(FATAL_ERROR \"Please, use GCC, Clang, or the Intel compiler!\")\nendif()\n\nif (WITHOUT_LSH)\n    message(STATUS \"Will build without LSH\")\n    add_definitions (-DWITHOUT_LSH=1)\nendif()\n\nif (WITHOUT_SIMD)\n    message(STATUS \"Will build without SIMD\")\n    add_definitions (-DWITHOUT_SIMD=1)\nendif()\n\n\nif (NOT CMAKE_BUILD_TYPE)\n    set (CMAKE_BUILD_TYPE Release CACHE STRING \"Build types: Release Debug\" FORCE)\nendif (NOT CMAKE_BUILD_TYPE)\nmessage (STATUS \"Build type: ${CMAKE_BUILD_TYPE}\")\n\nset (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})\n\n# GSL is needed by lshkit, yet NO lshkit for Win32 and MACOSX \nif ((NOT WITHOUT_LSH) AND (NOT WIN32))\n  find_package (GSL REQUIRED)\n  if (GSL_FOUND)\n      message (STATUS \"Found GSL.\")\n      include_directories (${GSL_INCLUDE_DIRS} ${GSLCBLAS_INCLUDE_DIRS})\n      set (LIBS ${LIBS} ${GSL_LIBRARIES} ${GSLCBLAS_LIBRARIES})\n  else (GSL_FOUND)\n      message (FATAL_ERROR \"Could not locate GSL.\")\n  endif (GSL_FOUND)\n\n  include_directories (${PROJECT_SOURCE_DIR}/lshkit/include)\n  add_subdirectory (lshkit)\nendif()\n\nfind_package(Eigen3 3 REQUIRED)\nif (EIGEN3_FOUND)\n  message (STATUS \"Found Eigen3.\")\n  include_directories (${EIGEN3_INCLUDE_DIR})\nelse ()\n  message (FATAL_ERROR \"Could not locate Eigen3.\")\nendif ()\n\n# Can be used to hardwire boost location.\n#set (BOOST_ROOT $ENV{HOME}/boost_1_48_0)\n#set (Boost_INCLUDE_DIR ${BOOST_ROOT})\n#set (Boost_LIBRARY_DIR ${BOOST_ROOT}/stage/lib)\n\nfind_package (Boost 1.48 COMPONENTS system filesystem program_options REQUIRED)\n\nif (Boost_FOUND)\n  message (STATUS \"Found BOOST.\")\n  include_directories (${Boost_INCLUDE_DIR})\n  include_directories (${PROJECT_SOURCE_DIR}/lshkit/include ${PROJECT_SOURCE_DIR}/src ${Boost_INCLUDE_DIR})\n  link_directories (${Boost_LIBRARY_DIR})\nelse ()\n  message (FATAL_ERROR \"Could not locate BOOST.\")\nendif ()\n\nadd_subdirectory (src)\nadd_subdirectory (test)\n\nmessage (STATUS \"Compiler: ${CMAKE_CXX_COMPILER_ID} ${CXX_COMPILER_VERSION}\")\n"
  },
  {
    "path": "algorithms/NMSLIB/code/FindEigen3.cmake",
    "content": "# - Try to find Eigen3 lib\n#\n# This module supports requiring a minimum version, e.g. you can do\n#   find_package(Eigen3 3.1.2)\n# to require version 3.1.2 or newer of Eigen3.\n#\n# Once done this will define\n#\n#  EIGEN3_FOUND - system has eigen lib with correct version\n#  EIGEN3_INCLUDE_DIR - the eigen include directory\n#  EIGEN3_VERSION - eigen version\n\n# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>\n# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>\n# Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>\n# Redistribution and use is allowed according to the terms of the 2-clause BSD license.\n\nif(NOT Eigen3_FIND_VERSION)\n  if(NOT Eigen3_FIND_VERSION_MAJOR)\n    set(Eigen3_FIND_VERSION_MAJOR 2)\n  endif(NOT Eigen3_FIND_VERSION_MAJOR)\n  if(NOT Eigen3_FIND_VERSION_MINOR)\n    set(Eigen3_FIND_VERSION_MINOR 91)\n  endif(NOT Eigen3_FIND_VERSION_MINOR)\n  if(NOT Eigen3_FIND_VERSION_PATCH)\n    set(Eigen3_FIND_VERSION_PATCH 0)\n  endif(NOT Eigen3_FIND_VERSION_PATCH)\n\n  set(Eigen3_FIND_VERSION \"${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}\")\nendif(NOT Eigen3_FIND_VERSION)\n\nmacro(_eigen3_check_version)\n  file(READ \"${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h\" _eigen3_version_header)\n\n  string(REGEX MATCH \"define[ \\t]+EIGEN_WORLD_VERSION[ \\t]+([0-9]+)\" _eigen3_world_version_match \"${_eigen3_version_header}\")\n  set(EIGEN3_WORLD_VERSION \"${CMAKE_MATCH_1}\")\n  string(REGEX MATCH \"define[ \\t]+EIGEN_MAJOR_VERSION[ \\t]+([0-9]+)\" _eigen3_major_version_match \"${_eigen3_version_header}\")\n  set(EIGEN3_MAJOR_VERSION \"${CMAKE_MATCH_1}\")\n  string(REGEX MATCH \"define[ \\t]+EIGEN_MINOR_VERSION[ \\t]+([0-9]+)\" _eigen3_minor_version_match \"${_eigen3_version_header}\")\n  set(EIGEN3_MINOR_VERSION \"${CMAKE_MATCH_1}\")\n\n  set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION})\n  if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})\n    set(EIGEN3_VERSION_OK FALSE)\n  else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})\n    set(EIGEN3_VERSION_OK TRUE)\n  endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION})\n\n  if(NOT EIGEN3_VERSION_OK)\n\n    message(STATUS \"Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, \"\n                   \"but at least version ${Eigen3_FIND_VERSION} is required\")\n  endif(NOT EIGEN3_VERSION_OK)\nendmacro(_eigen3_check_version)\n\nif (EIGEN3_INCLUDE_DIR)\n\n  # in cache already\n  _eigen3_check_version()\n  set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})\n\nelse (EIGEN3_INCLUDE_DIR)\n\n  find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library\n      PATHS\n      ${CMAKE_INSTALL_PREFIX}/include\n      ${KDE4_INCLUDE_DIR}\n      PATH_SUFFIXES eigen3 eigen\n    )\n\n  if(EIGEN3_INCLUDE_DIR)\n    _eigen3_check_version()\n  endif(EIGEN3_INCLUDE_DIR)\n\n  include(FindPackageHandleStandardArgs)\n  find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)\n\n  mark_as_advanced(EIGEN3_INCLUDE_DIR)\n\nendif(EIGEN3_INCLUDE_DIR)\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/FindGSL.cmake",
    "content": "# Try to find gnu scientific library GSL\n# See \n# http://www.gnu.org/software/gsl/  and \n# http://gnuwin32.sourceforge.net/packages/gsl.htm\n#\n# Once run this will define: \n# \n# GSL_FOUND       = system has GSL lib\n#\n# GSL_LIBRARIES   = full path to the libraries\n#    on Unix/Linux with additional linker flags from \"gsl-config --libs\"\n# \n# CMAKE_GSL_CXX_FLAGS  = Unix compiler flags for GSL, essentially \"`gsl-config --cxxflags`\"\n#\n# GSL_INCLUDE_DIR      = where to find headers \n#\n# GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix\n# GSL_EXE_LINKER_FLAGS = rpath on Unix\n#\n# Felix Woelk 07/2004\n# Jan Woetzel\n#\n# www.mip.informatik.uni-kiel.de\n# --------------------------------\n\nIF(WIN32)\n  # JW tested with gsl-1.8, Windows XP, MSVS 7.1, MSVS 8.0\n  SET(GSL_POSSIBLE_ROOT_DIRS\n    ${GSL_ROOT_DIR}\n    $ENV{GSL_ROOT_DIR}\n    ${GSL_DIR}\n    ${GSL_HOME}    \n    $ENV{GSL_DIR}\n    $ENV{GSL_HOME}\n    $ENV{EXTERN_LIBS_DIR}/gsl\n    $ENV{EXTRA}\n    # \"C:/home/jw/source2/gsl-1.8\"\n    )\n  FIND_PATH(GSL_INCLUDE_DIR\n    NAMES gsl/gsl_cdf.h gsl/gsl_randist.h\n    PATHS ${GSL_POSSIBLE_ROOT_DIRS}\n    PATH_SUFFIXES include\n    DOC \"GSL header include dir\"\n    )\n  \n  FIND_LIBRARY(GSL_GSL_LIBRARY\n    NAMES gsl libgsl\n    PATHS  ${GSL_POSSIBLE_ROOT_DIRS}\n    PATH_SUFFIXES lib\n    DOC \"GSL library dir\" )  \n  \n  FIND_LIBRARY(GSL_GSLCBLAS_LIBRARY\n    NAMES gslcblas libgslcblas\n    PATHS  ${GSL_POSSIBLE_ROOT_DIRS}\n    PATH_SUFFIXES lib\n    DOC \"GSL cblas library dir\" )\n  \n  SET(GSL_LIBRARIES ${GSL_GSL_LIBRARY} ${GSL_GSLCBLAS_LIBRARY})\n\n  #MESSAGE(\"DBG\\n\"\n    #  \"GSL_GSL_LIBRARY=${GSL_GSL_LIBRARY}\\n\"\n    #  \"GSL_GSLCBLAS_LIBRARY=${GSL_GSLCBLAS_LIBRARY}\\n\"\n    #  \"GSL_LIBRARIES=${GSL_LIBRARIES}\")\n\n\nELSE(WIN32)\n  \n  IF(UNIX) \n    SET(GSL_CONFIG_PREFER_PATH \n      \"$ENV{GSL_DIR}/bin\"\n      \"$ENV{GSL_DIR}\"\n      \"$ENV{GSL_HOME}/bin\" \n      \"$ENV{GSL_HOME}\" \n      CACHE STRING \"preferred path to GSL (gsl-config)\")\n    FIND_PROGRAM(GSL_CONFIG gsl-config\n      ${GSL_CONFIG_PREFER_PATH}\n      /usr/bin/\n      )\n    # MESSAGE(\"DBG GSL_CONFIG ${GSL_CONFIG}\")\n    \n    IF (GSL_CONFIG) \n      \n      MESSAGE(STATUS \"GSL using gsl-config ${GSL_CONFIG}\")\n      # set CXXFLAGS to be fed into CXX_FLAGS by the user:\n      EXEC_PROGRAM(${GSL_CONFIG}\n        ARGS --cflags\n        OUTPUT_VARIABLE  GSL_CXX_FLAGS )\n      #SET(GSL_CXX_FLAGS \"`${GSL_CONFIG} --cflags`\")\n      \n      # set INCLUDE_DIRS to prefix+include\n      EXEC_PROGRAM(${GSL_CONFIG}\n        ARGS --prefix\n        OUTPUT_VARIABLE GSL_PREFIX)\n      SET(GSL_INCLUDE_DIR ${GSL_PREFIX}/include CACHE STRING INTERNAL)\n\n      # set link libraries and link flags\n      \n      #SET(GSL_LIBRARIES \"`${GSL_CONFIG} --libs`\")\n      \n      # extract link dirs for rpath  \n      EXEC_PROGRAM(${GSL_CONFIG}\n        ARGS --libs\n        OUTPUT_VARIABLE  GSL_CONFIG_LIBS )\n      SET(GSL_LIBRARIES \"${GSL_CONFIG_LIBS}\")\n\n      # split off the link dirs (for rpath)\n      # use regular expression to match wildcard equivalent \"-L*<endchar>\"\n      # with <endchar> is a space or a semicolon\n      STRING(REGEX MATCHALL \"[-][L]([^ ;])+\" \n        GSL_LINK_DIRECTORIES_WITH_PREFIX \n        \"${GSL_CONFIG_LIBS}\" )\n      #      MESSAGE(\"DBG  GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}\")\n\n      # remove prefix -L because we need the pure directory for LINK_DIRECTORIES\n      \n      IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)\n        STRING(REGEX REPLACE \"[-][L]\" \"\" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )\n      ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)\n      SET(GSL_EXE_LINKER_FLAGS \"-Wl,-rpath,${GSL_LINK_DIRECTORIES}\" CACHE STRING INTERNAL)\n      #      MESSAGE(\"DBG  GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}\")\n      #      MESSAGE(\"DBG  GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}\")\n\n      #      ADD_DEFINITIONS(\"-DHAVE_GSL\")\n      #      SET(GSL_DEFINITIONS \"-DHAVE_GSL\")\n      MARK_AS_ADVANCED(\n        GSL_CXX_FLAGS\n        GSL_INCLUDE_DIR\n        GSL_LIBRARIES\n        GSL_LINK_DIRECTORIES\n        GSL_DEFINITIONS\n\t)\n      MESSAGE(STATUS \"Using GSL from ${GSL_PREFIX}\")\n      \n    ELSE(GSL_CONFIG)\n      \n      INCLUDE(UsePkgConfig) #needed for PKGCONFIG(...)\n\n      MESSAGE(STATUS \"GSL using pkgconfig\")\n      #      PKGCONFIG(gsl includedir libdir linkflags cflags)\n      PKGCONFIG(gsl GSL_INCLUDE_DIR GSL_LINK_DIRECTORIES GSL_LIBRARIES GSL_CXX_FLAGS)\n      IF(GSL_INCLUDE_DIR)\n\tMARK_AS_ADVANCED(\n          GSL_CXX_FLAGS\n          GSL_INCLUDE_DIR\n          GSL_LIBRARIES\n          GSL_LINK_DIRECTORIES\n\t  )\n\t  \n      ELSE(GSL_INCLUDE_DIR)      \n\tMESSAGE(\"FindGSL.cmake: gsl-config/pkg-config gsl not found. Please set it manually. GSL_CONFIG=${GSL_CONFIG}\")\n      ENDIF(GSL_INCLUDE_DIR)\n      \n    ENDIF(GSL_CONFIG)\n\n  ENDIF(UNIX)\nENDIF(WIN32)\n\n\nIF(GSL_LIBRARIES)\n  IF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)\n\n    SET(GSL_FOUND 1)\n    \n  ENDIF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)\nENDIF(GSL_LIBRARIES)\n\n\n# ==========================================\nIF(NOT GSL_FOUND)\n  # make FIND_PACKAGE friendly\n  IF(NOT GSL_FIND_QUIETLY)\n    IF(GSL_FIND_REQUIRED)\n      MESSAGE(FATAL_ERROR \"GSL required, please specify it's location.\")\n    ELSE(GSL_FIND_REQUIRED)\n      MESSAGE(STATUS       \"ERROR: GSL was not found.\")\n    ENDIF(GSL_FIND_REQUIRED)\n  ENDIF(NOT GSL_FIND_QUIETLY)\nENDIF(NOT GSL_FOUND)\n"
  },
  {
    "path": "algorithms/NMSLIB/code/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles/progress.marks\n\t$(MAKE) -f CMakeFiles/Makefile2 all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\t$(MAKE) -f CMakeFiles/Makefile2 clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\t$(MAKE) -f CMakeFiles/Makefile2 preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\t$(MAKE) -f CMakeFiles/Makefile2 preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n#=============================================================================\n# Target rules for targets named lshkit\n\n# Build rule for target.\nlshkit: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 lshkit\n.PHONY : lshkit\n\n# fast build rule for target.\nlshkit/fast:\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/build\n.PHONY : lshkit/fast\n\n#=============================================================================\n# Target rules for targets named NonMetricSpaceLib\n\n# Build rule for target.\nNonMetricSpaceLib: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 NonMetricSpaceLib\n.PHONY : NonMetricSpaceLib\n\n# fast build rule for target.\nNonMetricSpaceLib/fast:\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/build\n.PHONY : NonMetricSpaceLib/fast\n\n#=============================================================================\n# Target rules for targets named dummy_app\n\n# Build rule for target.\ndummy_app: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 dummy_app\n.PHONY : dummy_app\n\n# fast build rule for target.\ndummy_app/fast:\n\t$(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/build\n.PHONY : dummy_app/fast\n\n#=============================================================================\n# Target rules for targets named experiment\n\n# Build rule for target.\nexperiment: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 experiment\n.PHONY : experiment\n\n# fast build rule for target.\nexperiment/fast:\n\t$(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/build\n.PHONY : experiment/fast\n\n#=============================================================================\n# Target rules for targets named tune_vptree\n\n# Build rule for target.\ntune_vptree: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 tune_vptree\n.PHONY : tune_vptree\n\n# fast build rule for target.\ntune_vptree/fast:\n\t$(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/build\n.PHONY : tune_vptree/fast\n\n#=============================================================================\n# Target rules for targets named bench_distfunc\n\n# Build rule for target.\nbench_distfunc: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 bench_distfunc\n.PHONY : bench_distfunc\n\n# fast build rule for target.\nbench_distfunc/fast:\n\t$(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/build\n.PHONY : bench_distfunc/fast\n\n#=============================================================================\n# Target rules for targets named bench_projection\n\n# Build rule for target.\nbench_projection: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 bench_projection\n.PHONY : bench_projection\n\n# fast build rule for target.\nbench_projection/fast:\n\t$(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/build\n.PHONY : bench_projection/fast\n\n#=============================================================================\n# Target rules for targets named bunit\n\n# Build rule for target.\nbunit: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 bunit\n.PHONY : bunit\n\n# fast build rule for target.\nbunit/fast:\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/build\n.PHONY : bunit/fast\n\n#=============================================================================\n# Target rules for targets named report_intr_dim\n\n# Build rule for target.\nreport_intr_dim: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 report_intr_dim\n.PHONY : report_intr_dim\n\n# fast build rule for target.\nreport_intr_dim/fast:\n\t$(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/build\n.PHONY : report_intr_dim/fast\n\n#=============================================================================\n# Target rules for targets named test_clust\n\n# Build rule for target.\ntest_clust: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 test_clust\n.PHONY : test_clust\n\n# fast build rule for target.\ntest_clust/fast:\n\t$(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/build\n.PHONY : test_clust/fast\n\n#=============================================================================\n# Target rules for targets named test_integr\n\n# Build rule for target.\ntest_integr: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 test_integr\n.PHONY : test_integr\n\n# fast build rule for target.\ntest_integr/fast:\n\t$(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/build\n.PHONY : test_integr/fast\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... install/local\"\n\t@echo \"... lshkit\"\n\t@echo \"... tune_vptree\"\n\t@echo \"... NonMetricSpaceLib\"\n\t@echo \"... dummy_app\"\n\t@echo \"... experiment\"\n\t@echo \"... test_clust\"\n\t@echo \"... test_integr\"\n\t@echo \"... bench_projection\"\n\t@echo \"... bench_distfunc\"\n\t@echo \"... report_intr_dim\"\n\t@echo \"... bunit\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/NonMetricSpaceLib.sln",
    "content": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Express 2013 for Windows Desktop\nVisualStudioVersion = 12.0.30501.0\nMinimumVisualStudioVersion = 10.0.40219.1\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"NonMetricSpaceLib\", \"src\\NonMetricSpaceLib.vcxproj\", \"{08B5B5CC-2938-4C1C-B835-A3868076D791}\"\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"bunit\", \"test\\bunit.vcxproj\", \"{111510A1-E568-49D8-8EFE-196F5053EA0C}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"bench_distfunc\", \"test\\bench_distfunc.vcxproj\", \"{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"test_integr\", \"test\\test_integr.vcxproj\", \"{B078DA10-B28A-4CB8-B07E-61E93B100B1F}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"dummy_app\", \"src\\dummy_app.vcxproj\", \"{46643623-A4FA-4185-8DB2-61D4FAAF6A53}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"experiment\", \"src\\experiment.vcxproj\", \"{0C7221CD-0703-4299-A779-1E45E26FA47F}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"tune_vptree\", \"src\\tune_vptree.vcxproj\", \"{509D6427-87B7-40B5-82AC-40503FD213D8}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"sample_standalone_app1\", \"..\\sample_standalone_app\\sample_standalone_app1.vcxproj\", \"{8B905A2B-88BF-4353-8BFD-167CA434D9C8}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"sample_standalone_app2\", \"..\\sample_standalone_app\\sample_standalone_app2.vcxproj\", \"{DC891FA8-20ED-4CFC-A146-390DC655F681}\"\n\tProjectSection(ProjectDependencies) = postProject\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791} = {08B5B5CC-2938-4C1C-B835-A3868076D791}\n\tEndProjectSection\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|x64 = Debug|x64\n\t\tRelease|x64 = Release|x64\n\t\tRelWithDebInfo|x64 = RelWithDebInfo|x64\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.Debug|x64.Build.0 = Debug|x64\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.Release|x64.ActiveCfg = Release|x64\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.Release|x64.Build.0 = Release|x64\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{08B5B5CC-2938-4C1C-B835-A3868076D791}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.Debug|x64.Build.0 = Debug|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.Release|x64.ActiveCfg = Release|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.Release|x64.Build.0 = Release|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{111510A1-E568-49D8-8EFE-196F5053EA0C}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.Debug|x64.Build.0 = Debug|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.Release|x64.ActiveCfg = Release|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.Release|x64.Build.0 = Release|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.Debug|x64.Build.0 = Debug|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.Release|x64.ActiveCfg = Release|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.Release|x64.Build.0 = Release|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{B078DA10-B28A-4CB8-B07E-61E93B100B1F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.Debug|x64.Build.0 = Debug|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.Release|x64.ActiveCfg = Release|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.Release|x64.Build.0 = Release|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{46643623-A4FA-4185-8DB2-61D4FAAF6A53}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.Debug|x64.Build.0 = Debug|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.Release|x64.ActiveCfg = Release|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.Release|x64.Build.0 = Release|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{0C7221CD-0703-4299-A779-1E45E26FA47F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.Debug|x64.Build.0 = Debug|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.Release|x64.ActiveCfg = Release|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.Release|x64.Build.0 = Release|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{509D6427-87B7-40B5-82AC-40503FD213D8}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.Debug|x64.Build.0 = Debug|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.Release|x64.ActiveCfg = Release|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.Release|x64.Build.0 = Release|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{8B905A2B-88BF-4353-8BFD-167CA434D9C8}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.Debug|x64.ActiveCfg = Debug|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.Debug|x64.Build.0 = Debug|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.Release|x64.ActiveCfg = Release|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.Release|x64.Build.0 = Release|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64\n\t\t{DC891FA8-20ED-4CFC-A146-390DC655F681}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "algorithms/NMSLIB/code/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"Release\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_LOCAL_ONLY)\n  # Include the install script for each subdirectory.\n  include(\"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/cmake_install.cmake\")\n\nendif()\n\nif(CMAKE_INSTALL_COMPONENT)\n  set(CMAKE_INSTALL_MANIFEST \"install_manifest_${CMAKE_INSTALL_COMPONENT}.txt\")\nelse()\n  set(CMAKE_INSTALL_MANIFEST \"install_manifest.txt\")\nendif()\n\nstring(REPLACE \";\" \"\\n\" CMAKE_INSTALL_MANIFEST_CONTENT\n       \"${CMAKE_INSTALL_MANIFEST_FILES}\")\nfile(WRITE \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/${CMAKE_INSTALL_MANIFEST}\"\n     \"${CMAKE_INSTALL_MANIFEST_CONTENT}\")\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/cluster_util.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef CLUSTER_UTIL\n#define CLUSTER_UTIL\n\n#include <space.h>\n#include <idtype.h>\n#include <object.h>\n\n#include <vector>\n#include <string>\n\nnamespace similarity {\n\n  const size_t MAX_CLARANS_ITER_QTY     = 1000; // 1000 is quite a lot, usually an algorithm converges locally in a dozen of attempts\n  const size_t MAX_METAITER_CLARANS_ITER_QTY = 20; // This is a maximum number of iterations for a single meta-iteration\n  const size_t CLARANS_SWAP_ATTEMPTS    = 20;\n  const size_t CLARANS_SAMPLE_QTY       = 10;\n  const size_t CLARANS_RAND_RESTART_QTY = 5;\n  const size_t REDUCTIVE_CLARANS_MIN_CLUSTER_SIZE = 5;\n\n  const size_t SAMPLE_LIST_CLUST_DEFAULT_SAMPLE_QTY = 1000000;\n\n  using std::vector;\n  using std::string;\n\n  const string CLUST_TYPE_CLARAN         = \"clarans\";\n  const string CLUST_TYPE_REDUCT_CLARAN  = \"reduct_clarans\";\n  const string CLUST_TYPE_FIRMAL         = \"firmal\";\n\n  template <typename dist_t>\n  class ClusterUtils {\n  public:\n\n    /*\n     * IMPORTANT NOTE on all clustring methods:\n     * vClustAssign is always sorted by the distance to the cluster in the ascending order.\n     */\n\n    /*\n     * A variant of the k-medoid clustering called CLARANS. First described in:\n     *\n     * Raymond T. Ng and Jiawei Han. 1994.\n     * Efficient and Effective Clustering Methods for Spatial Data Mining.\n     * In Proceedings of the 20th International Conference on Very Large Data Bases (VLDB '94)\n     */\n    static void doCLARANS(bool PrintProgress,\n                          const Space<dist_t>&   space,     // A space object\n                          ObjectVector           data,     // A list of objects, it is copied\n                          size_t                 centerQty, // Number of clusters/centers\n                          ObjectVector&          vCenters,  // Centers\n                          vector<shared_ptr<DistObjectPairVector<dist_t>>>&  vClusterAssign, // Cluster assignment\n                          IdTypeUnsign           inClusterSwapAttempts = CLARANS_SWAP_ATTEMPTS, // Number of random swaps to find a better cluster center\n                          IdTypeUnsign           inClusterSampleQty    = CLARANS_SAMPLE_QTY, // Number of random points to estimate if the swap was beneficial\n                          size_t                 randRestQty           = CLARANS_RAND_RESTART_QTY,// A number of random restarts\n                          IdTypeUnsign           maxIterQty            = MAX_CLARANS_ITER_QTY, // A maximum number of iterations\n                          double                 errMinDiff            = 1e-4  // Stop iterating if the total configuration\n        // cost doesn't decrease by at least this value\n    );\n\n    /*\n     * CLARANS applied to ever-diminishing chunks of data. Processing is split into meta-iterations.\n     * In one meta-iteration, we carry out a few (<=maxIterQty) CLARANS iterations.\n     * Then, we keep only some of the points (namely keepFrac*data.size()) and cluster the remaining ones\n     * recursively. Unlike regular CLARANS, the number of random restarts is 1.\n     * We carry out at most maxMetaIterQty iterations. Some points remain unassigned.\n     */\n    static void doReductiveCLARANS(bool PrintProgress,\n                                  const Space<dist_t>&   space,     // A space object\n                                  ObjectVector           data,     // A list of objects, it is copied\n                                  IdTypeUnsign           maxMetaIterQty, // A maximum number of meta iterations\n                                  float                  keepFrac, // Percentage of assigned points kept after a meta-iteration is finished\n                                  size_t                 centerQty, // Number of clusters/centers\n                                  ObjectVector&vCentersGlobal,  // Centers\n                                  vector<shared_ptr<DistObjectPairVector<dist_t>>>&  vClusterAssign, // Cluster assignment\n                                  ObjectVector&          vUnassigned,    // Unassigned points\n                                  IdTypeUnsign           inClusterSwapAttempts = CLARANS_SWAP_ATTEMPTS, // Number of random swaps to find a better cluster center\n                                  IdTypeUnsign           inClusterSampleQty    = CLARANS_SAMPLE_QTY, // Number of random points to estimate if the swap was beneficial\n                                  IdTypeUnsign           maxIterQty            = MAX_METAITER_CLARANS_ITER_QTY, // A maximum number of iterations in one meta-iteration\n                                  double                 errMinDiff            = 1e-4  // Stop iterating if the total configuration\n        // cost doesn't decrease by at least this value\n    );\n\n    // FIRMAL: fixed radius multi-attempt linkage\n    static void doFIRMAL(bool PrintProgress,\n                                 const Space<dist_t>&  space,          // A space object\n                                 ObjectVector           data,           // A list of objects, it is copied\n                                 float                  ExpCenterQty,   // A hint for the number of clusters, the acutal # fo clusters can be much longer\n                                 ObjectVector&          vCenters,       // Centers\n                                 vector<shared_ptr<DistObjectPairVector<dist_t>>>&  vClusterAssign, // Cluster assignment\n                                 ObjectVector&          vUnassigned,    // Unassigned points\n                                 size_t                 SearchCloseIterQty, // A # of search iterations to find a point that is close to already selected centers\n                                                                        // For good performance it should be in the order of sqrt(data.size())\n                                 size_t                 SampleDistQty = SAMPLE_LIST_CLUST_DEFAULT_SAMPLE_QTY,\n                                 bool                   bUseAllClustersInIter = true\n    );\n\n    // Sort data points inside each cluster in the order of increasing distance to the cluster center.\n    static void sortInsideClustersDist(const vector<shared_ptr<DistObjectPairVector<dist_t>>>& vClusterAssign);\n\n    static void printClusterStat(const Space<dist_t>&         space,\n                                 const vector<shared_ptr<DistObjectPairVector<dist_t>>>&vClustAssign, // Cluster assignment\n                                 IdTypeUnsign                 sampleQty // a number of point to sample in each cluster\n\n    );\n    static void printAndVerifyClusterStat(const Space<dist_t>&         space,\n                                 const ObjectVector& vCenters,\n                                 const vector<shared_ptr<DistObjectPairVector<dist_t>>>&vClustAssign, // Cluster assignment\n                                 IdTypeUnsign                 sampleQty // a number of point to sample in each cluster\n    );\n\n  };\n}   // namespace similarity\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/distcomp.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef DISTCOMP_HPP\n#define DISTCOMP_HPP\n\n#include <iostream>\n\n#include <cmath>\n#include <algorithm>\n#include <cstdlib>\n#include <limits>\n\n#include \"permutation_type.h\"\n\nnamespace similarity {\n\nusing std::max;\n\n/*\n * LInf norm\n */\n\ntemplate <class T> T LInfNormStandard(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T LInfNorm(const T *p1, const T *p2, size_t qty) ;\ntemplate <class T> T LInfNormSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\n\n/*\n * L1 norm\n */\n\ntemplate <class T> T L1NormStandard(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T L1Norm(const T *p1, const T *p2, size_t qty) ;\ntemplate <class T> T L1NormSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\n\n/*\n * L2 (Eucledian) norm\n */\n\ntemplate <class T> T L2NormStandard(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T L2Norm(const T* pVect1, const T* pVect2, size_t qty);\ntemplate <class T> T L2NormSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\nfloat L2SqrSIMD(const float* pVect1, const float* pVect2, size_t qty);\n\n/*\n * Scalar product related distances \n */\ntemplate <class T> T AngularDistance(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T CosineSimilarity(const T *p1, const T *p2, size_t qty);\n// Scalar product divided by vector Euclidean norms\ntemplate <class T> T NormScalarProduct(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T NormScalarProductSIMD(const T *p1, const T *p2, size_t qty);\n\n// Scalar product that is not normalized \ntemplate <class T> T ScalarProduct(const T *p1, const T *p2, size_t qty);\ntemplate <class T> T ScalarProductSIMD(const T *p1, const T *p2, size_t qty);\n\n// Fast scalar product between sparse vectors (using SIMD)\nfloat ScalarProductFast(const char* pData1, size_t len1, const char* pData2, size_t len2);\n\n/*\n *  Itakura-Saito distance\n */\ntemplate <class T> T ItakuraSaito(const T* pVect1, const T* pVect2, size_t qty);\n\n/* \n * Precomp means that qty logarithms are precomputed \n * and stored right after qty original vector values.\n * That's the layout is:\n * x1 ... x1_qty log(x1) log(x2) ... log(x_qty)\n */ \n\ntemplate <class T> T ItakuraSaitoPrecomp(const T* pVect1, const T* pVect2, size_t qty);\ntemplate <class T> T ItakuraSaitoPrecompSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\n/*\n * KL-divergence\n * Should be applied ONLY to vectors such that:\n * 1) ALL elements are positive\n * 2) the sum of elements is ONE\n */\ntemplate <class T> T KLStandard(const T* pVect1, const T* pVect2, size_t qty);\n/*\n * This is a less efficient version of KLStandard that computes the difference\n * of logarithms as opposed to log of the ratio. Yet, it has better accuracy.\n */\ntemplate <class T> T KLStandardLogDiff(const T* pVect1, const T* pVect2, size_t qty);\n// Precomputed logs\ntemplate <class T> T KLPrecomp(const T* pVect1, const T* pVect2, size_t qty);\n// Same as KLPrecomp, but uses SIMD to make computation faster.\ntemplate <class T> T KLPrecompSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\n/*\n * Generalized KL-divergence\n * Should be applied ONLY to vectors such that:\n * 1) ALL elements are positive\n * 2) Yet, the sum of elements IS NOT NECESSARILY one.\n *\n */\ntemplate <class T> T KLGeneralStandard(const T* pVect1, const T* pVect2, size_t qty);\n// Precomputed logs\ntemplate <class T> T KLGeneralPrecomp(const T* pVect1, const T* pVect2, size_t qty);\n// Same as KLPrecomp, but uses SIMD to make computation faster.\ntemplate <class T> T KLGeneralPrecompSIMD(const T* pVect1, const T* pVect2, size_t qty);\n\n/*\n * Computes logarithms and stores them after qty values of pVect.\n * NOTE 1: pVect should have 2 * qty elements!!! but only\n *       the first qty elements are used to compute the logarithms.\n *       After this function completes, the would look like:\n *       x1 ... x1_qty log(x1) log(x2) ... log(x_qty)\n *\n * NOTE 2: if the number is <=0, its log is computed as the minimum possible numbers,\n *         rather than minus infinity.\n */\ntemplate <class T> void PrecompLogarithms(T* pVect, size_t qty) {\n    for (size_t i = 0; i < qty; i++) { \n        //pVect[i + qty] = (pVect[i] > 0) ? log(pVect[i]): std::numeric_limits<T>::lowest();\n        pVect[i + qty] = (pVect[i] > 0) ? log(pVect[i]): T(-1e5f);\n    }\n}\n\n/*\n * Jensen-Shannon divergence \n *\n * The squared root of JS-divergence is a metric.\n * \n * Österreicher, Ferdinand, and Igor Vajda. \n * \"A new class of metric divergences on probability spaces and its applicability in statistics.\" \n * Annals of the Institute of Statistical Mathematics 55.3 (2003): 639-653.\n *\n *\n * Endres, Dominik Maria, and Johannes E. Schindelin. \n * \"A new metric for probability distributions.\" \n * Information Theory, IEEE Transactions on 49.7 (2003): 1858-1860.\n *\n */\ntemplate <class T> T JSStandard(const T *pVect1, const T *pVect2, size_t qty);\n// Precomputed logs\ntemplate <class T> T JSPrecomp(const T *pVect1, const T *pVect2, size_t qty);\n// Precomputed logs, one log is approximate\ntemplate <class T> T JSPrecompApproxLog(const T *pVect1, const T *pVect2, size_t qty);\n\n// Precomputed logs & inverse values\ntemplate <class T> T JSPrecompDivApproxLog(const T *pVect1, const T *pVect2, size_t qty);\n\ntemplate <class T> T JSPrecompSIMDApproxLog(const T* pVect1, const T* pVect2, size_t qty);\n\n/*\n * Slower versions of LP-distance\n */\ntemplate <typename T> T LPGenericDistance(const T* x, const T* y, const int length, const T p);\n\ntemplate <typename T> T LPGenericDistanceOptim(const T* x, const T* y, const int length, const T p);\n\n\n/*\n * Rank correlations\n */\n\ntypedef int (*IntDistFuncPtr)(const PivotIdType* x, const PivotIdType* y, size_t qty);\n\nint SpearmanFootrule(const PivotIdType* x, const PivotIdType* y, size_t qty);\nint SpearmanRho(const PivotIdType* x, const PivotIdType* y, size_t qty);\nint SpearmanFootruleSIMD(const PivotIdType* x, const PivotIdType* y, size_t qty);\nint SpearmanRhoSIMD(const PivotIdType* x, const PivotIdType* y, size_t qty);\n\n//unsigned BitHamming(const uint32_t* a, const uint32_t* b, size_t qty);\n\n#include \"simdutils.h\"\n\n\nunsigned inline BitHamming(const uint32_t* a, const uint32_t* b, size_t qty) {\n  unsigned res = 0;\n\n  for (size_t i=0; i < qty; ++i) {\n    //  __builtin_popcount quickly computes the number on 1s\n    res +=  __builtin_popcount(a[i] ^ b[i]);\n  }\n\n  return res;\n}\n\n}\n\n/*\n * Edit distances\n */\n#include \"distcomp_edist.h\"\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/distcomp_edist.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef DISTCOMP_EDIST_HPP\n#define DISTCOMP_EDIST_HPP\n\nnamespace similarity {\n\n/* \n * The maximum number of elements that will be kept on the stack\n * by the function levenshtein. \n *\n * TODO:@leo If there are too many threads, we might run out stack memory.\n *           but it is probably extremely unlikely with the buffer of this size.\n *\n */\n\n#define MAX_LEVEN_BUFFER_QTY  512\n\ntemplate<class T> int levenshtein(const T* p1, size_t len1, const T* p2, size_t len2) ;\ntemplate<class T> int levenshtein(const T &s1, const T & s2) {\n  return levenshtein(s1.c_str(), s1.size(), s2.c_str(), s2.size());\n}\n\n\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/eval_metrics.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef EVAL_METRICS_H\n#define EVAL_METRICS_H\n\n#include <vector>\n#include <algorithm>\n#include <iostream>\n#include <unordered_set>\n\n#include \"object.h\"\n#include \"gold_standard.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::sort;\nusing std::ostream;\nusing std::unordered_set;\n\ntemplate <class dist_t>\nbool ApproxEqualElem(const ResultEntry<dist_t>& elem1, const ResultEntry<dist_t>& elem2) {\n  return elem1.mId == elem2.mId || ApproxEqual(elem1.mDist, elem2.mDist);\n}\n\ntemplate <class dist_t>\nstruct EvalMetricsBase {\n  virtual double operator()(double ExactResultSize,\n                      const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n                      const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n                      ) const = 0;\n  /* \n   * An auxilliar function that aligns exact and approximate answers.\n   * It used to compute error approximation metrics.\n   */\n  template <class AccumObj>\n  static void iterate(AccumObj& obj,\n               const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n               const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n               ) {\n      for (size_t k = 0, p = 0; k < ApproxEntries.size() && p < SortedAllEntries.size(); ++k) {\n        const auto& elemApprox = ApproxEntries[k];\n        const auto& elemExact  = SortedAllEntries[p];\n        /*\n         * There is no guarantee that the floating point arithmetic\n         * produces consistent results. For instance, we can call the distance\n         * function twice with the same object pointers, but get slightly\n         * different results.\n         */\n        if (elemApprox.mDist -  elemExact.mDist < 0\n           && !ApproxEqualElem(elemApprox, elemExact)\n            ) {\n          double mx = std::abs(std::max(ApproxEntries[k].mDist, SortedAllEntries[p].mDist));\n          double mn = std::abs(std::min(ApproxEntries[k].mDist, SortedAllEntries[p].mDist));\n  \n          for (size_t i = 0; i < std::min(SortedAllEntries.size(), ApproxEntries.size()); ++i ) {\n            LOG(LIB_INFO) << \"Ex: \" << SortedAllEntries[i].mDist << \" id = \" << SortedAllEntries[i].mId <<\n                         \" -> Apr: \"<< ApproxEntries[i].mDist << \" id = \" << ApproxEntries[i].mId << \n                         \" 1 - ratio: \" << (1 - mn/mx) << \" diff: \" << (mx - mn);\n          }\n          LOG(LIB_FATAL) << \"bug: the approximate query should not return objects \"\n                         << \"that are closer to the query than object returned by \"\n                         << \"(exact) sequential searching!\"\n                         << \" Approx: \" << elemApprox.mDist << \" id = \" << elemApprox.mId \n                         << \" Exact: \"  << elemExact.mDist  << \" id = \" << elemExact.mId;\n        }\n        // At this point the distance to the true answer is either <= than the distance to the approximate answer,\n        // or the distance to the true answer is slightly larger due to non-determinism of floating point arithmetic\n        size_t LastEqualP = p;\n        if (p < SortedAllEntries.size() && \n            ApproxEqualElem(elemApprox, elemExact)) {\n          ++p;\n        } else {\n          while (p < SortedAllEntries.size() && \n                 SortedAllEntries[p].mDist < ApproxEntries[k].mDist &&\n                 !ApproxEqualElem(SortedAllEntries[p], ApproxEntries[k]))\n                 {\n            ++p;\n            ++LastEqualP;\n          }\n        }\n        if (p < k) {\n          for (size_t i = 0; i < std::min(SortedAllEntries.size(), ApproxEntries.size()); ++i ) {\n            LOG(LIB_INFO) << \"E: \" << SortedAllEntries[i].mDist << \" -> \" << ApproxEntries[i].mDist;\n          }\n          LOG(LIB_FATAL) << \"bug: p = \" << p << \" k = \" << k;\n        }\n        CHECK(p >= k);\n        obj(k, LastEqualP);\n      }\n    }\n};\n\n\ntemplate <class dist_t>\nstruct EvalRecall : public EvalMetricsBase<dist_t> {\n  /*\n   * A classic recall measure\n   */\n  double operator()(double ExactResultSize,\n                    const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n                    const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n                    ) const {\n    if (ExactResultIds.empty()) return 1.0;\n    double recall = 0.0;\n    for (auto it = ApproxResultIds.begin(); it != ApproxResultIds.end(); ++it) {\n      recall += ExactResultIds.count(*it);\n    }\n    return recall / ExactResultSize;\n  }\n};\n\ntemplate <class dist_t>\nstruct EvalNumberCloser : public EvalMetricsBase<dist_t> {\n  /*\n   * Number of the nearest neighbors or range search answers that are closer to the query\n   * than the closest element returned by the search.\n   */\n  double operator()(double ExactResultSize,\n                    const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n                    const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n                   ) const {\n    if (ExactResultIds.empty()) return 0.0;\n    if (ApproxEntries.empty()) return min(ExactResultSize, static_cast<double>(SortedAllEntries.size()));\n    \n    double NumberCloser = 0;\n\n    // 2. Compute the number of points closer to the 1-NN then the first result.\n    CHECK(!ApproxEntries.empty());\n    for (size_t p = 0; p < SortedAllEntries.size(); ++p) {\n      if (SortedAllEntries[p].mDist >= ApproxEntries[0].mDist || ApproxEqualElem(SortedAllEntries[p], ApproxEntries[0])) break;\n      ++NumberCloser;\n    }\n\n    return NumberCloser;\n  }\n};\n\ntemplate <class dist_t>\nstruct EvalPrecisionOfApprox : public EvalMetricsBase<dist_t> {\n   /*\n    * Precision of approximation.\n    *\n    * Proposed in:\n    * Zezula, P., Savino, P., Amato, G., Rabitti, F., \n    * Approximate similarity retrieval with m-trees. \n    * The VLDB Journal 7(4) (December 1998) 275-293\n    *\n    * Formally, the precision of approximation is equal to:\n    * 1/K sum_{i=1}^K   i/pos(i)\n    */\n  struct AccumPrecisionOfApprox {\n    double PrecisionOfApprox_ = 0;\n    void operator()(size_t k, size_t LastEqualP) {\n       PrecisionOfApprox_ += static_cast<double>(k + 1) / (LastEqualP + 1);\n    }\n  };\n\n  double operator()(double ExactResultSize,\n                    const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n                    const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n                    ) const {\n    if (ExactResultIds.empty()) return 1.0;\n    if (ApproxEntries.empty()) return 0.0;\n\n    AccumPrecisionOfApprox res;\n\n    EvalMetricsBase<dist_t>::iterate(res, SortedAllEntries, ExactResultIds, ApproxEntries, ApproxResultIds);\n    \n    return res.PrecisionOfApprox_ / ApproxEntries.size();\n  }\n};\n\ntemplate <class dist_t>\nstruct EvalLogRelPosError : public EvalMetricsBase<dist_t> {\n  struct AccumLogRelPossError {\n    double LogRelPosError_ = 0;\n    void operator()(size_t k, size_t LastEqualP) {\n       LogRelPosError_    += log(static_cast<double>(LastEqualP + 1) / (k + 1));\n    }\n  };\n\n  double operator()(double ExactResultSize,\n                    const vector<ResultEntry<dist_t>>& SortedAllEntries, const unordered_set<IdType>& ExactResultIds,\n                    const vector<ResultEntry<dist_t>>& ApproxEntries, const unordered_set<IdType>& ApproxResultIds\n                    ) const {\n    if (ExactResultIds.empty()) return 0.0;\n    if (ApproxEntries.empty()) return log(min(ExactResultSize, static_cast<double>(SortedAllEntries.size())));\n\n    AccumLogRelPossError res;\n\n    EvalMetricsBase<dist_t>::iterate(res, SortedAllEntries, ExactResultIds, ApproxEntries, ApproxResultIds);\n    \n    return res.LogRelPosError_ / ApproxEntries.size();\n  }\n};\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/eval_results.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef EVAL_RESULTS_H\n#define EVAL_RESULTS_H\n\n#include <iostream>\n#include <algorithm>\n#include <vector>\n#include <unordered_set>\n#include <memory>\n#include <stdexcept>\n#include <unordered_map>\n\n#include \"utils.h\"\n#include \"space.h\"\n#include \"object.h\"\n#include \"index.h\"\n#include \"knnqueue.h\"\n#include \"eval_metrics.h\"\n\nnamespace similarity {\n\nusing std::unordered_set;\nusing std::unordered_map;\nusing std::vector;\nusing std::sort;\n\n\n\ntemplate <class dist_t>\nclass EvalResults {\npublic:\n  EvalResults(const typename similarity::Space<dist_t>& space,\n              const typename similarity::KNNQuery<dist_t>* query,\n              const GoldStandard<dist_t>& gs) : K_(0), SortedAllEntries_(gs.GetSortedEntries()) {\n    GetKNNData(query);\n    ComputeMetrics(query->QueryObject()->label());\n  }\n\n  EvalResults(const typename similarity::Space<dist_t>& space,\n              const typename similarity::RangeQuery<dist_t>* query,\n              const GoldStandard<dist_t>& gs) : K_(0), SortedAllEntries_(gs.GetSortedEntries()) {\n    GetRangeData(query);\n    ComputeMetrics(query->QueryObject()->label());\n  }\n\n  /* \n   * For all metrics below, pos(i) denotes a position of the \n   * i-th approximate result in the exact list of neighbors.\n   * That is, a k=pos(i) means that the i-th element returned\n   * by a search method is, in truth, a k-th nearest neighbor.\n   */\n\n  /* \n   * GetNumCloser() makes most sense only for 1-NN search,\n   * because it computes the number of points closer than\n   * the nearest point found by a method.\n   * \n   * Formally is it equal to pos(0) - 1.\n   *\n   * This metric was proposed in:\n   * L. Cayton. Fast nearest neighbor retrieval for bregman divergences. \n   * Twenty-Fifth International Conference on Machine Learning (ICML), 2008.\n   *\n   */\n  double GetNumCloser()       const { return NumberCloser_;}\n\n  /*\n   * Recall of the closets (1-NN) entry\n   */\n  double GetRecallAt1()       const { return RecallAt1_;}\n\n   /*\n    * An average logarithm of a relative position error.\n    * Just exponentiate to get a geometric mean of relative position errors.\n    *\n    * Formally, it is equal to:\n    * 1/K sum_{i=1}^K   log(pos(i))\n    */\n  double GetLogRelPos()       const { return LogRelPosError_;}\n    /*\n     * Just the classic recall value\n     */\n  double GetRecall()          const { return Recall_; }\n    /*\n     * Classification correctness\n     */\n  ClassResult GetClassCorrect()          const { return ClassCorrect_; }\n   /*\n    * Precision of approximation.\n    *\n    * Zezula, P., Savino, P., Amato, G., Rabitti, F., \n    * Approximate similarity retrieval with m-trees. \n    * The VLDB Journal 7(4) (December 1998) 275-293\n    *\n    * Formally, the precision of approximation is equal to:\n    * 1/K sum_{i=1}^K   i/pos(i)\n    */\n  double GetPrecisionOfApprox() const { return PrecisionOfApprox_; }\nprivate:\n  size_t K_;\n\n  /* \n   * In k-NN search the k-neighborhood may be definied ambiguously.\n   * It can happen if several points are at the same distance from the query point.\n   * All these points are included into the ExactResultIds_, yet, their number can be > K_.\n   */\n  void GetKNNData(const KNNQuery<dist_t>* query) {\n    K_ = query->GetK();\n    for (size_t i = 0; i < SortedAllEntries_.size(); ++i) {\n      if (i < K_ || (K_ && ApproxEqual(SortedAllEntries_[i].mDist,  SortedAllEntries_[K_-1].mDist))) {\n        ExactResultIds_.insert(SortedAllEntries_[i].mId);\n      }\n      else break; // SortedAllEntries_ are sorted by distance\n    }\n\n    unique_ptr<KNNQueue<dist_t>> ResQ(query->Result()->Clone());\n\n    while (!ResQ->Empty()) {\n      const Object* ResObject = reinterpret_cast<const Object*>(ResQ->TopObject());\n      CHECK(ResObject);\n      /*\n       * A search method can potentially return duplicate records.\n       * We simply ignore duplicates during evaluation.\n       */\n      if (ApproxResultIds_.find(ResObject->id()) == ApproxResultIds_.end()) {\n        ApproxResultIds_.insert(ResObject->id());\n        ApproxEntries_.insert(ApproxEntries_.begin(), \n                              ResultEntry<dist_t>(ResObject->id(), ResObject->label(), ResQ->TopDistance()));\n      }\n      ResQ->Pop();\n    }\n    // ApproxEntries_ should be sorted\n  }\n\n  void GetRangeData(const RangeQuery<dist_t>* query) {\n    for (size_t i = 0; i < SortedAllEntries_.size(); ++i) {\n      if (SortedAllEntries_[i].mDist <= query->Radius()) ExactResultIds_.insert(SortedAllEntries_[i].mId);\n      else break; // SortedAllEntries_ are sorted by distance\n    }\n\n    const ObjectVector&         ResQ = *query->Result();\n    const std::vector<dist_t>&  ResQDists = *query->ResultDists();\n\n    CHECK(ResQ.size() == ResQDists.size());\n\n    for (size_t i = 0; i < ResQ.size(); ++i) {\n      const Object* ResObject = ResQ[i];\n      CHECK(ResObject);\n      // We should not have any duplicates!\n      if (ApproxResultIds_.find(ResObject->id()) == ApproxResultIds_.end()) {\n        ApproxResultIds_.insert(ResObject->id());\n        ApproxEntries_.insert(ApproxEntries_.begin(), \n                              ResultEntry<dist_t>(ResObject->id(), ResObject->label(), ResQDists[i]));\n      }\n    }\n\n    std::sort(ApproxEntries_.begin(), ApproxEntries_.end());\n  }\n\n  void ComputeMetrics(LabelType queryLabel) {\n    size_t ExactResultSize = K_ ? min(K_,ExactResultIds_.size()) /* If the data set is tiny\n                                                                    there may be less than K_\n                                                                    answers */\n                                  :\n                                  ExactResultIds_.size();\n\n    ClassCorrect_      = kClassUnknown;\n    Recall_            = EvalRecall<dist_t>()(ExactResultSize, SortedAllEntries_, ExactResultIds_, ApproxEntries_, ApproxResultIds_);\n    NumberCloser_      = EvalNumberCloser<dist_t>()(ExactResultSize, SortedAllEntries_, ExactResultIds_, ApproxEntries_, ApproxResultIds_);\n    RecallAt1_         = NumberCloser_ > 0.1 ? 0.0 : 1;\n    PrecisionOfApprox_ = EvalPrecisionOfApprox<dist_t>()(ExactResultSize, SortedAllEntries_, ExactResultIds_, ApproxEntries_, ApproxResultIds_);\n    LogRelPosError_    = EvalLogRelPosError<dist_t>()(ExactResultSize, SortedAllEntries_, ExactResultIds_, ApproxEntries_, ApproxResultIds_);\n\n    // 2 Obtain class result\n    if (queryLabel >= 0) {\n      unordered_map<LabelType, int>  hClassQty;\n      vector<pair<int,LabelType>>    vClassQty;\n\n      for (size_t k = 0; k < ApproxEntries_.size(); ++k) {\n        hClassQty[ApproxEntries_[k].mLabel]++;\n      }\n      for (auto elem:hClassQty) {\n        /* \n         * Revert here: qty now should go first:\n         * the minus sign will make sort put entries\n         * with the largest qty first.\n         */\n        vClassQty.push_back(make_pair(-elem.second, elem.first));\n      }\n      sort(vClassQty.begin(), vClassQty.end());\n      if (!vClassQty.empty()) {\n        ClassCorrect_ = vClassQty[0].second == queryLabel ? kClassCorrect : kClassWrong;\n      }\n    }\n  }\n\n  double                              RecallAt1_;\n  double                              NumberCloser_;\n  double                              LogRelPosError_;\n  double                              Recall_;\n  ClassResult                         ClassCorrect_;\n  double                              PrecisionOfApprox_;\n\n  std::vector<ResultEntry<dist_t>>    ApproxEntries_;\n  std::unordered_set<IdType>          ApproxResultIds_;\n  std::unordered_set<IdType>          ExactResultIds_;\n\n\n  /* \n   * SortedAllEntries_ include all database entries sorted in the order\n   * of increasing distance from the query.\n   */\n  const std::vector<ResultEntry<dist_t>>& SortedAllEntries_;\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/experimentconf.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _EXPERIMENT_CONFIG_H_\n#define _EXPERIMENT_CONFIG_H_\n\n#include <string.h>\n#include <string>\n#include <unordered_map>\n#include <vector>\n\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::stringstream;\nusing std::vector;\nusing std::unordered_map;\n\ntemplate <typename dist_t>\nclass ExperimentConfig {\npublic:\n  ExperimentConfig(Space<dist_t>& space,\n                   const string& datafile,\n                   const string& queryfile,\n                   unsigned TestSetQty, // The # of times the datafile is randomly divided into the query and the test set\n                   IdTypeUnsign MaxNumData,\n                   IdTypeUnsign MaxNumQueryToRun,\n                   const typename std::vector<unsigned>& knn,\n                   float eps,\n                   const typename std::vector<dist_t>& range)\n      : space_(space),\n        datafile_(datafile),\n        queryfile_(queryfile),\n        pExternalData_(NULL),\n        pExternalQuery_(NULL),\n        noQueryData_(queryfile.empty()),\n        testSetToRunQty_(TestSetQty),\n        testSetQty_(TestSetQty),\n        maxNumData_(MaxNumData),\n        maxNumQuery_(MaxNumQueryToRun),\n        maxNumQueryToRun_(MaxNumQueryToRun),\n        range_(range),\n        knn_(knn),\n        eps_(eps),\n        dataSetWasRead_(false) {\n    if (noQueryData_) {\n      if (!testSetToRunQty_) {\n        throw runtime_error(\n            \"Bad configuration. One should either specify a query file/data, \"\n            \" or the number of test sets obtained by bootstrapping \"\n            \"(random division into query and data files).\");\n      }\n    }\n  }\n\n  ExperimentConfig(Space<dist_t>& space,\n                   const ObjectVector& externalData,\n                   const ObjectVector& externalQuery,\n                   unsigned TestSetQty, // The # of times the datafile is randomly divided into the query and the test set\n                   IdTypeUnsign MaxNumData,\n                   IdTypeUnsign MaxNumQueryToRun,\n                   const typename std::vector<unsigned>& knn,\n                   float eps,\n                   const typename std::vector<dist_t>& range)\n      : space_(space),\n        datafile_(\"\"),\n        queryfile_(\"\"),\n        pExternalData_(&externalData),\n        pExternalQuery_(&externalQuery),\n        noQueryData_(externalQuery.empty()),\n        testSetToRunQty_(TestSetQty),\n        testSetQty_(TestSetQty),\n        maxNumData_(MaxNumData),\n        maxNumQuery_(MaxNumQueryToRun),\n        maxNumQueryToRun_(MaxNumQueryToRun),\n        range_(range),\n        knn_(knn),\n        eps_(eps),\n        dataSetWasRead_(false) {\n    if (noQueryData_) {\n      if (!testSetToRunQty_) {\n        throw runtime_error(\n            \"Bad configuration. One should either specify a query file/data, \"\n            \" or the number of test sets obtained by bootstrapping \"\n            \"(random division into query and data files).\");\n      }\n    }\n  }\n\n  ~ExperimentConfig() {\n    for (auto it = origData_.begin(); it != origData_.end(); ++it) {\n      delete *it;\n    }\n    for (auto it = origQuery_.begin(); it != origQuery_.end(); ++it) {\n      delete *it;\n    }\n  }\n\n  void PrintInfo() const;\n  void SelectTestSet(int SetNum);\n  int GetTestSetToRunQty() const {\n    if (!noQueryData_) return 1;\n    return testSetToRunQty_;\n  }\n  int GetTestSetTotalQty() const {\n    if (!noQueryData_) return 1;\n    return testSetQty_;\n  }\n  size_t GetOrigDataQty() const { return origData_.size(); }\n  const Space<dist_t>&  GetSpace() const { return space_; }\n  Space<dist_t>&  GetSpace() { return space_; }\n  const ObjectVector& GetDataObjects() const { return dataobjects_; }\n  const ObjectVector& GetQueryObjects() const { return queryobjects_; }\n  const typename std::vector<unsigned>& GetKNN() const { return knn_; }\n  float GetEPS() const { return eps_; }\n  const typename std::vector<dist_t>& GetRange() const { return range_; }\n  int   GetQueryToRunQty() const {\n    return noQueryData_ ? maxNumQueryToRun_ :\n                          static_cast<unsigned>(origQuery_.size());\n  }\n  int   GetTotalQueryQty() const {\n    return noQueryData_ ? maxNumQuery_:\n                          static_cast<unsigned>(origQuery_.size());\n  }\n\n  /*\n   * Read/Write : save/retrieve some of the config information.\n   */\n  void Write(ostream& controlStream, ostream& binaryStream);\n  /* \n   * If this function is called (i.e., the cache is read), it should be read\n   * before the dataset is read, because data/query splits are stored in cache.\n   * TODO: this is an evil form of delayed (and ordered) initialization,\n   *       we'll need to get rid of this some day. Instead, we should do\n   *       all the work in the constructor.\n   *\n   *       For now, as a protection from changing the sequence of calls,\n   *       we have a special flag (dataSetWasRead_). However, this is not\n   *       an ideal solution, in particular, b/c the bug will be noticed\n   *       only at run-time.\n   *       \n   */\n  void Read(istream& controlStream, istream& binaryStream, size_t& cacheDataSetQty);\n\n  void ReadDataset();\nprivate:\n  Space<dist_t>&    space_;\n  ObjectVector      dataobjects_;\n  ObjectVector      queryobjects_;\n  ObjectVector      origData_;\n  ObjectVector      origQuery_;\n  vector<int>       origDataAssignment_;  // >=0 denotes an index of the test set, -1 denotes data points\n  unordered_map<size_t, size_t> cachedDataAssignment_;\n  string            datafile_;\n  string            queryfile_;\n  const ObjectVector* pExternalData_;  \n  const ObjectVector* pExternalQuery_;  \n  bool              noQueryData_;\n  unsigned          testSetToRunQty_;\n  unsigned          testSetQty_;\n\n  IdTypeUnsign      maxNumData_;\n  IdTypeUnsign      maxNumQuery_;\n  IdTypeUnsign      maxNumQueryToRun_;\n\n\n  vector<dist_t>    range_;  // range search parameter\n  vector<unsigned>  knn_;    // knn search parameters\n  float             eps_;    // knn search parameter\n\n  bool              dataSetWasRead_;\n\n  void CopyExternal(const ObjectVector& src, ObjectVector& dst, size_t maxQty);\n};\n\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/experiments.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _EXPERIMENTS_H\n#define _EXPERIMENTS_H\n\n#include <errno.h>\n#include <string.h>\n\n#include <iostream>\n#include <vector>\n#include <set>\n#include <sstream>\n#include <string>\n#include <utility>\n#include <thread>\n#include <mutex>\n#include <memory>\n\n#include \"global.h\"\n#include \"object.h\"\n#include \"memory.h\"\n#include \"ztimer.h\"\n#include \"utils.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"index.h\"\n#include \"logging.h\"\n#include \"methodfactory.h\"\n#include \"eval_results.h\"\n#include \"meta_analysis.h\"\n#include \"query_creator.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::shared_ptr;\nusing std::string;\nusing std::stringstream;\nusing std::mutex;\nusing std::thread;\nusing std::ref;\nusing std::lock_guard;\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nclass Experiments {\npublic:\n  typedef Index<dist_t> IndexType;\n\n  static void RunAll(bool                                 LogInfo, \n                     unsigned                             ThreadTestQty,\n                     size_t                               TestSetId,\n                     const GoldStandardManager<dist_t>&   managerGS,\n                     vector<vector<MetaAnalysis*>>&       ExpResRange,\n                     vector<vector<MetaAnalysis*>>&       ExpResKNN,\n                     const ExperimentConfig<dist_t>&      config,\n                     IndexType&                           Method,\n                     const vector<shared_ptr<AnyParams>>& QueryTimeParams) {\n\n    if (LogInfo) LOG(LIB_INFO) << \">>>> TestSetId: \" << TestSetId;\n    if (LogInfo) LOG(LIB_INFO) << \">>>> Will use: \"  << ThreadTestQty << \" threads in efficiency testing\";\n    if (LogInfo) config.PrintInfo();\n\n    if (!config.GetRange().empty()) {\n      for (size_t i = 0; i < config.GetRange().size(); ++i) {\n        const dist_t radius = config.GetRange()[i];\n        RangeCreator<dist_t>  cr(radius);\n        Execute<RangeQuery<dist_t>, RangeCreator<dist_t>>(LogInfo,\n                                                  ThreadTestQty, TestSetId,\n                                                  managerGS.GetRangeGS(i),\n                                                  ExpResRange[i], config, cr, \n                                                  Method, QueryTimeParams);\n      }\n    }\n\n    if (!config.GetKNN().empty()) {\n      for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n        const size_t K = config.GetKNN()[i];\n        KNNCreator<dist_t>  cr(K, config.GetEPS());\n        Execute<KNNQuery<dist_t>, KNNCreator<dist_t>>(LogInfo,\n                                              ThreadTestQty, TestSetId,\n                                              managerGS.GetKNNGS(i),\n                                              ExpResKNN[i], config, cr, \n                                              Method, QueryTimeParams);\n      }\n    }\n    if (LogInfo) LOG(LIB_INFO) << \"experiment done at \" << LibGetCurrentTime();\n  }\n\n  template <typename QueryType, typename QueryCreatorType>\n  struct  BenchmarkThreadParams {\n    BenchmarkThreadParams(\n              mutex&                          UpdateStat,\n              unsigned                        ThreadQty,\n              unsigned                        QueryPart,\n              size_t                          TestSetId, \n              std::vector<MetaAnalysis*>&     ExpRes,\n              const ExperimentConfig<dist_t>& config,\n              const QueryCreatorType&         QueryCreator,\n              const Index<dist_t>&            Method,\n              unsigned                        MethNum,\n              vector<uint64_t>&               SearchTime,\n              vector<double>&                 AvgNumDistComp,\n              vector<unsigned>&               max_result_size,\n              vector<double>&                 avg_result_size,\n              vector<uint64_t>&               DistCompQty) :\n    UpdateStat_(UpdateStat),\n    ThreadQty_(ThreadQty),\n    QueryPart_(QueryPart),\n    TestSetId_(TestSetId),\n    ExpRes_(ExpRes),\n    config_(config),\n    QueryCreator_(QueryCreator),\n    Method_(Method),\n    MethNum_(MethNum),\n    SearchTime_(SearchTime),\n\n    AvgNumDistComp_(AvgNumDistComp),\n    max_result_size_(max_result_size),\n    avg_result_size_(avg_result_size),\n    DistCompQty_(DistCompQty)\n    {}\n\n    mutex&                          UpdateStat_;\n    unsigned                        ThreadQty_;\n    unsigned                        QueryPart_;\n    size_t                          TestSetId_;\n    std::vector<MetaAnalysis*>&     ExpRes_;\n    const ExperimentConfig<dist_t>& config_;\n    const QueryCreatorType&         QueryCreator_;\n    const Index<dist_t>&                  Method_;\n    unsigned                        MethNum_;\n    vector<uint64_t>&               SearchTime_;\n\n    vector<double>&                 AvgNumDistComp_;\n    vector<unsigned>&               max_result_size_;\n    vector<double>&                 avg_result_size_;\n    vector<uint64_t>&               DistCompQty_;\n\n    vector<size_t>                  queryIds;\n    vector<unique_ptr<QueryType>>   queries; // queries with results\n  };\n\n  template <typename QueryType, typename QueryCreatorType> \n  struct BenchmarkThread {\n    void operator ()(BenchmarkThreadParams<QueryType, QueryCreatorType>& prm) {\n      size_t numquery = prm.config_.GetQueryObjects().size();\n\n      WallClockTimer wtm;\n\n      wtm.reset();\n\n      unsigned MethNum = prm.MethNum_;\n      unsigned QueryPart = prm.QueryPart_;\n      unsigned ThreadQty = prm.ThreadQty_;\n\n      for (size_t q = 0; q < numquery; ++q) {\n        if ((q % ThreadQty) == QueryPart) {\n          unique_ptr<QueryType> query(prm.QueryCreator_(prm.config_.GetSpace(), \n                                      prm.config_.GetQueryObjects()[q]));\n          uint64_t  t1 = wtm.split();\n          prm.Method_.Search(query.get());\n          uint64_t  t2 = wtm.split();\n\n          {\n            lock_guard<mutex> g(prm.UpdateStat_);\n\n            prm.ExpRes_[MethNum]->AddDistComp(prm.TestSetId_, query->DistanceComputations());\n            prm.ExpRes_[MethNum]->AddQueryTime(prm.TestSetId_, (1.0*t2 - t1)/1e3);\n\n\n            prm.DistCompQty_[MethNum] += query->DistanceComputations();\n            prm.avg_result_size_[MethNum] += query->ResultSize();\n\n            if (query->ResultSize() > prm.max_result_size_[MethNum]) {\n              prm.max_result_size_[MethNum] = query->ResultSize();\n            }\n\n            prm.queryIds.push_back(q);\n            prm.queries.push_back(std::move(query));\n          }\n        }\n      }\n    }\n  };\n\n  template <typename QueryType, typename QueryCreatorType>\n  static void Execute(bool LogInfo, unsigned ThreadTestQty, size_t TestSetId,\n                     const vector<unique_ptr<GoldStandard<dist_t>>> &goldStand,\n                     std::vector<MetaAnalysis*>&                    ExpRes,\n                     const ExperimentConfig<dist_t>&                config,\n                     const QueryCreatorType&                        QueryCreator,\n                     IndexType&                                     Method,\n                     const vector<shared_ptr<AnyParams>>&           QueryTimeParams) {\n    size_t numquery = config.GetQueryObjects().size();\n    unsigned MethQty = QueryTimeParams.size();\n\n    if (LogInfo) LOG(LIB_INFO) << \"##### Query type: \" << QueryType::Type();\n    if (LogInfo) LOG(LIB_INFO) << \">>>> query params = \"  << QueryCreator.ParamsForPrint();\n    if (LogInfo) LOG(LIB_INFO) << \">>>> Computing efficiency metrics \";\n    if (LogInfo) LOG(LIB_INFO) << \">>>> # of query time parameters: \" << MethQty;\n\n    vector<uint64_t>  SearchTime(MethQty); \n\n    vector<double>    ClassAccuracy(MethQty);\n    vector<double>    Recall(MethQty);\n    vector<double>    NumCloser(MethQty);\n    vector<double>    RecallAt1(MethQty);\n    vector<double>    LogPosErr(MethQty);\n    vector<double>    PrecisionOfApprox(MethQty);\n    vector<double>    SystemTimeElapsed(MethQty);\n\n    uint64_t  SeqSearchTime     = 0;\n\n    vector<double>    AvgNumDistComp(MethQty);\n    vector<double>    ImprDistComp(MethQty);\n    vector<unsigned>  max_result_size(MethQty);\n    vector<double>    avg_result_size(MethQty);\n    vector<uint64_t>  DistCompQty(MethQty);\n\n    mutex             UpdateStat;\n\n    config.GetSpace().SetQueryPhase();\n\n    for (size_t MethNum = 0; MethNum < QueryTimeParams.size(); ++MethNum) {\n     /* \n      * Setting query time parameters must be done \n      * before running any tests, in particular, because\n      * the function SetQueryTimeParams is NOT supposed to be THREAD-SAFE. \n      */\n      const AnyParams& qtp = *QueryTimeParams[MethNum];\n      Method.SetQueryTimeParams(qtp);\n\n      LOG(LIB_INFO) << \">>>> Query-Time Parameters: \" << qtp.ToString();\n\n      if (LogInfo) LOG(LIB_INFO) << \">>>> Efficiency test for: \"<< Method.StrDesc();\n\n      WallClockTimer wtm;\n\n      wtm.reset();\n\n      if (!ThreadTestQty) ThreadTestQty = 1;\n\n      vector<BenchmarkThreadParams<QueryType, QueryCreatorType>*>       ThreadParams(ThreadTestQty);\n      vector<thread>                                                    Threads(ThreadTestQty);\n      AutoVectDel<BenchmarkThreadParams<QueryType, QueryCreatorType>>   DelThreadParams(ThreadParams);\n\n\n      for (unsigned QueryPart = 0; QueryPart < ThreadTestQty; ++QueryPart) {\n        ThreadParams[QueryPart] =  new BenchmarkThreadParams<QueryType, QueryCreatorType>(\n                                              UpdateStat,\n                                              ThreadTestQty,\n                                              QueryPart,\n                                              TestSetId, \n                                              ExpRes,\n                                              config,\n                                              QueryCreator,\n                                              Method,\n                                              MethNum,\n                                              SearchTime,\n                                              AvgNumDistComp,\n                                              max_result_size,\n                                              avg_result_size,\n                                              DistCompQty);\n      }\n\n      if (ThreadTestQty> 1) {\n        for (unsigned QueryPart = 0; QueryPart < ThreadTestQty; ++QueryPart) {\n          Threads[QueryPart] = std::thread(BenchmarkThread<QueryType, QueryCreatorType>(), \n                                     ref(*ThreadParams[QueryPart]));\n        }\n        for (unsigned QueryPart = 0; QueryPart < ThreadTestQty; ++QueryPart) {\n          Threads[QueryPart].join();\n        }\n      } else {\n        CHECK(ThreadTestQty == 1);\n        BenchmarkThread<QueryType, QueryCreatorType>()(*ThreadParams[0]);\n      }\n\n      wtm.split();\n\n      SearchTime[MethNum] = wtm.elapsed();\n\n      AvgNumDistComp[MethNum] = static_cast<double>(DistCompQty[MethNum])/numquery;\n      ImprDistComp[MethNum]   = config.GetDataObjects().size() / AvgNumDistComp[MethNum];\n\n      ExpRes[MethNum]->SetImprDistComp(TestSetId, ImprDistComp[MethNum]);\n\n      avg_result_size[MethNum] /= static_cast<double>(numquery);\n\n      if (LogInfo) LOG(LIB_INFO) << \">>>> Computing effectiveness metrics for \" << Method.StrDesc();\n\n      for (unsigned QueryPart = 0; QueryPart < ThreadTestQty; ++QueryPart) {\n        const BenchmarkThreadParams<QueryType, QueryCreatorType>*   params = ThreadParams[QueryPart];\n       \n        for (size_t qi = 0; qi < params->queries.size(); ++qi) {\n          size_t            q = params->queryIds[qi] ;\n          const QueryType*  pQuery = params->queries[qi].get();\n\n          unique_ptr<QueryType> queryGS(QueryCreator(config.GetSpace(), config.GetQueryObjects()[q]));\n\n          const GoldStandard<dist_t>&  QueryGS = *goldStand[q];\n\n          EvalResults<dist_t>     Eval(config.GetSpace(), pQuery, QueryGS);\n\n          NumCloser[MethNum]    += Eval.GetNumCloser();\n          RecallAt1[MethNum]    += Eval.GetRecallAt1();\n          LogPosErr[MethNum]    += Eval.GetLogRelPos();\n          Recall[MethNum]       += Eval.GetRecall();\n          double addAccuracy = (Eval.GetClassCorrect() == kClassCorrect ? 1:0);\n          ClassAccuracy[MethNum]+= addAccuracy;\n          PrecisionOfApprox[MethNum] += Eval.GetPrecisionOfApprox();\n\n          ExpRes[MethNum]->AddPrecisionOfApprox(TestSetId, Eval.GetPrecisionOfApprox());\n          ExpRes[MethNum]->AddRecall(TestSetId, Eval.GetRecall());\n          ExpRes[MethNum]->AddClassAccuracy(TestSetId, addAccuracy);\n          ExpRes[MethNum]->AddLogRelPosError(TestSetId, Eval.GetLogRelPos());\n          ExpRes[MethNum]->AddNumCloser(TestSetId, Eval.GetNumCloser());\n          ExpRes[MethNum]->AddRecallAt1(TestSetId, Eval.GetRecallAt1());\n\n        }\n      }\n    }\n\n    config.GetSpace().SetIndexPhase();\n\n    /* \n     * Sequential search times should be computed only once.\n     */\n    for (size_t q = 0; q < numquery; ++q) {\n      const GoldStandard<dist_t>&  QueryGS = *goldStand[q];\n      SeqSearchTime     += QueryGS.GetSeqSearchTime();\n    }\n\n    for (size_t MethNum = 0; MethNum < QueryTimeParams.size(); ++MethNum) {\n      double timeSec = SearchTime[MethNum]/double(1e6);\n      double queryPerSec = numquery / timeSec;\n\n      if (LogInfo) {\n        LOG(LIB_INFO) << \"=========================================\";\n        LOG(LIB_INFO) << \">>>> Index type is \"<< Method.StrDesc();\n        LOG(LIB_INFO) << \"=========================================\";\n        LOG(LIB_INFO) << \">>>> max # results = \" << max_result_size[MethNum];\n        LOG(LIB_INFO) << \">>>> avg # results = \" << avg_result_size[MethNum];\n        LOG(LIB_INFO) << \">>>> # of distance computations = \" << AvgNumDistComp[MethNum];\n        LOG(LIB_INFO) << \">>>> Impr in # of dist comp: \" << ImprDistComp[MethNum];\n        LOG(LIB_INFO) << \"=========================================\";\n        LOG(LIB_INFO) << \">>>> Time elapsed:           \" << timeSec << \" sec\";\n        LOG(LIB_INFO) << \">>>> # of queries per sec: : \" << queryPerSec;\n        LOG(LIB_INFO) << \">>>> Avg time per query:     \" << (timeSec/1e3/numquery) << \" msec\";\n        LOG(LIB_INFO) << \">>>> System time elapsed:    \" << (SystemTimeElapsed[MethNum]/double(1e6)) << \" sec\";\n        LOG(LIB_INFO) << \"=========================================\";\n      }\n\n      // This number is adjusted for the number of threads!\n      double  ImprEfficiency = static_cast<double>(SeqSearchTime)/(SearchTime[MethNum]*ThreadTestQty);\n\n      ExpRes[MethNum]->SetImprEfficiency(TestSetId, ImprEfficiency);\n      ExpRes[MethNum]->SetQueryPerSec(TestSetId, queryPerSec);\n\n      Recall[MethNum]            /= static_cast<double>(numquery);\n      ClassAccuracy[MethNum]     /= static_cast<double>(numquery);\n      NumCloser[MethNum]         /= static_cast<double>(numquery);\n      RecallAt1[MethNum]         /= static_cast<double>(numquery);\n      LogPosErr[MethNum]         /= static_cast<double>(numquery);\n      PrecisionOfApprox[MethNum] /= static_cast<double>(numquery);\n    \n      if (LogInfo) {\n        LOG(LIB_INFO) << \"=========================================\";\n        LOG(LIB_INFO) << \">>>> # of test threads:              \" << ThreadTestQty;\n        LOG(LIB_INFO) << \">>>> Seq. search time elapsed:       \" << (SeqSearchTime/double(1e6)) << \" sec\";\n        LOG(LIB_INFO) << \">>>> Avg Seq. search time per query: \" << (SeqSearchTime/double(1e3)/numquery) << \" msec\";\n        LOG(LIB_INFO) << \">>>> Impr. in Efficiency = \"           << ImprEfficiency;\n        LOG(LIB_INFO) << \">>>> Recall              = \"           << Recall[MethNum];\n        LOG(LIB_INFO) << \">>>> PrecisionOfApprox   = \"           << PrecisionOfApprox[MethNum];\n        LOG(LIB_INFO) << \">>>> RelPosError         = \"           << exp(LogPosErr[MethNum]);\n        LOG(LIB_INFO) << \">>>> NumCloser           = \"           << NumCloser[MethNum];\n        LOG(LIB_INFO) << \">>>> RecallAt1           = \"           << RecallAt1[MethNum];\n        LOG(LIB_INFO) << \">>>> Class. accuracy     = \"           << ClassAccuracy[MethNum];\n      }\n    }\n\n    if (LogInfo) LOG(LIB_INFO) << \"#### Finished \" << QueryType::Type() << \" \" << LibGetCurrentTime();\n  }\n};\n\n}   // namespace similarity\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/init_methods.h",
    "content": "#ifndef INIT_METHODS_H\n#define INIT_METHODS_H\n/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"methodfactory.h\"\n\n\n#if !defined(WITHOUT_LSH) && !defined(_MSC_VER)\n// These guys won't work on Windows and MACOSX yet\n#include \"factory/method/lsh.h\"\n#include \"factory/method/lsh_multiprobe.h\"\n#endif\n#include \"factory/method/dummy.h\"\n#include \"factory/method/bbtree.h\"\n#include \"factory/method/ghtree.h\"\n#include \"factory/method/list_clusters.h\"\n#include \"factory/method/nonmetr_list_clust.h\"\n#include \"factory/method/multi_index.h\"\n#include \"factory/method/multi_vantage_point_tree.h\"\n#include \"factory/method/perm_bin_vptree.h\"\n#include \"factory/method/perm_index_incr_bin.h\"\n#include \"factory/method/perm_lsh_bin.h\"\n#include \"factory/method/permutation_inverted_index.h\"\n#include \"factory/method/permutation_prefix_index.h\"\n#include \"factory/method/pivot_neighb_invindx.h\"\n#include \"factory/method/proj_vptree.h\"\n#include \"factory/method/projection_index_incremental.h\"\n#include \"factory/method/seqsearch.h\"\n#include \"factory/method/small_world_rand.h\"\n#include \"factory/method/hnsw.h\"\n#include \"factory/method/spatial_approx_tree.h\"\n#include \"factory/method/vptree.h\"\n#include \"factory/method/omedrank.h\"\n#if !defined(_MSC_VER)\n#include \"factory/method/nndes.h\"\n#endif\n\nnamespace similarity {\n\n\ninline void initMethods() {\n  // a dummy method\n  REGISTER_METHOD_CREATOR(float,  METH_DUMMY, CreateDummy)\n  REGISTER_METHOD_CREATOR(double, METH_DUMMY, CreateDummy)\n  REGISTER_METHOD_CREATOR(int,    METH_DUMMY, CreateDummy)\n  \n  // bbtree\n  REGISTER_METHOD_CREATOR(float,  METH_BBTREE, CreateBBTree)\n  REGISTER_METHOD_CREATOR(double, METH_BBTREE, CreateBBTree)\n\n  // ghtree\n  REGISTER_METHOD_CREATOR(float,  METH_GHTREE, CreateGHTree)\n  REGISTER_METHOD_CREATOR(double, METH_GHTREE, CreateGHTree)\n  REGISTER_METHOD_CREATOR(int,    METH_GHTREE, CreateGHTree)\n\n  // list of clusters\n  REGISTER_METHOD_CREATOR(float,  METH_LIST_CLUSTERS, CreateListClusters)\n  REGISTER_METHOD_CREATOR(double, METH_LIST_CLUSTERS, CreateListClusters)\n  REGISTER_METHOD_CREATOR(int,    METH_LIST_CLUSTERS, CreateListClusters)\n\n#if !defined(WITHOUT_LSH) && !defined(_MSC_VER)\n// These guys won't work on Windows and MACOSX yet\n  // Regular LSH\n  REGISTER_METHOD_CREATOR(float,  METH_LSH_CAUCHY, CreateLSHCauchy)\n  REGISTER_METHOD_CREATOR(float,  METH_LSH_GAUSSIAN, CreateLSHGaussian)\n  REGISTER_METHOD_CREATOR(float,  METH_LSH_THRESHOLD, CreateLSHThreshold)\n\n  // Multiprobe LSH\n  REGISTER_METHOD_CREATOR(float,  METH_LSH_MULTIPROBE, CreateLSHMultiprobe)\n  REGISTER_METHOD_CREATOR(float,  METH_LSH_MULTIPROBE_SYN, CreateLSHMultiprobe)\n#endif\n\n  // Multi-vantage point tree\n  REGISTER_METHOD_CREATOR(float,  METH_MVPTREE, CreateMultiVantagePointTree)\n  REGISTER_METHOD_CREATOR(double, METH_MVPTREE, CreateMultiVantagePointTree)\n  REGISTER_METHOD_CREATOR(int,    METH_MVPTREE, CreateMultiVantagePointTree)\n\n  // Vptree over binarized permutations\n  REGISTER_METHOD_CREATOR(float,  METH_PERM_BIN_VPTREE, CreatePermutationBinVPTree)\n  REGISTER_METHOD_CREATOR(double, METH_PERM_BIN_VPTREE, CreatePermutationBinVPTree)\n  REGISTER_METHOD_CREATOR(int,    METH_PERM_BIN_VPTREE, CreatePermutationBinVPTree)\n\n  // Sequential-search binarized permutation index with incremental sorting\n  REGISTER_METHOD_CREATOR(float,  METH_PERMUTATION_INC_SORT_BIN, CreatePermutationIndexIncrementalBin)\n  REGISTER_METHOD_CREATOR(double, METH_PERMUTATION_INC_SORT_BIN, CreatePermutationIndexIncrementalBin)\n  REGISTER_METHOD_CREATOR(int,    METH_PERMUTATION_INC_SORT_BIN, CreatePermutationIndexIncrementalBin)\n  REGISTER_METHOD_CREATOR(float,  METH_PERMUTATION_INC_SORT_BIN_SYN, CreatePermutationIndexIncrementalBin)\n  REGISTER_METHOD_CREATOR(double, METH_PERMUTATION_INC_SORT_BIN_SYN, CreatePermutationIndexIncrementalBin)\n  REGISTER_METHOD_CREATOR(int,    METH_PERMUTATION_INC_SORT_BIN_SYN, CreatePermutationIndexIncrementalBin)\n\n  // LSH based on binarized permutations\n  REGISTER_METHOD_CREATOR(float,  METH_PERMUTATION_LSH_BIN, CreatePermutationIndexLSHBin)\n  REGISTER_METHOD_CREATOR(double, METH_PERMUTATION_LSH_BIN, CreatePermutationIndexLSHBin)\n  REGISTER_METHOD_CREATOR(int,    METH_PERMUTATION_LSH_BIN, CreatePermutationIndexLSHBin)\n\n  // Inverted index over permutations\n  REGISTER_METHOD_CREATOR(float,  METH_PERM_INVERTED_INDEX, CreatePermInvertedIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PERM_INVERTED_INDEX, CreatePermInvertedIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PERM_INVERTED_INDEX, CreatePermInvertedIndex)\n  REGISTER_METHOD_CREATOR(float,  METH_PERM_INVERTED_INDEX_SYN, CreatePermInvertedIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PERM_INVERTED_INDEX_SYN, CreatePermInvertedIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PERM_INVERTED_INDEX_SYN, CreatePermInvertedIndex)\n\n  // Prefix index over permutations\n  REGISTER_METHOD_CREATOR(float,  METH_PERMUTATION_PREFIX_IND, CreatePermutationPrefixIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PERMUTATION_PREFIX_IND, CreatePermutationPrefixIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PERMUTATION_PREFIX_IND, CreatePermutationPrefixIndex)\n  REGISTER_METHOD_CREATOR(float,  METH_PERMUTATION_PREFIX_IND_SYN, CreatePermutationPrefixIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PERMUTATION_PREFIX_IND_SYN, CreatePermutationPrefixIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PERMUTATION_PREFIX_IND_SYN, CreatePermutationPrefixIndex)\n\n  // Inverted index over permutation-based neighborhoods\n  REGISTER_METHOD_CREATOR(float,  METH_PIVOT_NEIGHB_INVINDEX, CreatePivotNeighbInvertedIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PIVOT_NEIGHB_INVINDEX, CreatePivotNeighbInvertedIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PIVOT_NEIGHB_INVINDEX, CreatePivotNeighbInvertedIndex)\n  REGISTER_METHOD_CREATOR(float,  METH_PIVOT_NEIGHB_INVINDEX_SYN, CreatePivotNeighbInvertedIndex)\n  REGISTER_METHOD_CREATOR(double, METH_PIVOT_NEIGHB_INVINDEX_SYN, CreatePivotNeighbInvertedIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_PIVOT_NEIGHB_INVINDEX_SYN, CreatePivotNeighbInvertedIndex)\n\n  // Rank aggregation approach (omedrank) by Fagin et al\n  REGISTER_METHOD_CREATOR(float,  METH_OMEDRANK, CreateOMedRank)\n  REGISTER_METHOD_CREATOR(double, METH_OMEDRANK, CreateOMedRank)\n  REGISTER_METHOD_CREATOR(int,    METH_OMEDRANK, CreateOMedRank)\n\n  // VP-tree built over projections\n  REGISTER_METHOD_CREATOR(float,  METH_PROJ_VPTREE, CreateProjVPTree)\n  REGISTER_METHOD_CREATOR(double, METH_PROJ_VPTREE, CreateProjVPTree)\n  REGISTER_METHOD_CREATOR(int,    METH_PROJ_VPTREE, CreateProjVPTree)\n\n  \n  // Sequential-search projection index with incremental sorting\n  REGISTER_METHOD_CREATOR(float,  METH_PROJECTION_INC_SORT, CreateProjectionIndexIncremental)\n  REGISTER_METHOD_CREATOR(double, METH_PROJECTION_INC_SORT, CreateProjectionIndexIncremental)\n  REGISTER_METHOD_CREATOR(int,    METH_PROJECTION_INC_SORT, CreateProjectionIndexIncremental)\n\n\n  // Just sequential searching\n  REGISTER_METHOD_CREATOR(float,  METH_SEQ_SEARCH, CreateSeqSearch)\n  REGISTER_METHOD_CREATOR(double, METH_SEQ_SEARCH, CreateSeqSearch)\n  REGISTER_METHOD_CREATOR(int,    METH_SEQ_SEARCH, CreateSeqSearch)\n  REGISTER_METHOD_CREATOR(float,  METH_SEQ_SEARCH_SYN, CreateSeqSearch)\n  REGISTER_METHOD_CREATOR(double, METH_SEQ_SEARCH_SYN, CreateSeqSearch)\n  REGISTER_METHOD_CREATOR(int,    METH_SEQ_SEARCH_SYN, CreateSeqSearch)\n\n  // Small-word (KNN-graph) with randomly generated neighborhood-networks\n  REGISTER_METHOD_CREATOR(float,  METH_SMALL_WORLD_RAND, CreateSmallWorldRand)\n  REGISTER_METHOD_CREATOR(double, METH_SMALL_WORLD_RAND, CreateSmallWorldRand)\n  REGISTER_METHOD_CREATOR(int,    METH_SMALL_WORLD_RAND, CreateSmallWorldRand)\n  REGISTER_METHOD_CREATOR(float,  METH_SMALL_WORLD_RAND_SYN, CreateSmallWorldRand)\n  REGISTER_METHOD_CREATOR(double, METH_SMALL_WORLD_RAND_SYN, CreateSmallWorldRand)\n  REGISTER_METHOD_CREATOR(int,    METH_SMALL_WORLD_RAND_SYN, CreateSmallWorldRand)\n\n  REGISTER_METHOD_CREATOR(float,  METH_HNSW, CreateHnsw)\n  REGISTER_METHOD_CREATOR(double, METH_HNSW, CreateHnsw)\n  REGISTER_METHOD_CREATOR(int,    METH_HNSW, CreateHnsw)\n\n  REGISTER_METHOD_CREATOR(float,  METH_SMALL_WORLD_RAND_SPLIT, CreateSmallWorldRandSplit)\n  REGISTER_METHOD_CREATOR(double, METH_SMALL_WORLD_RAND_SPLIT, CreateSmallWorldRandSplit)\n  REGISTER_METHOD_CREATOR(int,    METH_SMALL_WORLD_RAND_SPLIT, CreateSmallWorldRandSplit)\n\n#if !defined(_MSC_VER)\n  // Another KNN-graph, which is computed via NN-descent\n  REGISTER_METHOD_CREATOR(float,  METH_NNDES, CreateNNDescent)\n  REGISTER_METHOD_CREATOR(double, METH_NNDES, CreateNNDescent)\n  REGISTER_METHOD_CREATOR(int,    METH_NNDES, CreateNNDescent)\n\n#endif\n  // SA-tree\n  REGISTER_METHOD_CREATOR(float,  METH_SATREE, CreateSATree)\n  REGISTER_METHOD_CREATOR(double, METH_SATREE, CreateSATree)\n  REGISTER_METHOD_CREATOR(int,    METH_SATREE, CreateSATree)\n\n  // VP-tree, piecewise-polynomial approximation of the decision rule\n  REGISTER_METHOD_CREATOR(int,    METH_VPTREE, CreateVPTree)\n  REGISTER_METHOD_CREATOR(float,  METH_VPTREE, CreateVPTree)\n  REGISTER_METHOD_CREATOR(double, METH_VPTREE, CreateVPTree)\n\n  // A multi-index combination\n  REGISTER_METHOD_CREATOR(float,  METH_MULT_INDEX, CreateMultiIndex)\n  REGISTER_METHOD_CREATOR(double, METH_MULT_INDEX, CreateMultiIndex)\n  REGISTER_METHOD_CREATOR(int,    METH_MULT_INDEX, CreateMultiIndex)\n\n  // Non-metric clustering\n  REGISTER_METHOD_CREATOR(float,  METH_NON_METR_LISTCLUST, CreateNonMetrListClust)\n  REGISTER_METHOD_CREATOR(double, METH_NON_METR_LISTCLUST, CreateNonMetrListClust)\n  REGISTER_METHOD_CREATOR(int,    METH_NON_METR_LISTCLUST, CreateNonMetrListClust)\n\n}\n\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/init_spaces.h",
    "content": "#ifndef INIT_SPACES_H\n#define INIT_SPACES_H\n/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"spacefactory.h\"\n\n#include \"factory/space/space_edist.h\"\n#include \"factory/space/space_bit_hamming.h\"\n#include \"factory/space/space_bregman.h\"\n#include \"factory/space/space_dummy.h\"\n#include \"factory/space/space_js.h\"\n#include \"factory/space/space_lp.h\"\n#include \"factory/space/space_scalar.h\"\n#include \"factory/space/space_sparse_lp.h\"\n#include \"factory/space/space_sparse_scalar.h\"\n#include \"factory/space/space_savch.h\"\n#include \"factory/space/space_word_embed.h\"\n#if !defined(_MSC_VER)\n#include \"factory/space/space_sqfd.h\"\n#endif\n\nnamespace similarity {\n\n\ninline void initSpaces() {\n  // Registering a dummy space\n  REGISTER_SPACE_CREATOR(int,    SPACE_DUMMY,  CreateDummy)\n  REGISTER_SPACE_CREATOR(float,  SPACE_DUMMY,  CreateDummy)\n  REGISTER_SPACE_CREATOR(double, SPACE_DUMMY,  CreateDummy)\n\n  // Registering binary/bit Hamming\n  REGISTER_SPACE_CREATOR(int,  SPACE_BIT_HAMMING,  CreateBitHamming)\n\n  // Registering the Levensthein-distance: regular and normalized\n  REGISTER_SPACE_CREATOR(int,   SPACE_LEVENSHTEIN,  CreateLevenshtein)\n  REGISTER_SPACE_CREATOR(float, SPACE_LEVENSHTEIN_NORM,  CreateLevenshteinNormalized)\n\n  // Registering Bregman divergences\n  REGISTER_SPACE_CREATOR(float,  SPACE_KLDIV_FAST, CreateKLDivFast)\n  REGISTER_SPACE_CREATOR(double, SPACE_KLDIV_FAST, CreateKLDivFast)\n  REGISTER_SPACE_CREATOR(float,  SPACE_KLDIV_FAST_RIGHT_QUERY, CreateKLDivFastRightQuery)\n  REGISTER_SPACE_CREATOR(double, SPACE_KLDIV_FAST_RIGHT_QUERY, CreateKLDivFastRightQuery)\n  REGISTER_SPACE_CREATOR(float,  SPACE_KLDIVGEN_FAST, CreateKLDivGenFast)\n  REGISTER_SPACE_CREATOR(double, SPACE_KLDIVGEN_FAST, CreateKLDivGenFast)\n  REGISTER_SPACE_CREATOR(float,  SPACE_KLDIVGEN_SLOW, CreateKLDivGenSlow)\n  REGISTER_SPACE_CREATOR(double, SPACE_KLDIVGEN_SLOW, CreateKLDivGenSlow)\n  REGISTER_SPACE_CREATOR(float,  SPACE_KLDIVGEN_FAST_RIGHT_QUERY, CreateKLDivGenFastRightQuery)\n  REGISTER_SPACE_CREATOR(double, SPACE_KLDIVGEN_FAST_RIGHT_QUERY, CreateKLDivGenFastRightQuery)\n  REGISTER_SPACE_CREATOR(float,  SPACE_ITAKURASAITO_FAST, CreateItakuraSaitoFast)\n  REGISTER_SPACE_CREATOR(double, SPACE_ITAKURASAITO_FAST, CreateItakuraSaitoFast)\n\n  // Jensen-Shannon functions and their derivatives\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_DIV_SLOW, CreateJSDivSlow)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_DIV_SLOW, CreateJSDivSlow)\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_DIV_FAST, CreateJSDivFastPrecomp)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_DIV_FAST, CreateJSDivFastPrecomp)\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_DIV_FAST_APPROX, CreateJSDivFastPrecompApprox)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_DIV_FAST_APPROX, CreateJSDivFastPrecompApprox)\n\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_METR_SLOW, CreateJSMetricSlow)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_METR_SLOW, CreateJSMetricSlow)\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_METR_FAST, CreateJSMetricFastPrecomp)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_METR_FAST, CreateJSMetricFastPrecomp)\n  REGISTER_SPACE_CREATOR(float,  SPACE_JS_METR_FAST_APPROX, CreateJSMetricFastPrecompApprox)\n  REGISTER_SPACE_CREATOR(double, SPACE_JS_METR_FAST_APPROX, CreateJSMetricFastPrecompApprox)\n\n  // Word embeddings\n  REGISTER_SPACE_CREATOR(float,  SPACE_WORD_EMBED,  CreateWordEmbed)\n  REGISTER_SPACE_CREATOR(double, SPACE_WORD_EMBED,  CreateWordEmbed)\n\n  // LP spaces\n  REGISTER_SPACE_CREATOR(float,  SPACE_L,  CreateL)\n  REGISTER_SPACE_CREATOR(double, SPACE_L,  CreateL)\n  REGISTER_SPACE_CREATOR(float,  SPACE_LINF, CreateLINF)\n  REGISTER_SPACE_CREATOR(double, SPACE_LINF, CreateLINF)\n  REGISTER_SPACE_CREATOR(float,  SPACE_L1, CreateL1)\n  REGISTER_SPACE_CREATOR(double, SPACE_L1, CreateL1)\n  REGISTER_SPACE_CREATOR(float,  SPACE_L2, CreateL2)\n  REGISTER_SPACE_CREATOR(double, SPACE_L2, CreateL2)\n\n  // Scalar product and related distances\n  // Dense\n  REGISTER_SPACE_CREATOR(float,  SPACE_COSINE_SIMILARITY, CreateCosineSimilarity)\n  REGISTER_SPACE_CREATOR(double, SPACE_COSINE_SIMILARITY, CreateCosineSimilarity)\n  REGISTER_SPACE_CREATOR(float,  SPACE_ANGULAR_DISTANCE, CreateAngularDistance)\n  REGISTER_SPACE_CREATOR(double, SPACE_ANGULAR_DISTANCE, CreateAngularDistance)\n\n  // Sparse\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_L, CreateSparseL)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_L, CreateSparseL)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_LINF, CreateSparseLINF)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_LINF, CreateSparseLINF)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_L1, CreateSparseL1)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_L1, CreateSparseL1)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_L2, CreateSparseL2)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_L2, CreateSparseL2)\n\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_COSINE_SIMILARITY, CreateSparseCosineSimilarity)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_COSINE_SIMILARITY, CreateSparseCosineSimilarity)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_ANGULAR_DISTANCE, CreateSparseAngularDistance)\n  REGISTER_SPACE_CREATOR(double, SPACE_SPARSE_ANGULAR_DISTANCE, CreateSparseAngularDistance)\n\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_COSINE_SIMILARITY_FAST, CreateSparseCosineSimilarityFast)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SPARSE_ANGULAR_DISTANCE_FAST, CreateSparseAngularDistanceFast)\n\n\n  REGISTER_SPACE_CREATOR(float,  \"savch\",  CreateSavch)\n\n#if !defined(_MSC_VER)\n  // Signature Quadratic Form Distance\n  REGISTER_SPACE_CREATOR(float,  SPACE_SQFD_HEURISTIC_FUNC, CreateSqfdHeuristicFunc)\n  REGISTER_SPACE_CREATOR(double, SPACE_SQFD_HEURISTIC_FUNC, CreateSqfdHeuristicFunc)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SQFD_MINUS_FUNC, CreateSqfdMinusFunc)\n  REGISTER_SPACE_CREATOR(double, SPACE_SQFD_MINUS_FUNC, CreateSqfdMinusFunc)\n  REGISTER_SPACE_CREATOR(float,  SPACE_SQFD_GAUSSIAN_FUNC, CreateSqfdGaussianFunc)\n  REGISTER_SPACE_CREATOR(double, SPACE_SQFD_GAUSSIAN_FUNC, CreateSqfdGaussianFunc)\n#endif\n}\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/bbtree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_BBTREE_H_\n#define _FACTORY_BBTREE_H_\n\n#include <method/bbtree.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateBBTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n\n    return new BBTree<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/dummy.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_DUMMY_H_\n#define _FACTORY_DUMMY_H_\n\n#include <method/dummy.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateDummy(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new DummyMethod<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/ghtree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_GH_TREE_H_\n#define _FACTORY_GH_TREE_H_\n\n#include <method/ghtree.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateGHTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n\n  return new GHTree<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/hnsw.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n /*\n *\n * A Hierarchical Navigable Small World (HNSW) approach.\n *\n * The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n * \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin\n * This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n *\n *\n */\n\n#pragma once\n\n#include <method/hnsw.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\n    template <typename dist_t>\n    Index<dist_t>* CreateHnsw(bool PrintProgress,\n        const string& SpaceType,\n        Space<dist_t>& space,\n        const ObjectVector& DataObjects) {\n        return new Hnsw<dist_t>(PrintProgress, space, DataObjects);\n    }\n\n/*\n * End of creating functions.\n */\n\n}\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/list_clusters.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_LIST_CLUSTERS_H_\n#define _FACTORY_LIST_CLUSTERS_H_\n\n#include <method/list_clusters.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateListClusters(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n\n    return new ListClusters<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/lsh.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_LSH_\n#define _FACTORY_LSH_\n\n#include <method/lsh.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateLSHCauchy(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n\n    int SpaceSelector = 1;\n    CHECK_MSG(SpaceType == \"l1\", \"LSH (Cauchy) works only with L1\");\n\n    return new LSHCauchy<dist_t>(\n                      space,\n                      DataObjects,\n                      SpaceSelector\n                  );\n}\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateLSHGaussian(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    int SpaceSelector = 2;\n    CHECK_MSG(SpaceType == \"l2\", \"LSH (Guassian) works only with L2\");\n\n    return new LSHGaussian<dist_t>(\n                      space,\n                      DataObjects,\n                      SpaceSelector\n                  );\n}\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateLSHThreshold(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    int SpaceSelector = 1;\n    CHECK_MSG(SpaceType == \"l1\", \"LSH (Threshold) works only with L1\");\n\n    return new LSHThreshold<dist_t>(\n                      space,\n                      DataObjects,\n                      SpaceSelector);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/lsh_multiprobe.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_LSH_MULTIPROBE_H_\n#define _FACTORY_LSH_MULTIPROBE_H_\n\n#include <method/lsh_multiprobe.h>\n\n#include \"logging.h\"\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateLSHMultiprobe(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  CHECK_MSG(SpaceType == \"l2\", \"Multiprobe LSH works only with L2\");\n\n  return new MultiProbeLSH<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/multi_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_MULTI_INDEX_H_\n#define _FACTORY_MULTI_INDEX_H_\n\n#include <method/multi_index.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateMultiIndex(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new MultiIndex<dist_t>(PrintProgress, SpaceType, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/multi_vantage_point_tree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_MULTI_VPTREE_H_\n#define _FACTORY_MULTI_VPTREE_H_\n\n#include <method/multi_vantage_point_tree.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateMultiVantagePointTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new MultiVantagePointTree<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/nndes.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_NNDES_H_\n#define _FACTORY_NNDES_H_\n\n#include <method/nndes.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateNNDescent(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new NNDescentMethod<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/nonmetr_list_clust.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_NONMETR_LIST_CLUST_H\n#define _FACTORY_NONMETR_LIST_CLUST_H\n\n#include <method/nonmetr_list_clust.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateNonMetrListClust(bool PrintProgress,\n                                        const string& SpaceType,\n                                        Space<dist_t>& space,\n                                        const ObjectVector& DataObjects) {\n    return new NonMetrListClust<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/omedrank.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_OMEDRANK_H_\n#define _FACTORY_OMEDRANK_H_\n\n#include <method/omedrank.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateOMedRank(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  return new OMedRank<dist_t>(PrintProgress,\n                              space,\n                              DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/perm_bin_vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PERM_BIN_VPTREE_H_\n#define _FACTORY_PERM_BIN_VPTREE_H_\n\n#include <method/perm_bin_vptree.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePermutationBinVPTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n\n    return new PermBinVPTree<dist_t, SpearmanRhoSIMD>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/perm_index_incr_bin.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PERM_INDEX_INCR_BIN_H_\n#define _FACTORY_PERM_INDEX_INCR_BIN_H_\n\n#include <method/perm_index_incr_bin.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePermutationIndexIncrementalBin(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& dataObjects) {\n\n  return new PermutationIndexIncrementalBin<dist_t, SpearmanRhoSIMD>(\n                                                       PrintProgress,\n                                                       space,\n                                                       dataObjects);\n\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/perm_lsh_bin.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PERM_INDEX_LSH_BIN_H_\n#define _FACTORY_PERM_INDEX_LSH_BIN_H_\n\n#include <method/perm_lsh_bin.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePermutationIndexLSHBin(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& dataObjects) {\n  return new PermutationIndexLSHBin<dist_t>(PrintProgress,\n                                            space,\n                                            dataObjects);\n\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/permutation_inverted_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PERM_INV_INDEX_H_\n#define _FACTORY_PERM_INV_INDEX_H_\n\n#include <method/permutation_inverted_index.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePermInvertedIndex(\n    bool PrintProgress,\n    const string& SpaceType,\n    Space<dist_t>& space,\n    const ObjectVector& DataObjects) {\n  return new PermutationInvertedIndex<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/permutation_prefix_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PERM_PREF_INDEX_H_\n#define _FACTORY_PERM_PREF_INDEX_H_\n\n#include <method/permutation_prefix_index.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePermutationPrefixIndex(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  return new PermutationPrefixIndex<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/pivot_neighb_invindx.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2010--2013\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PIVOT_NEIGHB_H_\n#define _FACTORY_PIVOT_NEIGHB_H_\n\n#include <method/pivot_neighb_invindx.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreatePivotNeighbInvertedIndex(\n    bool PrintProgress,\n    const string& SpaceType,\n    Space<dist_t>& space,\n    const ObjectVector& DataObjects) {\n  \n  return new PivotNeighbInvertedIndex<dist_t>(\n      PrintProgress,\n      space,\n      DataObjects\n  );\n}\n\n/*\n * End of creating functions.\n */\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/proj_vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PROJ_VPTREE_H\n#define _FACTORY_PROJ_VPTREE_H\n\n#include <method/proj_vptree.h>\n#include <space/space_sparse_scalar.h>\n#include <space/space_sparse_scalar_fast.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateProjVPTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new ProjectionVPTree<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/projection_index_incremental.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_PROJ_INDEX_INCR_H_\n#define _FACTORY_PROJ_INDEX_INCR_H_\n\n#include <method/projection_index_incremental.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateProjectionIndexIncremental(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  return new ProjectionIndexIncremental<dist_t>(PrintProgress,\n                                                space,\n                                                DataObjects);\n\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/seqsearch.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_SEQ_SEARCH_H\n#define _FACTORY_SEQ_SEARCH_H\n\n#include <method/seqsearch.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateSeqSearch(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  return new SeqSearch<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/small_world_rand.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_SMALL_WORLD_RAND_H_\n#define _FACTORY_SMALL_WORLD_RAND_H_\n\n#include <method/small_world_rand.h>\n#include <method/small_world_rand_split.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateSmallWorldRand(bool PrintProgress,\n                                        const string& SpaceType,\n                                        Space<dist_t>& space,\n                                        const ObjectVector& DataObjects) {\n    return new SmallWorldRand<dist_t>(PrintProgress, space, DataObjects);\n}\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateSmallWorldRandSplit(bool PrintProgress,\n                                        const string& SpaceType,\n                                        Space<dist_t>& space,\n                                        const ObjectVector& DataObjects) {\n    return new SmallWorldRandSplit<dist_t>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/spatial_approx_tree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_SAT_H_\n#define _FACTORY_SAT_H_\n\n#include <method/spatial_approx_tree.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nIndex<dist_t>* CreateSATree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n  return new SpatialApproxTree<dist_t>(space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/method/vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _FACTORY_VPTREE_H_\n#define _FACTORY_VPTREE_H_\n\n#include \"searchoracle.h\"\n#include <method/vptree.h>\n\nnamespace similarity {\n\n/* \n * We have different creating functions, \n * b/c there are different pruning methods.\n */\ntemplate <typename dist_t>\nIndex<dist_t>* CreateVPTree(bool PrintProgress,\n                           const string& SpaceType,\n                           Space<dist_t>& space,\n                           const ObjectVector& DataObjects) {\n    return new VPTree<dist_t,PolynomialPruner<dist_t>>(PrintProgress, space, DataObjects);\n}\n\n/*\n * End of creating functions.\n */\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_bit_hamming.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef FACTORY_SPACE_BIT_HAMMING_H\n#define FACTORY_SPACE_BIT_HAMMING_H\n\n#include <space/space_bit_hamming.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ninline Space<int>* CreateBitHamming(const AnyParams& /* ignoring params */) {\n  return new SpaceBitHamming();\n}\n\n/*\n * End of creating functions.\n */\n}\n\n#endif\n\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_bregman.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef FACTORY_SPACE_BREGMAN_H\n#define FACTORY_SPACE_BREGMAN_H\n\n#include <space/space_bregman.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateKLDivFast(const AnyParams& /* ignoring params */) {\n  return new KLDivFast<dist_t>();\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateKLDivFastRightQuery(const AnyParams& /* ignoring params */) {\n  return new KLDivFastRightQuery<dist_t>();\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateKLDivGenFast(const AnyParams& /* ignoring params */) {\n  return new KLDivGenFast<dist_t>();\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateKLDivGenFastRightQuery(const AnyParams& /* ignoring params */) {\n  return new KLDivGenFastRightQuery<dist_t>();\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateKLDivGenSlow(const AnyParams& /* ignoring params */) {\n  return new KLDivGenSlow<dist_t>();\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateItakuraSaitoFast(const AnyParams& /* ignoring params */) {\n  return new ItakuraSaitoFast<dist_t>();\n}\n\n\n/*\n * End of creating functions.\n */\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_dummy.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_DUMMY_H\n#define FACTORY_SPACE_DUMMY_H\n\n#include <space/space_dummy.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateDummy(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  int param1, param2;\n\n  pmgr.GetParamRequired(\"param1\",  param1);\n  pmgr.GetParamRequired(\"param2\",  param2);\n\n  pmgr.CheckUnused();\n\n  return new SpaceDummy<dist_t>(param1, param2);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_edist.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_EDIST_H\n#define FACTORY_SPACE_EDIST_H\n\n#include <space/space_leven.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\nSpace<int>* CreateLevenshtein(const AnyParams& AllParams) {\n  return new SpaceLevenshtein();\n}\n\nSpace<float>* CreateLevenshteinNormalized(const AnyParams& AllParams) {\n  return new SpaceLevenshteinNormalized();\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_js.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_JS_H\n#define FACTORY_SPACE_JS_H\n\n#include <space/space_js.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSDivSlow(const AnyParams& /* ignoring params */) {\n  return new SpaceJSDiv<dist_t>(SpaceJSDiv<dist_t>::kJSSlow);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSDivFastPrecomp(const AnyParams& /* ignoring params */) {\n  return new SpaceJSDiv<dist_t>(SpaceJSDiv<dist_t>::kJSFastPrecomp);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSDivFastPrecompApprox(const AnyParams& /* ignoring params */) {\n  return new SpaceJSDiv<dist_t>(SpaceJSDiv<dist_t>::kJSFastPrecompApprox);\n}\n\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSMetricSlow(const AnyParams& /* ignoring params */) {\n  return new SpaceJSMetric<dist_t>(SpaceJSMetric<dist_t>::kJSSlow);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSMetricFastPrecomp(const AnyParams& /* ignoring params */) {\n  return new SpaceJSMetric<dist_t>(SpaceJSMetric<dist_t>::kJSFastPrecomp);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateJSMetricFastPrecompApprox(const AnyParams& /* ignoring params */) {\n  return new SpaceJSMetric<dist_t>(SpaceJSMetric<dist_t>::kJSFastPrecompApprox);\n}\n\n\n\n/*\n * End of creating functions.\n */\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_lp.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_LP_H\n#define FACTORY_SPACE_LP_H\n\n#include <space/space_lp.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateLINF(const AnyParams& /* ignoring params */) {\n  // Chebyshev Distance\n  return new SpaceLp<dist_t>(-1);\n\n}\ntemplate <typename dist_t>\nSpace<dist_t>* CreateL1(const AnyParams& /* ignoring params */) {\n  return new SpaceLp<dist_t>(1);\n}\ntemplate <typename dist_t>\nSpace<dist_t>* CreateL2(const AnyParams& /* ignoring params */) {\n  return new SpaceLp<dist_t>(2);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateL(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  dist_t p;\n\n  pmgr.GetParamRequired(\"p\",  p);\n\n  return new SpaceLp<dist_t>(p);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_savch.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_SAVCH_H\n#define FACTORY_SPACE_SAVCH_H\n\n#include <limits.h>\n#include <cmath>\n\n#include <space/space_vector_gen.h>\n\nnamespace similarity {\n\nusing std::sqrt;\n\nconst int DELTA=1;\nconst int POINTS_IN_W=10;\nconst int POINTS_IN_H=10;\nconst int HISTO_SIZE=8;\n\n#define DISTANCE CHI_SQUARE\n\n/*\n * Creating functions.\n */\n\ntemplate <class ElementType>\nstruct SavchSpace {\n  ElementType accum_dist (ElementType a, ElementType b) const {\n    ElementType res = 0;\n#if DISTANCE==MANHATTEN\n    res = std::abs(a-b);\n#elif DISTANCE==EUC\n    res =(a-b)*(a-b);\n#elif DISTANCE==CHI_SQUARE\n    if((a+b)>0)\n      res=(a-b)*(a-b)/(a+b);\n#endif\n    return res;\n  };\n\n  ElementType operator()(const ElementType* x, const ElementType* y, size_t qty) const {\n    const ElementType *lhs, *rhs;\n    ElementType result = 0;\n    for (int i = 0; i < POINTS_IN_H; ++i) {\n      size_t iMin = i >= DELTA ? i - DELTA : 0;\n      size_t iMax = i + DELTA;\n      if (iMax >= POINTS_IN_H)\n        iMax = POINTS_IN_H - 1;\n      for (int j = 0; j < POINTS_IN_W; ++j) {\n        size_t jMin = j >= DELTA ? j - DELTA : 0;\n        size_t jMax = j + DELTA;\n        if (jMax >= POINTS_IN_W)\n        jMax = POINTS_IN_W - 1;\n        ElementType minSum = numeric_limits<ElementType>::max();\n        size_t i1 = i, j1 = j;\n        lhs = y + (i1*POINTS_IN_W + j1)*HISTO_SIZE;\n        for (size_t i2 = iMin; i2 <= iMax; ++i2){\n          for (size_t j2 = jMin; j2 <= jMax; ++j2){\n            rhs = x + (i2*POINTS_IN_W + j2)*HISTO_SIZE;\n            ElementType curSum = 0;\n            const ElementType* llhs = lhs;\n            for (size_t ind = 0; ind < HISTO_SIZE; ++ind){\n              float d1 = *llhs++;\n              float d2 = *(rhs + ind);\n\n              //curSum += accum_dist(d1, d2, 1);\n              curSum += accum_dist(d1, d2);\n            }\n            if (curSum<0)\n              curSum = 0;\n            if (minSum>curSum){\n              minSum = curSum;\n            }\n          }\n        }\n        result += sqrt(minSum);\n      }\n    }\n    return result;\n  }\n};\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSavch(const AnyParams& /* ignoring params */) {\n  return new VectorSpaceGen<dist_t, SavchSpace<dist_t>>();\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_scalar.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_SCALAR_H\n#define FACTORY_SPACE_SCALAR_H\n\n#include <space/space_scalar.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateCosineSimilarity(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceCosineSimilarity<dist_t>();\n}\n\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateAngularDistance(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceAngularDistance<dist_t>();\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_sparse_lp.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_SPARSE_LP_H\n#define FACTORY_SPACE_SPARSE_LP_H\n\n#include <space/space_sparse_lp.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseLINF(const AnyParams& /* ignoring params */) {\n  // Chebyshev Distance\n  return new SpaceSparseLp<dist_t>(-1);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseL1(const AnyParams& /* ignoring params */) {\n  return new SpaceSparseLp<dist_t>(1);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseL2(const AnyParams& /* ignoring params */) {\n  return new SpaceSparseLp<dist_t>(2);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseL(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  dist_t p;\n\n  pmgr.GetParamRequired(\"p\",  p);\n\n  return new SpaceSparseLp<dist_t>(p);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_sparse_scalar.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_SPARSE_SCALAR_H\n#define FACTORY_SPACE_SPARSE_SCALAR_H\n\n#include <space/space_sparse_scalar.h>\n#include <space/space_sparse_scalar_fast.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseCosineSimilarity(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceSparseCosineSimilarity<dist_t>();\n}\n\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSparseAngularDistance(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceSparseAngularDistance<dist_t>();\n}\n\nSpace<float>* CreateSparseCosineSimilarityFast(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceSparseCosineSimilarityFast();\n}\n\n\nSpace<float>* CreateSparseAngularDistanceFast(const AnyParams& /* ignoring params */) {\n  // Cosine Similarity\n  return new SpaceSparseAngularDistanceFast();\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_sqfd.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_SQFD_H\n#define FACTORY_SPACE_SQFD_H\n\n#if !defined(_MSC_VER)\n\n#include \"space/space_sqfd.h\"\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSqfdHeuristicFunc(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  dist_t alpha;\n  pmgr.GetParamRequired(\"alpha\", alpha);\n\n  return new SpaceSqfd<dist_t>(new SqfdHeuristicFunction<dist_t>(alpha));\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSqfdMinusFunc(const AnyParams& ignore) {\n  return new SpaceSqfd<dist_t>(new SqfdMinusFunction<dist_t>);\n}\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateSqfdGaussianFunc(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  dist_t alpha;\n  pmgr.GetParamRequired(\"alpha\", alpha);\n\n  return new SpaceSqfd<dist_t>(new SqfdGaussianFunction<dist_t>(alpha));\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/factory/space/space_word_embed.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef FACTORY_SPACE_WORD_EMBED_H\n#define FACTORY_SPACE_WORD_EMBED_H\n\n#include <space/space_word_embed.h>\n\nnamespace similarity {\n\n/*\n * Creating functions.\n */\n\ntemplate <typename dist_t>\nSpace<dist_t>* CreateWordEmbed(const AnyParams& AllParams) {\n  AnyParamManager pmgr(AllParams);\n\n  EmbedDistSpace distType;\n\n  string s;\n\n  pmgr.GetParamRequired(\"dist\",  s);\n\n  ToLower(s); \n\n  if (SPACE_WORD_EMBED_DIST_L2 == s) \n    distType = kEmbedDistL2;\n  else if (SPACE_WORD_EMBED_DIST_COSINE == s)\n    distType = kEmbedDistCosine;\n  else throw runtime_error(\"Unsupported/unknown distance type for embeddings: '\" + s + \"'\");\n\n  pmgr.CheckUnused();\n\n  return new WordEmbedSpace<dist_t>(distType);\n}\n\n/*\n * End of creating functions.\n */\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/flexbuff.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <memory>\n\n#ifndef FLEX_MINIMUM_ALLOC_BUFF_H\n#define FLEX_MINIMUM_ALLOC_BUFF_H\n\n/*\n * Allocates an array\n *\n * 1) on the stack, if the number of elements doesn't exceed iMaxStackQty\n * 2) on the heap (and on the stack), if the number of elements does exceed iMaxStackQty\n *\n * One allocation can be relatively expensive (dozens or hundreds CPU cycles). However,\n * the amortized allocation cost can be quite small, if, most of the time, we deal\n * with small data that can be allocated on the stack.\n *\n * A word of caution: \n *  i) Use small values for iMaxStackQty (so that allocated memory is in the order of 1-4KB or smaller),\n *  ii) The stack has limited size (by default on Linux it's 8 MB). \n *  iii) Therefore, the more threads you use the more likely the program will crash.\n */\n#define DECLARE_FLEXIBLE_BUFF(ElemType, varName, iBuffQty, iMaxStackQty) \\\n        std::unique_ptr<ElemType[]>     varName ## HeapBuff; \\\n        ElemType                        varName ## LocalBuff[iMaxStackQty];\\\n        ElemType*                       varName = varName ## LocalBuff ;\\\n        if (iBuffQty > iMaxStackQty) {\\\n            varName ## HeapBuff.reset(new ElemType[iBuffQty]);\\\n            varName = varName ## HeapBuff .get() ;\\\n        }\n\n/*\n\n  Some dumb code that can be used to test the above (also, e.g, with valgrind). \n  Unfortunately, you can't do with a unit test.\n\n// Change to 1 to see if the delete was actually called\n#if 0\nvoid  operator delete  ( void* ptr   ) { cout << \"delete called\" << endl; free( ptr ); }\nvoid  operator delete[]( void* ptr   ) { cout << \"delete[] called\" << endl; free( ptr ); }\n#endif\n\n\nint main(int,char**) {\n  // Maximum default stack size is 8192MB or 2048 ints\n  // One must be careful here not to exceed this number\n  const unsigned ELEM_QTY = 1024 * 32;\n\n  size_t bufQty = ELEM_QTY +1, stackQty = ELEM_QTY ;\n  DECLARE_FLEXIBLE_BUFF(int, var1, bufQty, stackQty);\n  for (int i = 0; i < bufQty; ++i) var1[i] = 255;\n\n  bufQty = ELEM_QTY ; stackQty = ELEM_QTY ;\n  DECLARE_FLEXIBLE_BUFF(int, var2, bufQty, stackQty);\n  for (int i = 0; i < bufQty; ++i) var2[i] = 255;\n\n  DECLARE_FLEXIBLE_BUFF(char, var3, 1025, 1024);\n  for (int i = 0; i < 1025; ++i) var3[i] = 255;\n\n  DECLARE_FLEXIBLE_BUFF(double, var4, ELEM_QTY * 2, ELEM_QTY);\n  for (int i = 0; i < ELEM_QTY * 2; ++i) var4[i] = -1;\n}\n\n*/\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/floatdiff.h",
    "content": "// -*- c++ -*-\n//\n// Copyright 2005, Google Inc.\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Authors: Zhanyong Wan, Sean Mcafee\n//\n// Taken from The Google C++ Testing Framework (Google Test).\n// Modified for the discussion by Fred Richards:\n// http://www.working-software.com/node/35\n//\n// Leo(nid) Boytsov slightly improved the class by \n// 1) Making ULP_diff public\n// 2) Allowing to specify the maximum number in ULPs to be considered equal\n//    (and removing the default maxUlp)\n \n#ifndef FLOATING_POINT_DIFF_H\n#define FLOATING_POINT_DIFF_H\n \n#include <cstdint>\n#include <limits>\n \n \nnamespace\n{\n    template <size_t bytes>\n    struct TypeWithSize\n    {\n        typedef void UInt;\n    };\n \n    template <>\n    struct TypeWithSize<4>\n    {\n        typedef uint32_t UInt;\n    };\n \n    template <>\n    struct TypeWithSize<8>\n    {\n        typedef uint64_t UInt;\n    };\n}\n \n \ntemplate <typename RawType>\nclass FloatingPointDiff\n{\npublic:\n    typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits;\n \n    static const size_t kBitCount = 8*sizeof(RawType);\n    static const size_t kFracBitCount = std::numeric_limits<RawType>::digits - 1;\n    static const size_t kExpBitCount = kBitCount - 1 - kFracBitCount;\n \n    static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1);\n    static const Bits kFracBitMask = ~static_cast<Bits>(0) >> (kExpBitCount + 1);\n    static const Bits kExpBitMask = ~(kSignBitMask | kFracBitMask);\n \n    explicit FloatingPointDiff(const RawType& x) : value_(x) {}\n \n    //\n    // Now checking for NaN to match == behavior.\n    //\n    bool AlmostEquals(const FloatingPointDiff& rhs, size_t maxUlps) const {\n        if (is_nan() || rhs.is_nan()) return false;\n        return ULP_diff(bits_, rhs.bits_) <= maxUlps;\n    }\n\n    Bits ULP_diff(const FloatingPointDiff& rhs) const {\n        return ULP_diff(bits_, rhs.bits_);\n    }\n \n    bool is_nan() const {\n        return ((kExpBitMask & bits_) == kExpBitMask) &&\n\t        ((kFracBitMask & bits_) != 0);\n    }\n \nprivate:\n    Bits SignAndMagnitudeToBiased(const Bits& sam) const {\n        if (kSignBitMask & sam) {\n            return ~sam + 1;  // two's complement\n        } else {\n            return kSignBitMask | sam;  // * 2\n        }\n    }\n \n    Bits ULP_diff(const Bits& sam1, const Bits& sam2) const\n    {\n        const Bits biased1 = SignAndMagnitudeToBiased(sam1);\n        const Bits biased2 = SignAndMagnitudeToBiased(sam2);\n \n        return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);\n    }\n \n    union {\n        RawType value_;\n        Bits bits_;\n    };\n};\n \n#endif // FLOATING_POINT_DIFF_H\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/global.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _GLOBAL_H_\n#define _GLOBAL_H_\n\n#include <stddef.h>\n#include <stdio.h>\n#include <stdlib.h>\n\nstatic const int kMaxFilenameLength = 255;\n\n#define ARRAY_SIZE(x) (static_cast<int>(sizeof(x)/sizeof(*x)))\n\n#ifdef __GNUC__\n#define DEPRECATED(func)  __attribute__ ((deprecated)) func\n#elif defined(_MSC_VER)\n#define DEPRECATED(func)  __declspec(deprecated) func\n#else\n#pragma message(\"WARNING: You need to implement DEPRECATED for this compiler\")\n#define DEPRECATED(func)  func\n#endif\n\nnamespace similarity {\n\n#undef DISABLE_COPY_AND_ASSIGN\n#define DISABLE_COPY_AND_ASSIGN(Type) \\\n  explicit Type(const Type&); \\\n  Type& operator=(const Type&)\n\n/*\n * On windows, disabling copy&assign generates way to many warnings C4661\n * Let's disable this warning.\n */\n#if defined(_MSC_VER)\n  #pragma warning(disable: 4661)\n#endif\n\n}   // namespace similarity\n\n#endif    // _GLOBAL_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/gold_standard.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef GOLD_STANDARD_H\n#define GOLD_STANDARD_H\n\n#include <vector>\n#include <algorithm>\n#include <iostream>\n#include <memory>\n#include <cmath>\n#include <thread>\n\n#include \"object.h\"\n#include \"query_creator.h\"\n#include \"space.h\"\n#include \"utils.h\"\n#include \"ztimer.h\"\n\n#define SEQ_SEARCH_TIME        \"SeqSearchTime\"\n#define SEQ_GS_QTY             \"GoldStandQty\"\n#define GS_NOTE_FIELD          \"Note\"\n#define GS_TEST_SET_ID         \"TestSetId\"\n#define GS_THREAD_TEST_QTY     \"ThreadTestQty\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::ostream;\nusing std::istream;\nusing std::unique_ptr;\nusing std::thread;\nusing std::ref;\n\n\ntemplate <class dist_t>\nstruct ResultEntry {\n  IdType      mId;\n  LabelType   mLabel;\n  dist_t      mDist;\n  ResultEntry(IdType id = 0, LabelType label = 0, dist_t dist = 0) \n                 : mId(id), mLabel(label), mDist(dist) {}\n\n  /*\n   * Reads entry in the binary format (can't read if the data was written\n   * on the machine with another type of endianness.)\n   */\n  void readBinary(istream& in) {\n    in.read(reinterpret_cast<char*>(&mId),    sizeof mId);\n    in.read(reinterpret_cast<char*>(&mLabel), sizeof mLabel);\n    in.read(reinterpret_cast<char*>(&mDist),  sizeof mDist);\n  }\n  /*\n   * Saves entry in the binary format, see the comment\n   * on the endianness above.\n   */\n  void writeBinary(ostream& out) const {\n    out.write(reinterpret_cast<const char*>(&mId),    sizeof mId);\n    out.write(reinterpret_cast<const char*>(&mLabel), sizeof mLabel);\n    out.write(reinterpret_cast<const char*>(&mDist),  sizeof mDist);\n  }\n  bool operator<(const ResultEntry& o) const {\n    if (mDist != o.mDist) return mDist < o.mDist;\n    return mId < o.mId;\n  }\n  bool operator==(const ResultEntry& o) const {\n    return mId    == o.mId    && \n           mDist  == o.mDist  && \n           mLabel == o.mLabel;\n  }\n};\n\ntemplate <class dist_t>\nostream& operator<<(ostream& out, const ResultEntry<dist_t>& e) {\n  return out << \"[\" << e.mId << \" lab=\" << e.mLabel << \" dist=\" << e.mDist << \"]\";\n}\n\nenum ClassResult {\n  kClassUnknown,\n  kClassCorrect,\n  kClassWrong,\n};\n\ntemplate <class dist_t>\nclass GoldStandard {\npublic:\n  GoldStandard(){}\n  GoldStandard(const typename similarity::Space<dist_t>& space,\n              const ObjectVector& datapoints,\n              typename similarity::Query<dist_t>* query,\n              float maxKeepEntryCoeff\n              ) {\n    DoSeqSearch(space, datapoints, query);\n    size_t maxKeepEntryQty =\n        std::min((size_t)std::round(query->ResultSize()*maxKeepEntryCoeff),\n                 SortedAllEntries_.size());\n\n    if (maxKeepEntryQty != 0) {\n      CHECK(maxKeepEntryQty <= SortedAllEntries_.size())\n      vector<ResultEntry<dist_t>>         tmp(SortedAllEntries_.begin(),\n                                              SortedAllEntries_.begin() + maxKeepEntryQty);\n      /* \n       * The swap trick actually leads to memory being freed.\n       * If we simply erase the extra entries, vector still keeps the memory!\n       */\n      SortedAllEntries_.swap(tmp);\n    }\n  }\n  /*\n   * See the endianness comment.\n   */\n  void Write(ostream& controlStream, ostream& binaryStream) const {\n\n    WriteField(controlStream, SEQ_SEARCH_TIME, ConvertToString(SeqSearchTime_));\n    WriteField(controlStream, SEQ_GS_QTY, ConvertToString(SortedAllEntries_.size()));\n    for (size_t i = 0; i < SortedAllEntries_.size(); ++i) {\n      SortedAllEntries_[i].writeBinary(binaryStream);\n    }\n  }\n\n  void Read(istream& controlStream, istream& binaryStream) {\n    string s;\n    ReadField(controlStream, SEQ_SEARCH_TIME, s);\n    ConvertFromString(s, SeqSearchTime_);\n    ReadField(controlStream, SEQ_GS_QTY, s);\n    size_t qty = 0;\n    ConvertFromString(s, qty);\n    SortedAllEntries_.resize(qty);\n    for (size_t i = 0; i < qty; ++i)\n      SortedAllEntries_[i].readBinary(binaryStream);\n  }\n  uint64_t GetSeqSearchTime()     const { return SeqSearchTime_; }\n\n  /*\n   * SortedAllEntries_ include all database entries sorted in the order\n   * of increasing distance from the query.\n   */\n  const vector<ResultEntry<dist_t>>&   GetSortedEntries() const { return  SortedAllEntries_;}\nprivate:\n  void DoSeqSearch(const Space<dist_t>& space,\n                   const ObjectVector&  datapoints,\n                   typename similarity::Query<dist_t>* pQuery) {\n    WallClockTimer  wtm;\n\n    wtm.reset();\n\n    SortedAllEntries_.resize(datapoints.size());\n    const Object* pQueryObj = pQuery->QueryObject();\n\n    for (size_t i = 0; i < datapoints.size(); ++i) {\n      // Distance can be asymmetric, but the query is always on the right side\n      SortedAllEntries_[i] = ResultEntry<dist_t>(datapoints[i]->id(),\n                                                 datapoints[i]->label(),\n                                                 space.IndexTimeDistance(datapoints[i], pQueryObj));\n      pQuery->CheckAndAddToResult(SortedAllEntries_[i].mDist, datapoints[i]);\n    }\n\n    wtm.split();\n\n    SeqSearchTime_ = wtm.elapsed();\n\n    std::sort(SortedAllEntries_.begin(), SortedAllEntries_.end());\n  }\n\n  uint64_t                            SeqSearchTime_;\n\n  vector<ResultEntry<dist_t>>         SortedAllEntries_;\n};\n\ntemplate <typename dist_t, typename QueryCreatorType>\nstruct GoldStandardThreadParams {\n  const ExperimentConfig<dist_t>&             config_;\n  const QueryCreatorType&                     QueryCreator_;\n  float                                       maxKeepEntryCoeff_;\n  const unsigned                              ThreadQty_;\n  const unsigned                              GoldStandPart_;\n  vector<unique_ptr<GoldStandard<dist_t>>>&   vGoldStand_;\n  GoldStandardThreadParams(const ExperimentConfig<dist_t>& config,\n                           const QueryCreatorType& QueryCreator,\n                           float maxKeepEntryCoeff,\n                           unsigned ThreadQty,\n                           unsigned GoldStandPart,\n                           vector<unique_ptr<GoldStandard<dist_t>>>& vGoldStand) : config_(config),\n                                                                                   QueryCreator_(QueryCreator),\n                                                                                   maxKeepEntryCoeff_(maxKeepEntryCoeff),\n                                                                                   ThreadQty_(ThreadQty),\n                                                                                   GoldStandPart_(GoldStandPart),\n                                                                                   vGoldStand_(vGoldStand) {}\n};\n\ntemplate <typename dist_t, typename QueryCreatorType>\nstruct GoldStandardThread {\n  void operator ()(GoldStandardThreadParams<dist_t,QueryCreatorType>& prm) {\n    size_t numquery = prm.config_.GetQueryObjects().size();\n\n    unsigned GoldStandPart = prm.GoldStandPart_;\n    unsigned ThreadQty = prm.ThreadQty_;\n\n    for (size_t q = 0; q < numquery; ++q) {\n      if ((q % ThreadQty) == GoldStandPart) {\n        unique_ptr<Query<dist_t>> query(prm.QueryCreator_(prm.config_.GetSpace(),\n                                                          prm.config_.GetQueryObjects()[q]));\n\n        prm.vGoldStand_[q].reset(new GoldStandard<dist_t>(prm.config_.GetSpace(),\n                                                          prm.config_.GetDataObjects(),\n                                                          query.get(),\n                                                          prm.maxKeepEntryCoeff_));\n      }\n    }\n  }\n};\n\ntemplate <class dist_t>\nclass GoldStandardManager {\npublic:\n  GoldStandardManager(const ExperimentConfig<dist_t>&  config) :\n                      config_(config),\n                      vvGoldStandardRange_(config_.GetRange().size()),\n                      vvGoldStandardKNN_(config_.GetKNN().size()) {}\n  // Both read and Compute can be called multiple times\n  // if maxKeepEntryCoeff is non-zero, it defines how many GS entries (relative to the result set size) we memorize\n  void Compute(size_t threadQty, float maxKeepEntryCoeff) {\n    threadQty = std::max(size_t(1), threadQty);\n    LOG(LIB_INFO) << \"Computing gold standard data using \" << threadQty << \" threads, keeping \" << maxKeepEntryCoeff<< \" times result set size entries\";;\n    for (size_t i = 0; i < config_.GetRange().size(); ++i) {\n      vvGoldStandardRange_[i].clear();\n      const dist_t radius = config_.GetRange()[i];\n      RangeCreator<dist_t>  cr(radius);\n      procOneSet(cr, vvGoldStandardRange_[i], threadQty, maxKeepEntryCoeff);\n    }\n    for (size_t i = 0; i < config_.GetKNN().size(); ++i) {\n      vvGoldStandardKNN_[i].clear();\n      const size_t K = config_.GetKNN()[i];\n      KNNCreator<dist_t>  cr(K, config_.GetEPS());\n      procOneSet(cr, vvGoldStandardKNN_[i], threadQty, maxKeepEntryCoeff);\n    }\n  }\n  void Read(istream& controlStream, istream& binaryStream,\n            size_t queryQty,\n            size_t& testSetId,\n            size_t& savedThreadQty) {\n    LOG(LIB_INFO) << \"Reading gold standard data from cache\";\n    string s;\n    ReadField(controlStream, GS_TEST_SET_ID, s);\n    ConvertFromString(s, testSetId);\n    ReadField(controlStream, GS_THREAD_TEST_QTY, savedThreadQty);\n    for (size_t i = 0; i < vvGoldStandardRange_.size(); ++i) {\n      ReadField(controlStream, GS_NOTE_FIELD, s);\n      vvGoldStandardRange_[i].clear();\n      readOneGS(controlStream, binaryStream,\n                queryQty, vvGoldStandardRange_[i]);\n    }\n    for (size_t i = 0; i < vvGoldStandardKNN_.size(); ++i) {\n      ReadField(controlStream, GS_NOTE_FIELD, s);\n      vvGoldStandardKNN_[i].clear();\n      readOneGS(controlStream, binaryStream,\n                queryQty, vvGoldStandardKNN_[i]);\n    }\n  }\n  void Write(ostream& controlStream, ostream& binaryStream,\n             size_t testSetId, size_t threadTestQty) {\n    WriteField(controlStream, GS_TEST_SET_ID, ConvertToString(testSetId));\n    WriteField(controlStream,GS_THREAD_TEST_QTY, threadTestQty);\n    // GS_NOTE_FIELD & GS_TEST_SET_ID are for informational purposes only\n    for (size_t i = 0; i < vvGoldStandardRange_.size(); ++i) {\n      WriteField(controlStream, GS_NOTE_FIELD,\n                \"range radius=\" + ConvertToString(config_.GetRange()[i]));\n      writeOneGS(controlStream, binaryStream,\n                 vvGoldStandardRange_[i]);\n    }\n    for (size_t i = 0; i < vvGoldStandardKNN_.size(); ++i) {\n      WriteField(controlStream, GS_NOTE_FIELD,\n                \"k=\" + ConvertToString(config_.GetKNN()[i]) +\n                \"eps=\" + ConvertToString(config_.GetEPS()));\n      writeOneGS(controlStream, binaryStream,\n                 vvGoldStandardKNN_[i]);\n    }\n  }\n  const vector<unique_ptr<GoldStandard<dist_t>>> &GetRangeGS(size_t i) const {\n    return vvGoldStandardRange_[i];\n  }\n  const vector<unique_ptr<GoldStandard<dist_t>>> &GetKNNGS(size_t i) const {\n    return vvGoldStandardKNN_[i];\n  }\nprivate:\n  const ExperimentConfig<dist_t>&         config_;\n  vector<vector<unique_ptr<GoldStandard<dist_t>>>>    vvGoldStandardRange_;\n  vector<vector<unique_ptr<GoldStandard<dist_t>>>>    vvGoldStandardKNN_;\n\n  void writeOneGS(ostream& controlStream, ostream& binaryStream,\n                  const vector<unique_ptr<GoldStandard<dist_t>>>& oneGS) {\n    for(const unique_ptr<GoldStandard<dist_t>>& obj : oneGS) {\n      obj->Write(controlStream, binaryStream);\n    }\n  }\n\n  void readOneGS(istream& controlStream, istream& binaryStream,\n                 size_t queryQty,\n                 vector<unique_ptr<GoldStandard<dist_t>>>& oneGS) {\n    oneGS.resize(queryQty);\n    for (size_t k = 0; k < queryQty; ++k) {\n      unique_ptr<GoldStandard<dist_t>>  gs(new GoldStandard<dist_t>());\n      gs->Read(controlStream, binaryStream);\n      oneGS[k].reset(gs.release());\n    }\n  }\n\n  template <typename QueryCreatorType>\n  void procOneSet(const QueryCreatorType&                   QueryCreator,\n                  vector<unique_ptr<GoldStandard<dist_t>>>& vGoldStand,\n                  size_t                                    threadQty,\n                  float                                     maxKeepEntryCoeff) {\n    size_t queryQty = config_.GetQueryObjects().size();\n    vGoldStand.resize(queryQty);\n\n    vector<unique_ptr<GoldStandardThreadParams<dist_t,QueryCreatorType>>> GoldStandParams(threadQty);\n\n    for (unsigned GoldPart = 0; GoldPart < threadQty; ++GoldPart) {\n      GoldStandParams[GoldPart].reset(\n          new GoldStandardThreadParams<dist_t, QueryCreatorType>(config_,\n                                                                 QueryCreator,\n                                                                 maxKeepEntryCoeff,\n                                                                 threadQty,\n                                                                 GoldPart,\n                                                                 vGoldStand));\n    }\n\n    if (threadQty == 1) {\n      GoldStandardThread<dist_t, QueryCreatorType>()(*GoldStandParams[0]);\n    } else {\n      vector<thread> Threads(threadQty);\n\n      for (unsigned GoldPart = 0; GoldPart < threadQty; ++GoldPart) {\n        Threads[GoldPart] = thread(GoldStandardThread<dist_t,QueryCreatorType>(),ref(*GoldStandParams[GoldPart]));\n      }\n\n      for (unsigned GoldPart = 0; GoldPart < threadQty; ++GoldPart) {\n        Threads[GoldPart].join();\n      }\n    }\n  }\n};\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/idtype.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *_\n */\n\n#ifndef ID_TYPE_H\n#define ID_TYPE_H\n\n#include <cstdint>\n\nnamespace similarity {\n\nusing std::numeric_limits;\n\n/* \n * We are not gonna have billions of records or labels in the foreseeable future\n * Negative values would represent missing labels and ids. In principle, it is probably\n * easy to switch to 8-byte IDs by simply changing below typedef declarations.\n * However, some caution needs to be excecised because\n * 1) We want to preserve alignment (extra padding in the Object may be needed (see the comment in object.h).\n * 2) We need to carefully check all the contexts where IDs are used. It is not impossible that some\n *    code declares IDs as int-type.\n */\ntypedef int32_t  IdType;\ntypedef uint32_t IdTypeUnsign;\nconst IdTypeUnsign MAX_DATASET_QTY = numeric_limits<IdType>::max();\n\ntypedef int32_t LabelType;\n\n#define LABEL_PREFIX \"label:\"\n#define EMPTY_LABEL  numeric_limits<LabelType>::min()\n\nconst size_t ID_SIZE         = sizeof(IdType);\nconst size_t LABEL_SIZE      = sizeof(LabelType);\nconst size_t DATALENGTH_SIZE = sizeof(size_t);\n\n}   // namespace similarity\n\n#endif    // _OBJECT_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/incremental_quick_select.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _INCREMENTAL_QUICK_SELECT_H_\n#define _INCREMENTAL_QUICK_SELECT_H_\n\n#include <vector>\n#include <stack>\n#include \"global.h\"\n\nnamespace similarity {\n\ntemplate <typename T>\nclass IncrementalQuickSelect {\n public:\n  explicit IncrementalQuickSelect(std::vector<T>& x)\n      : x_(x), n_(static_cast<int>(x.size())), idx_(0) {\n    stk_.push(n_);\n  }\n\n  ~IncrementalQuickSelect() {}\n\n  T GetNext() {\n    CHECK(idx_ <= stk_.top());\n    if (stk_.top() == idx_) {\n      stk_.pop();\n      return x_[idx_];\n    } else {\n      int pivot_idx = idx_;     // OR random[idx, stk.top() - 1]\n      int pivot_idx_final = Partition(pivot_idx, idx_, stk_.top() - 1);\n      stk_.push(pivot_idx_final);\n      return GetNext();\n    }\n  }\n\n  inline bool Next() {\n    ++idx_;\n    return idx_ < n_;\n  }\n\n private:\n\n  int Partition(int pivot_idx, int left, int right) {\n    T pivot = x_[pivot_idx];\n    for (;;) {\n      while (x_[left] < pivot) ++left;\n      while (x_[right] > pivot) --right;\n\n      if (left >= right) {\n        break;\n      } else if (x_[left] == x_[right]) {\n        ++left;\n      } else if (left < right) {\n        std::swap(x_[left], x_[right]);\n      }\n    }\n    return right;\n  }\n\n  std::vector<T>& x_;\n  const int n_;\n  int idx_;\n  std::stack<int> stk_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(IncrementalQuickSelect);\n};\n\n}  // namespace similarity\n\n#endif     //  _INCREMENTAL_QUICK_SELECT_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/index.h",
    "content": "/**\n * Non-metric Space Library\n *#\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _INDEX_STRUCTURE_H_\n#define _INDEX_STRUCTURE_H_\n\n#include <stdio.h>\n#include <string>\n#include <vector>\n\n#include \"params.h\"\n#include \"object.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\n\n/*\n * This error message is used to report the situation\n * when a previously used index is used with a different\n * data set\n */\nconst string DATA_MUTATION_ERROR_MSG =\n    \"A previously saved index is apparently used with a different data set, a different data set split, and/or a different gold standard file!\";\nconst string METHOD_DESC=\"MethodDesc\";\nconst string LINE_QTY=\"LineQty\";\n\ntemplate <typename dist_t>\nclass RangeQuery;\n\ntemplate <typename dist_t>\nclass KNNQuery;\n\n/*\n * Abstract class for all index structures\n */\ntemplate <typename dist_t>\nclass Index {\npublic:\n  // Create an index using given parameters\n  virtual void CreateIndex(const AnyParams& indexParams) = 0;\n  // SaveIndex is not necessarily implemented\n  virtual void SaveIndex(const string& location) {\n    throw runtime_error(\"SaveIndex is not implemented for method: \" + StrDesc());\n  }\n  // LoadIndex is not necessarily implemented\n  virtual void LoadIndex(const string& location) {\n    throw runtime_error(\"LoadIndex is not implemented for method: \" + StrDesc());\n  }\n  virtual ~Index() {}\n  /*\n   * There are two type of search methods: a range search and a k-Nearest Neighbor search.\n   * In both cases, you can specify an optional starting data point/object. Some methods, e.g.,\n   * based on proximity graphs, can use this information to make the search faster and/or more \n   * accurate. \n   */\n  virtual void Search(RangeQuery<dist_t>* query, IdType startObj = -1) const = 0;\n  virtual void Search(KNNQuery<dist_t>* query, IdType startObj = -1) const = 0;\n  // Get the description of the method\n  virtual const string StrDesc() const = 0;\n  // Set query-time parameters\n  virtual void SetQueryTimeParams(const AnyParams& params) = 0;\n  // Reset query-time parameters so that they have default values\n  virtual void ResetQueryTimeParams() { SetQueryTimeParams(getEmptyParams()); }\n  /*\n   * In rare cases, mostly when we wrap up 3rd party methods,\n   * we simply duplicate the data set. This function\n   * let the experimentation code know this, so it could\n   * adjust the memory consumption of the index.\n   */\n  virtual bool DuplicateData() const { return false; }\n\nprivate:\n  template <typename QueryType>\n  void GenericSearch(QueryType* query, IdType) const;\n\n};\n\n}  // namespace similarity\n\n#endif     // _METRIC_INDEX_STRUCTURE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/init.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _INIT_H_\n#define _INIT_H_\n\n/*\n * This function should be called only *ONCE*,\n * but before actually using library functionality.\n */\n\n#include \"logging.h\"\n\nnamespace similarity {\n\n  void initLibrary(LogChoice choice = LIB_LOGNONE, const char*pLogFile = NULL);\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/knnquery.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _KNNQUERY_H_\n#define _KNNQUERY_H_\n\n#include \"object.h\"\n#include \"query.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass KNNQueue;\n\ntemplate <typename dist_t>\nclass Index;\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass KNNQuery : public Query<dist_t> {\n public:\n  ~KNNQuery();\n  KNNQuery(const Space<dist_t>& space, const Object* query_object, const unsigned K, float eps = 0);\n\n  const KNNQueue<dist_t>* Result() const;\n  virtual dist_t Radius() const;\n  unsigned ResultSize() const;\n  unsigned GetK() const { return K_; }\n  float GetEPS() const { return eps_; }\n\n  void Reset();\n  bool CheckAndAddToResult(const dist_t distance, const Object* object);\n  bool CheckAndAddToResult(const Object* object);\n  size_t CheckAndAddToResult(const ObjectVector& bucket);\n\n  bool Equals(const KNNQuery<dist_t>* query) const;\n  void Print() const;\n  static std::string Type() { return \"K-NN\"; }\n\n protected:\n  unsigned K_;\n  float eps_;\n  KNNQueue<dist_t>* result_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(KNNQuery);\n};\n\n}     // namespace similarity\n\n#endif   // _QUERY_TYPES_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/knnqueue.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _KNN_QUEUE_H_\n#define _KNN_QUEUE_H_\n\n#include <queue>\n#include <vector>\n#include <utility>\n#include <limits>\n\n#include \"global.h\"\n#include \"object.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass KNNQueue {\n public:\n  KNNQueue(unsigned K) : K_(K) {}\n\n  ~KNNQueue() {}\n\n  void Reset() { QueueType empty; std::swap(empty, queue_); }\n\n  bool Empty() const { return queue_.empty(); }\n\n  size_t Size() const { return queue_.size(); }\n\n  dist_t TopDistance() const {\n    return queue_.empty()\n        ? std::numeric_limits<dist_t>::max()\n        : queue_.top().first;\n  }\n\n  const Object* TopObject() const { return queue_.top().second; }\n\n  const Object* Pop() {\n    const Object* top_object = TopObject();\n    queue_.pop();\n    return top_object;\n  }\n\n  void Push(const dist_t distance, const Object* object) {\n    if (Size() < K_) {\n      queue_.push(QueueElement(distance, object));\n    } else {\n      if (TopDistance() > distance) {\n        Pop();\n        queue_.push(QueueElement(distance, object));\n      }\n    }\n  }\n\n  KNNQueue* Clone() const {\n    KNNQueue* clone = new KNNQueue(K_);\n    clone->queue_ = queue_;\n    return clone;\n  }\n\n private:\n  typedef std::pair<dist_t, const Object*> QueueElement;\n  typedef std::priority_queue<QueueElement> QueueType;\n\n  QueueType queue_;\n  unsigned K_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(KNNQueue);\n};\n\n}   // namespace similarity\n\n#endif   // _KNN_QUEUE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/logging.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _LOGGING_H_\n#define _LOGGING_H_\n\n#include <fstream>\n#include <iostream>\n#include <string>\n#include <sstream>\n#include <stdexcept>\n\nusing std::ostream;\nusing std::ofstream;\nusing std::cerr;\nusing std::stringstream;\nusing std::runtime_error;\n\nenum LogSeverity {LIB_INFO, LIB_WARNING, LIB_ERROR, LIB_FATAL};\nenum LogChoice  {LIB_LOGNONE, LIB_LOGFILE, LIB_LOGSTDERR};\n\nstd::string LibGetCurrentTime();\n\n// write log to file\nvoid InitializeLogger(LogChoice choice = LIB_LOGNONE, const char* logfile = NULL);\n\nclass Logger {\n public:\n  Logger(LogSeverity severity, const std::string& file, int line, const char* function);\n  ~Logger();\n\n  static std::ostream& stream() { return *currstrm_ ; }\n\n private:\n  LogSeverity severity_;\n\n  static ofstream logfile_;\n\n  static ostream* currstrm_;\n\n  // If choice != LIB_LOGFILE the second argument is ignored\n  friend void InitializeLogger(LogChoice choice, const char* logfile);\n};\n\nclass RuntimeErrorWrapper {\n public:\n  RuntimeErrorWrapper(const std::string& file, int line, const char* function);\n\n  stringstream& stream() { return currstrm_ ; }\n\n private:\n  stringstream currstrm_;\n};\n\n\n#define LOG(severity) \\\n  Logger(severity, __FILE__, __LINE__, __FUNCTION__).stream()\n\n\n#define CHECK(condition) \\\n  if (!(condition)) {\\\n    LOG(LIB_ERROR) << \"Check failed: \" << #condition;  \\\n    throw runtime_error(\"Check failed: it's either a bug or inconsistent data!\"); \\\n  }\n\n#define CHECK_MSG(condition,message) \\\n  if (!(condition)) {\\\n    LOG(LIB_ERROR) << \"Check failed: \" << #condition;  \\\n    throw runtime_error(\"Check failed: \" + string(message)); \\\n  }\n\n// debug only check and log\n#ifndef NDEBUG\n#define DCHECK(condition) CHECK(condition)\n#define DLOG(severity) LOG(severity)\n#else\n// NDEBUG disables standard C assertions\n#define DCHECK(condition) while (0) CHECK(condition)\n#define DLOG(severity) while (0) LOG(severity)\n#endif\n\n#define PREPARE_RUNTIME_ERR(var) \\\n  RuntimeErrorWrapper var(__FILE__, __LINE__, __FUNCTION__); var.stream()\n#define THROW_RUNTIME_ERR(var) \\\n  throw runtime_error(var.stream().str())\n\n#endif     // _LOGGING_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/memory.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _MEMORY_USAGE_H_\n#define _MEMORY_USAGE_H_\n\nnamespace similarity {\n\nclass MemUsage {\n public:\n   MemUsage();\n\n  /** returns the current virtual memory size of\n      the process with pid in MB **/\n  double get_vmsize();\n\n private:\n  char status_file_[50];\n};\n\n}   // namespace similarity\n\n#endif      // _MEMORY_USAGE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/meta_analysis.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _META_ANALYSIS_H\n#define _META_ANALYSIS_H\n\n#include <vector>\n#include <string>\n\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::string;\n\n/*\n * A helper class to integrate results\n */\nclass MetaAnalysis {\npublic:\n  MetaAnalysis(size_t TestSetQty, double zVal = 1.96) : zVal_(zVal) {\n    PrecisionOfApprox_        .resize(TestSetQty);\n    Recall_         .resize(TestSetQty);\n    ClassAccuracy_  .resize(TestSetQty);\n    LogRelPosError_ .resize(TestSetQty);\n    NumCloser_      .resize(TestSetQty);\n    RecallAt1_      .resize(TestSetQty);\n    QueryTime_      .resize(TestSetQty);\n    DistComp_       .resize(TestSetQty);\n    ImprEfficiency_ .resize(TestSetQty);\n    ImprDistComp_   .resize(TestSetQty);\n    Mem_            .resize(TestSetQty);\n    IndexTime_      .resize(TestSetQty);\n    LoadTime_       .resize(TestSetQty);\n    SaveTime_       .resize(TestSetQty);\n    QueryPerSec_    .resize(TestSetQty);\n  }\n\n  // Let's protect Add* functions, b/c them can be called from different threads  \n  void AddRecall(size_t SetId, double Recall) {\n    Recall_[SetId].push_back(Recall);\n  }\n  void AddPrecisionOfApprox(size_t SetId, double PrecisionOfApprox) {\n    PrecisionOfApprox_[SetId].push_back(PrecisionOfApprox);\n  }\n  void AddClassAccuracy(size_t SetId, double ClassAccuracy) {\n    ClassAccuracy_[SetId].push_back(ClassAccuracy);\n  }\n  void AddLogRelPosError(size_t SetId, double LogRelPosError) {\n    LogRelPosError_[SetId].push_back(LogRelPosError);\n  }\n  void AddNumCloser(size_t SetId, double NumCloser) {\n    NumCloser_[SetId].push_back(NumCloser);\n  }\n  void AddRecallAt1(size_t SetId, double RecallAt1) {\n    RecallAt1_[SetId].push_back(RecallAt1);\n  }\n  void AddQueryTime(size_t SetId, double QueryTime) {\n    QueryTime_[SetId].push_back(QueryTime);\n  }\n  void AddDistComp(size_t SetId, double DistComp) {\n    DistComp_[SetId].push_back(DistComp);\n  }\n  void SetMem(size_t SetId, double Mem) {\n    Mem_[SetId] = Mem;\n  }\n  void SetIndexTime(size_t SetId, double IndexTime) {\n    IndexTime_[SetId] = IndexTime;\n  }\n  void SetLoadTime(size_t SetId, double LoadTime) {\n    LoadTime_[SetId] = LoadTime;\n  }\n  void SetSaveTime(size_t SetId, double SaveTime) {\n    SaveTime_[SetId] = SaveTime;\n  }\n  void SetQueryPerSec(size_t SetId, double QueryPerSec) {\n    QueryPerSec_[SetId] = QueryPerSec;\n  }\n  void SetImprEfficiency(size_t SetId, double ImprEfficiency) {\n    ImprEfficiency_[SetId] = ImprEfficiency;\n  }\n  void SetImprDistComp(size_t SetId, double ImprDistComp) {\n    ImprDistComp_[SetId] = ImprDistComp;\n  }\n\n  void ComputeAll() {\n    ComputeOneSimple(\"Recall\", Recall_, RecallAvg, RecallConfMin, RecallConfMax);\n    ComputeOneSimple(\"PrecisionOfApprox\", PrecisionOfApprox_, PrecisionOfApproxAvg, PrecisionOfApproxConfMin, PrecisionOfApproxConfMax);\n    ComputeOneSimple(\"ClassAccuracy\", ClassAccuracy_, ClassAccuracyAvg, ClassAccuracyConfMin, ClassAccuracyConfMax);\n    ComputeOneSimple(\"LogRelPosError\", LogRelPosError_, LogRelPosErrorAvg, LogRelPosErrorConfMin, LogRelPosErrorConfMax);\n    ComputeOneSimple(\"NumCloser\", NumCloser_, NumCloserAvg, NumCloserConfMin, NumCloserConfMax);\n    ComputeOneSimple(\"RecallAt1\", RecallAt1_, RecallAt1Avg, RecallAt1ConfMin, RecallAt1ConfMax);\n    ComputeOneMeta(\"QueryTime\", QueryTime_, QueryTimeAvg, QueryTimeConfMin, QueryTimeConfMax);\n    ComputeOneMeta(\"DistComp\", DistComp_, DistCompAvg, DistCompConfMin, DistCompConfMax);\n\n    ComputeOneSimple(\"ImprEfficiency\", ImprEfficiency_, ImprEfficiencyAvg, ImprEfficiencyConfMin, ImprEfficiencyConfMax);\n    ComputeOneSimple(\"ImprDistComp\", ImprDistComp_, ImprDistCompAvg, ImprDistCompConfMin, ImprDistCompConfMax);\n    ComputeOneSimple(\"MemUsage\", Mem_, MemAvg, MemConfMin, MemConfMax);\n    ComputeOneSimple(\"IndexTime\", IndexTime_, IndexTimeAvg, IndexTimeConfMin, IndexTimeConfMax);\n    ComputeOneSimple(\"LoadTime\", LoadTime_, LoadTimeAvg, LoadTimeConfMin, LoadTimeConfMax);\n    ComputeOneSimple(\"SaveTime\", SaveTime_, SaveTimeAvg, SaveTimeConfMin, SaveTimeConfMax);\n    ComputeOneSimple(\"QueryPerSec\", QueryPerSec_, QueryPerSecAvg, QueryPerSecConfMin, QueryPerSecConfMax);\n  }\n\n  double GetRecallAvg() const { return RecallAvg;} \n  double GetRecallConfMin() const{return RecallConfMin;}; \n  double GetRecallConfMax() const { return RecallConfMax;}\n\n  double GetPrecisionOfApproxAvg() const { return PrecisionOfApproxAvg;} \n  double GetPrecisionOfApproxConfMin() const{return PrecisionOfApproxConfMin;}; \n  double GetPrecisionOfApproxConfMax() const { return PrecisionOfApproxConfMax;}\n\n  double GetClassAccuracyAvg() const { return ClassAccuracyAvg;} \n  double GetClassAccuracyConfMin() const{return ClassAccuracyConfMin;}; \n  double GetClassAccuracyConfMax() const { return ClassAccuracyConfMax;}\n\n  double GetRelPosErrorAvg() const { return exp(LogRelPosErrorAvg);} \n  double GetRelPosErrorConfMin() const{return exp(LogRelPosErrorConfMin);}; \n  double GetRelPosErrorConfMax() const { return exp(LogRelPosErrorConfMax);}\n\n  double GetNumCloserAvg() const { return NumCloserAvg;} \n  double GetNumCloserConfMin() const{return NumCloserConfMin;}; \n  double GetNumCloserConfMax() const { return NumCloserConfMax;}\n\n  double GetRecallAt1Avg() const { return RecallAt1Avg;} \n  double GetRecallAt1ConfMin() const{return RecallAt1ConfMin;}; \n  double GetRecallAt1ConfMax() const { return RecallAt1ConfMax;}\n\n  double GetImprEfficiencyAvg() const { return ImprEfficiencyAvg;} \n  double GetImprEfficiencyConfMin() const{return ImprEfficiencyConfMin;}; \n  double GetImprEfficiencyConfMax() const { return ImprEfficiencyConfMax;}\n\n  double GetImprDistCompAvg() const { return ImprDistCompAvg;} \n  double GetImprDistCompConfMin() const{return ImprDistCompConfMin;}; \n  double GetImprDistCompConfMax() const { return ImprDistCompConfMax;}\n\n  double GetMemAvg() const { return MemAvg;} \n  double GetMemConfMin() const{return MemConfMin;}; \n  double GetMemConfMax() const { return MemConfMax;}\n\n  double GetIndexTimeAvg() const { return IndexTimeAvg;} \n  double GetIndexTimeConfMin() const{return IndexTimeConfMin;}; \n  double GetIndexTimeConfMax() const { return IndexTimeConfMax;}\n\n  double GetLoadTimeAvg() const { return LoadTimeAvg;} \n  double GetLoadTimeConfMin() const{return LoadTimeConfMin;}; \n  double GetLoadTimeConfMax() const { return LoadTimeConfMax;}\n\n  double GetSaveTimeAvg() const { return SaveTimeAvg;} \n  double GetSaveTimeConfMin() const{return SaveTimeConfMin;}; \n  double GetSaveTimeConfMax() const { return SaveTimeConfMax;}\n\n  double GetQueryPerSecAvg() const { return QueryPerSecAvg;} \n  double GetQueryPerSecConfMin() const{return QueryPerSecConfMin;}; \n  double GetQueryPerSecConfMax() const { return QueryPerSecConfMax;}\n\n  double GetQueryTimeAvg() const { return QueryTimeAvg;} \n  double GetQueryTimeConfMin() const{return QueryTimeConfMin;}; \n  double GetQueryTimeConfMax() const { return QueryTimeConfMax;}\n\n  double GetDistCompAvg() const { return DistCompAvg;} \n  double GetDistCompConfMin() const{return DistCompConfMin;}; \n  double GetDistCompConfMax() const { return DistCompConfMax;}\nprivate:\ndouble RecallAvg, RecallConfMin, RecallConfMax;\ndouble PrecisionOfApproxAvg, PrecisionOfApproxConfMin, PrecisionOfApproxConfMax;\ndouble ClassAccuracyAvg, ClassAccuracyConfMin, ClassAccuracyConfMax;\ndouble LogRelPosErrorAvg, LogRelPosErrorConfMin, LogRelPosErrorConfMax;\ndouble NumCloserAvg, NumCloserConfMin, NumCloserConfMax;\ndouble RecallAt1Avg, RecallAt1ConfMin, RecallAt1ConfMax;\ndouble QueryTimeAvg, QueryTimeConfMin, QueryTimeConfMax;\ndouble DistCompAvg, DistCompConfMin, DistCompConfMax;\ndouble ImprEfficiencyAvg, ImprEfficiencyConfMin, ImprEfficiencyConfMax;\ndouble ImprDistCompAvg, ImprDistCompConfMin, ImprDistCompConfMax;\ndouble MemAvg, MemConfMin, MemConfMax;\ndouble IndexTimeAvg, IndexTimeConfMin, IndexTimeConfMax;\ndouble LoadTimeAvg, LoadTimeConfMin, LoadTimeConfMax;\ndouble SaveTimeAvg, SaveTimeConfMin, SaveTimeConfMax;\ndouble QueryPerSecAvg, QueryPerSecConfMin, QueryPerSecConfMax;\ndouble zVal_;\n\nvector<vector<double>>   Recall_; \nvector<vector<double>>   PrecisionOfApprox_; \nvector<vector<double>>   ClassAccuracy_; \nvector<vector<double>>   LogRelPosError_; \nvector<vector<double>>   NumCloser_; \nvector<vector<double>>   RecallAt1_; \nvector<vector<double>>   QueryTime_; \nvector<vector<double>>   DistComp_; \nvector<double>           ImprEfficiency_; \nvector<double>           ImprDistComp_; \nvector<double>           Mem_; \nvector<double>           IndexTime_; \nvector<double>           LoadTime_; \nvector<double>           SaveTime_; \nvector<double>           QueryPerSec_; \n\nMetaAnalysis(){} // be private!\n\nvoid ComputeOneSimple(const string &Name, \n                    const vector<vector<double>>& vals, double& avg, double& ConfMin, double& ConfMax) {\n  vector<double> avgVals;\n  for (size_t i = 0; i < vals.size(); ++i) {\n    avgVals.push_back(Mean(&vals[i][0], vals[i].size()));\n  }\n  ComputeOneSimple(Name, avgVals, avg, ConfMin, ConfMax);\n}\n\nvoid ComputeOneSimple(const string& Name, \n                      const vector<double>& vals, double& avg, double& ConfMin, double& ConfMax) {\n  avg = Mean(&vals[0], vals.size());\n#if 0\n    LOG(INFO) << \".... \" << Name  << \" \" << avg << \" qty: \" << vals.size();\n#endif\n  double var = vals.size()> 1 ? Variance(&vals[0], vals.size(), avg) : 0;\n  double sigma = sqrt(var/vals.size());\n  // 5% confidence interval (assuming normal distrbution).\n  ConfMin = avg - zVal_ * sigma;\n  ConfMax = avg + zVal_ * sigma;\n}\n\nvoid ComputeOneMeta(const string &Name, \n                    const vector<vector<double>>& vals, double& avg, double& ConfMin, double& ConfMax) {\n  avg = 0;\n\n  /*\n   * Fixed-effect meta-analysis.\n   * See L. Hedges,  and J. Vevea, 1998, Fixed and Random-Effects Models in Meta-Analysis \n   *\n   */\n\n  double SumW = 0;\n\n  for (size_t i = 0; i < vals.size(); ++i) {\n    double mean = Mean(&vals[i][0], vals[i].size());\n\n#if 0\n    LOG(INFO) << \".... \" << Name  << \" \" << mean << \" qty: \" << vals[i].size();\n#endif\n    /* \n     * Sometimes variance is very small or zero,\n     * this causes some kind of a numerical *flow.\n     * Let's pretend the variance is never too small.\n     */\n    double var = std::max(1e-5, Variance(&vals[i][0], vals[i].size(), mean));\n    var /= vals[i].size();\n    double w = 1/var;\n    SumW += w;\n    avg += w * mean;\n  }\n\n  double sigma = sqrt(1/SumW);\n  avg /= SumW;\n\n#if 0\n    LOG(INFO) << \".... \" << Name  << \" mean: \" << avg << \" SumW: \" << SumW;\n#endif\n\n  // 5% confidence interval (assuming normal distrbution).\n  ConfMin = avg - zVal_ * sigma;\n  ConfMax = avg + zVal_ * sigma;\n}\n};\n\n\n\n}   // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/bbtree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is based on the BBTREE implementation written by Lawrence Cayton\n *\n * The algorithms were originally published in the papers:\n * 1) L. Cayton. Fast nearest neighbor retrieval for bregman divergences. \n *    Twenty-Fifth International Conference on Machine Learning (ICML), 2008. \n *\n * 2) L. Cayton. Efficient bregman range search.  \n * Advances in Neural Information Processing Systems 22 (NIPS), 2009. \n *\n * See https://github.com/lcayton/bbtree and http://lcayton.com/code.html\n *\n * Because the original code is released under the terms of the GNU General Public License,\n * we had to release this file under the GNU license as well. \n *\n */\n\n#ifndef _BBTREE_H_\n#define _BBTREE_H_\n\n#include \"index.h\"\n#include \"params.h\"\n\n#define METH_BBTREE                 \"bbtree\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass BregmanDiv;\n\ntemplate <typename dist_t>\nclass BBTree : public Index<dist_t> {\n public:\n  BBTree(const Space<dist_t>& space,\n         const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  void SetQueryTimeParams(const AnyParams& params) override {\n    AnyParamManager pmgr(params);\n    pmgr.GetParamOptional(\"maxLeavesToVisit\", MaxLeavesToVisit_, FAKE_MAX_LEAVES_TO_VISIT);\n\n    LOG(LIB_INFO) << \"Set bbtree query-time parameters:\";\n    LOG(LIB_INFO) << \"maxLeavesToVisit\" << MaxLeavesToVisit_;\n    pmgr.CheckUnused();\n  }\n\n  ~BBTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  virtual bool DuplicateData() const override { return ChunkBucket_; }\n private:\n  class BBNode {\n   public:\n    BBNode(const BregmanDiv<dist_t>* div,\n           const ObjectVector& data, size_t bucket_size, bool use_optim);\n    ~BBNode();\n\n    inline bool IsLeaf() const;\n\n    template <typename QueryType>\n    bool RecBinSearch(const BregmanDiv<dist_t>* div,\n                      Object* query_gradient, \n                      QueryType* query, dist_t mindist_est,\n                      dist_t l=0.0, dist_t r=1.0, int depth=0) const;\n\n    template <typename QueryType>\n    bool NeedToSearch(const BregmanDiv<dist_t>* div,\n                      Object* query_gradient, \n                      QueryType* query, dist_t mindist_est,\n                      dist_t div_query_to_center) const;\n\n    template <typename QueryType>\n    void LeftSearch(const BregmanDiv<dist_t>* div,\n                    Object* query_gradient, QueryType* query,\n                    int& MaxLeavesToVisit_) const;\n\n    void SelectCenters(const ObjectVector& data, ObjectVector& centers);\n\n    void FindSplitKMeans(const BregmanDiv<dist_t>* div, \n                         const ObjectVector& data,\n                         ObjectVector& bucket_left, \n                         ObjectVector& bucket_right);\n\n   private:\n    enum { kMaxRetry = 10 };\n\n    Object*       center_;\n    Object*       center_gradf_;\n    dist_t        covering_radius_;\n    bool          is_leaf_;\n    ObjectVector* bucket_;\n    char*         CacheOptimizedBucket_;\n    BBNode*       left_child_;\n    BBNode*       right_child_;\n    DISABLE_COPY_AND_ASSIGN(BBNode);\n  };\n\n  const ObjectVector&       data_;\n\n  unique_ptr<BBNode>        root_node_;\n  size_t                    BucketSize_;\n  int                       MaxLeavesToVisit_;\n  bool                      ChunkBucket_;\n  const BregmanDiv<dist_t>* BregmanDivSpace_;\n  DISABLE_COPY_AND_ASSIGN(BBTree);\n};\n\n}  // namespace similarity\n\n#endif       // _BBTREE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/dummy.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _DUMMY_METHOD_H_\n#define _DUMMY_METHOD_H_\n\n#include <string>\n#include <sstream>\n\n#include \"index.h\"\n\n#define METH_DUMMY             \"dummy\"\n\nnamespace similarity {\n\nusing std::string;\n\n/*\n * This is a dummy, i.e., zero-functionality search method,\n * which can be used as a template to create fully functional\n * search method.\n */\n\ntemplate <typename dist_t>\nclass DummyMethod : public Index<dist_t> {\n public:\n  /*\n   * The constructor here space and data-objects' references,\n   * which are guaranteed to be be valid during testing.\n   * So, we can memorize them safely.\n   */\n  DummyMethod(Space<dist_t>& space, \n              const ObjectVector& data) : data_(data), space_(space) {}\n\n  /*\n   * This function is supposed to create a search index (or call a \n   * function to create it)!\n   */\n  void CreateIndex(const AnyParams& IndexParams) override {\n    AnyParamManager  pmgr(IndexParams);\n    pmgr.GetParamOptional(\"doSeqSearch\",  \n                          bDoSeqSearch_, \n      // One should always specify the default value of an optional parameter!\n                          false\n                          );\n    // Check if a user specified extra parameters, which can be also misspelled variants of existing ones\n    pmgr.CheckUnused();\n    // Always call ResetQueryTimeParams() to set query-time parameters to their default values\n    this->ResetQueryTimeParams();\n  }\n\n  /*\n   * One can implement functions for index serialization and reading.\n   * However, this is not required.\n   */\n  // SaveIndex is not necessarily implemented\n  virtual void SaveIndex(const string& location) override {\n    throw runtime_error(\"SaveIndex is not implemented for method: \" + StrDesc());\n  }\n  // LoadIndex is not necessarily implemented\n  virtual void LoadIndex(const string& location) override {\n    throw runtime_error(\"LoadIndex is not implemented for method: \" + StrDesc());\n  }\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n\n  ~DummyMethod(){};\n\n  /* \n   * Just the name of the method, consider printing crucial parameter values\n   */\n  const std::string StrDesc() const override { \n    stringstream str;\n    str << \"Dummy method: \" << (bDoSeqSearch_ ? \" does seq. search \" : \" does nothing (really dummy)\"); \n    return str.str();\n  }\n\n  /* \n   *  One needs to implement two search functions.\n   */\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  /*\n   * In rare cases, mostly when we wrap up 3rd party methods,\n   * we simply duplicate the data set. This function\n   * let the experimentation code know this, so it could\n   * adjust the memory consumption of the index.\n   *\n   * Note, however, that this method doesn't create any data duplicates.\n   */\n  virtual bool DuplicateData() const override { return false; }\n\n private:\n  bool                    data_duplicate_;\n  const ObjectVector&     data_;\n  Space<dist_t>&          space_;\n  bool                    bDoSeqSearch_;\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(DummyMethod);\n};\n\n}   // namespace similarity\n\n#endif     // _DUMMY_METHOD_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/ghtree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _METRIC_GHTREE_H_\n#define _METRIC_GHTREE_H_\n\n#include \"index.h\"\n#include \"params.h\"\n\n#define METH_GHTREE                 \"ghtree\"\n\nnamespace similarity {\n\n/* \n * J. K. Uhlmann. Satisfying general proximity/similarity queries with metric trees, 1991\n */\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass GHTree : public Index<dist_t> {\n public:\n  GHTree(const Space<dist_t>& space,\n         const ObjectVector& data,\n         bool use_random_center = true);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~GHTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType ) const override;\n  void Search(KNNQuery<dist_t>* query, IdType ) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override {\n    AnyParamManager pmgr(QueryTimeParams);\n    pmgr.GetParamOptional(\"maxLeavesToVisit\", MaxLeavesToVisit_, FAKE_MAX_LEAVES_TO_VISIT);\n    LOG(LIB_INFO) << \"Set GH-tree query-time parameters:\";\n    LOG(LIB_INFO) << \"maxLeavesToVisit=\" << MaxLeavesToVisit_;\n    pmgr.CheckUnused();\n  }\n\n private:\n  class GHNode {\n   public:\n    GHNode(const Space<dist_t>& space, const ObjectVector& data,\n           size_t bucket_size, bool chunk_bucket,\n           const bool use_random_center);\n    ~GHNode();\n\n    template <typename QueryType>\n    void GenericSearch(QueryType* query, int& MaxLeavesToVisit);\n\n   private:\n\n    const Object* pivot1_;\n    const Object* pivot2_;\n    GHNode* left_child_;\n    GHNode* right_child_;\n    ObjectVector* bucket_;\n    char* CacheOptimizedBucket_;\n    friend class GHTree;\n  };\n\n  const Space<dist_t>& space_;\n  const ObjectVector&  data_;\n  bool                 use_random_center_;\n  unique_ptr<GHNode>   root_;\n\n  size_t                    BucketSize_;\n  int                       MaxLeavesToVisit_;\n  bool                      ChunkBucket_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(GHTree);\n};\n\n}   // namespace similarity\n\n#endif     // _METRIC_GHTREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/hnsw.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n /*\n *\n * A Hierarchical Navigable Small World (HNSW) approach.\n *\n * The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n * \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin \n * This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n *\n *\n */\n#pragma once\n\n#include \"index.h\"\n#include \"params.h\"\n#include <set>\n#include <limits>\n#include <iostream>\n#include <map>\n#include <unordered_set>\n#include <thread>\n#include <memory>\n#include <mutex>\n#include <thread>\n#include <condition_variable>\n#include <queue>\n\n\n#define METH_HNSW      \"hnsw\"\n#define METH_HNSW_SYN      \"Hierarchical_NSW\"\n\nnamespace similarity {\n\n    using std::string;\n    using std::vector;\n    using std::thread;\n    using std::mutex;\n    using std::unique_lock;\n    using std::condition_variable;\n    using std::ref;\n\n    template <typename dist_t>\n    class Space;\n    class VisitedListPool;\n    template <typename dist_t> class HnswNodeDistCloser;\n    template <typename dist_t> class HnswNodeDistFarther;\n\n    class HnswNode {\n    public:\n        HnswNode(const Object *Obj, size_t id) {\n            data_ = Obj;\n            id_ = id;\n        }\n        ~HnswNode() {};\n\n        template <typename dist_t>\n        void getNeighborsByDistanceHeuristic(priority_queue<HnswNodeDistCloser<dist_t>> &resultSet1, const int NN, const Space<dist_t>* space) {\n            if (resultSet1.size() < NN) {\n                return;\n            }\n            priority_queue<HnswNodeDistFarther<dist_t>> resultSet;\n            priority_queue<HnswNodeDistFarther<dist_t>> templist;\n            vector<HnswNodeDistFarther<dist_t>> returnlist;\n            while (resultSet1.size() > 0)\n            {\n                resultSet.emplace(resultSet1.top().getDistance(), resultSet1.top().getMSWNodeHier());\n                resultSet1.pop();\n            }\n            while (resultSet.size()) {\n\n                if (returnlist.size() >= NN)\n                    break;\n                HnswNodeDistFarther<dist_t> curen = resultSet.top();\n                dist_t dist_to_query = curen.getDistance();\n                resultSet.pop();\n                bool good = true;\n                for (HnswNodeDistFarther<dist_t> curen2 : returnlist) {\n                    dist_t curdist = space->IndexTimeDistance(curen2.getMSWNodeHier()->getData(), curen.getMSWNodeHier()->getData());\n\n                    if (curdist <= dist_to_query) {\n                        good = false;\n                        break;\n                    }\n                }\n                if (good)\n                    returnlist.push_back(curen);\n                else\n                    templist.push(curen);\n\n            }\n\n            while (returnlist.size() < NN && templist.size() > 0) {\n                returnlist.push_back(templist.top());\n                templist.pop();\n            }\n\n            for (HnswNodeDistFarther<dist_t> curen2 : returnlist) {\n                resultSet1.emplace(curen2.getDistance(), curen2.getMSWNodeHier());\n            }\n\n        };\n        /*\n        * Experimental method for selection of neighbors based on local search. However is peforms worse than the previous method\n        * Note that it works correctly only in a single thread!!!\n        */\n        template <typename dist_t>\n        void getNeighborsByMiniGreedySearches(priority_queue<HnswNodeDistCloser<dist_t>> &resultSet1, const int NN, const Space<dist_t>* space, int level) {\n            if (resultSet1.size() < NN) {\n                return;\n            }\n            priority_queue<HnswNodeDistFarther<dist_t>> inputSet;\n            priority_queue<HnswNodeDistFarther<dist_t>> templist;\n\n            set <HnswNode*> result;\n\n            while (resultSet1.size() > 0)\n            {\n                inputSet.emplace(resultSet1.top().getDistance(), resultSet1.top().getMSWNodeHier());\n                resultSet1.pop();\n            }\n            result.insert(inputSet.top().getMSWNodeHier());\n            inputSet.pop();\n            while (inputSet.size()) {\n                if (result.size() >= NN)\n                    break;\n                bool good = true;\n                HnswNodeDistFarther<dist_t> curen = inputSet.top();\n                inputSet.pop();\n                dist_t curdist = curen.getDistance();\n                HnswNode *curNode = curen.getMSWNodeHier();\n\n                bool changed = true;\n                while (changed) {\n                    changed = false;\n\n                    const vector<HnswNode*>& neighbor = curNode->getAllFriends(level);\n                    for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n                        _mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n                    }\n                    for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n                        const Object *currObj = (*iter)->getData();\n                        dist_t d = space->IndexTimeDistance(this->data_, currObj);\n                        if (d < curdist) {\n                            curdist = d;\n                            curNode = *iter;\n                            changed = true;\n                        }\n                    }\n                    if (result.count(curNode)) {\n                        good = false;\n                        break;\n                    }\n                }\n                if (good)\n                    result.insert(curen.getMSWNodeHier());\n                else\n                    templist.push(curen);\n\n            }\n\n            while (result.size() < NN && templist.size() > 0) {\n                result.insert(templist.top().getMSWNodeHier());\n                templist.pop();\n            }\n            resultSet1.empty();\n            for (HnswNode *curNode : result) {\n                resultSet1.emplace(0, curNode);\n            }\n\n        };\n        template <typename dist_t>\n        void addFriendlevel(int level, HnswNode* element, const Space<dist_t>* space, int delaunay_type) {\n\n            unique_lock<mutex> lock(accessGuard_);\n            for (int i = 0; i < allFriends[level].size(); i++)\n                if (allFriends[level][i] == element) {\n                    cerr << \"This should not happen. For some reason the elements is already added\";\n                    return;\n                }\n            allFriends[level].push_back(element);\n            bool shrink = false;\n            if (level > 0)\n                if (allFriends[level].size() > maxsize)\n                    shrink = true;\n                else\n                    shrink = false;\n            else\n                if (allFriends[level].size() > maxsize0)\n                    shrink = true;\n                else\n                    shrink = false;\n            if (shrink)\n            {\n                if (delaunay_type > 0) {\n                    priority_queue<HnswNodeDistCloser<dist_t>> resultSet;\n                    for (int i = 1; i < allFriends[level].size(); i++) {\n                        resultSet.emplace(space->IndexTimeDistance(this->getData(), allFriends[level][i]->getData()), allFriends[level][i]);\n                    }\n                    if (delaunay_type == 1)\n                        this->getNeighborsByDistanceHeuristic(resultSet, resultSet.size() - 1, space);\n                    else if (delaunay_type == 2)\n                        this->getNeighborsByMiniGreedySearches(resultSet, resultSet.size() - 1, space, level);\n                    allFriends[level].clear();\n\n                    while (resultSet.size()) {\n                        allFriends[level].push_back(resultSet.top().getMSWNodeHier());\n                        resultSet.pop();\n\n                    }\n                }\n                else {\n                    dist_t max = space->IndexTimeDistance(this->getData(), allFriends[level][0]->getData());\n                    int maxi = 0;\n                    for (int i = 1; i < allFriends[level].size(); i++) {\n\n                        dist_t curd = space->IndexTimeDistance(this->getData(), allFriends[level][i]->getData());\n                        if (curd > max) {\n                            max = curd;\n                            maxi = i;\n                        }\n                    }\n                    allFriends[level].erase(allFriends[level].begin() + maxi);\n                }\n            }\n\n\n\n\n        }\n\n    public: void init(int level1, int maxFriends, int maxfriendslevel0) {\n\n        level = level1;\n        maxsize = maxFriends;\n        maxsize0 = maxfriendslevel0;\n        allFriends.resize(level + 1);\n        for (int i = 0; i <= level; i++) {\n            allFriends[i].reserve(maxsize + 1);\n        }\n        allFriends[0].reserve(maxsize0 + 1);\n\n    }\n    public: void copyDataAndLevel0LinksToOptIndex(char *mem1, size_t offsetlevels, size_t offsetData) {\n        char *mem = mem1;\n        //Level\n        *((int *)(mem)) = level;\n        mem += sizeof(int);\n\n        char *memlevels = mem1 + offsetlevels;\n\n        char *memt = memlevels;\n        *((int *)(memt)) = (int)allFriends[0].size();\n        memt += sizeof(int);\n        for (size_t j = 0; j < allFriends[0].size(); j++) {\n            *((int *)(memt)) = (int)allFriends[0][j]->getId();\n            memt += sizeof(int);\n        }\n        mem = mem1 + offsetData;\n        memcpy(mem, data_->buffer(), data_->bufferlength());\n\n        return;\n    }\n    public: void copyHigherLevelLinksToOptIndex(char *mem1, size_t offsetlevels) {\n        char *mem = mem1;\n\n        *((int *)(mem)) = level;\n        mem += sizeof(int);\n\n        char *memlevels = mem1 + offsetlevels;\n\n        for (int i = 1; i <= level; i++) {\n\n            char *memt = memlevels;\n            *((int *)(memt)) = (int)allFriends[i].size();\n\n            memt += sizeof(int);\n            for (size_t j = 0; j < allFriends[i].size(); j++) {\n                *((int *)(memt)) = (int)allFriends[i][j]->getId();\n                memt += sizeof(int);\n            }\n            memlevels += (1 + maxsize)* sizeof(int);\n        };\n        return;\n    }\n            const Object* getData() const {\n                return data_;\n            }\n            size_t getId() const { return id_; }\n            const vector<HnswNode*>& getAllFriends(int level) const {\n                return allFriends[level];\n            }\n\n            mutex accessGuard_;\n    public:\n\n    private:\n        const Object*       data_;\n    public:size_t              id_;\n           vector<vector<HnswNode*>> allFriends;\n\n           int maxsize0;\n           int maxsize;\n           int level;\n\n\n    };\n\n\n    //----------------------------------\n    template <typename dist_t>\n    class HnswNodeDistFarther {\n    public:\n        HnswNodeDistFarther() {\n            distance = 0;\n            element = NULL;\n        }\n        HnswNodeDistFarther(dist_t di, HnswNode* node) {\n            distance = di;\n            element = node;\n        }\n        ~HnswNodeDistFarther() {}\n        dist_t getDistance() const { return distance; }\n        HnswNode* getMSWNodeHier() const { return element; }\n        bool operator< (const HnswNodeDistFarther &obj1) const {\n            return (distance > obj1.getDistance());\n        }\n\n    private:\n        dist_t distance;\n        HnswNode* element;\n    };\n\n    template <typename dist_t>\n    class EvaluatedMSWNodeInt {\n    public:\n        EvaluatedMSWNodeInt() {\n            distance = 0;\n            element = NULL;\n        }\n        EvaluatedMSWNodeInt(dist_t di, int element1) {\n            distance = di;\n            element = element1;\n        }\n        ~EvaluatedMSWNodeInt() {}\n        dist_t getDistance() const { return distance; }\n        int getMSWNodeHier() const { return element; }\n        bool operator< (const EvaluatedMSWNodeInt &obj1) const {\n            return (distance < obj1.getDistance());\n        }\n\n    private:\n        dist_t distance;\n    public:int element;\n    };\n\n    template <typename dist_t>\n    class HnswNodeDistCloser {\n    public:\n        HnswNodeDistCloser() {\n            distance = 0;\n            element = NULL;\n        }\n        HnswNodeDistCloser(dist_t di, HnswNode* node) {\n            distance = di;\n            element = node;\n        }\n        ~HnswNodeDistCloser() {}\n        dist_t getDistance() const { return distance; }\n        HnswNode* getMSWNodeHier() const { return element; }\n        bool operator< (const HnswNodeDistCloser &obj1) const {\n            return (distance < obj1.getDistance());\n        }\n\n    private:\n        dist_t distance;\n        HnswNode* element;\n    };\n\n    template <typename dist_t>\n    class Hnsw : public Index<dist_t> {\n    public:\n        virtual void SaveIndex(const string &location) override;\n\n        virtual void LoadIndex(const string &location) override;\n\n        Hnsw(bool PrintProgress,\n            const Space<dist_t>& space,\n            const ObjectVector& data);\n        void CreateIndex(const AnyParams& IndexParams) override;\n\n        ~Hnsw();\n\n\n        const std::string StrDesc() const override;\n        void Search(RangeQuery<dist_t>* query, IdType) const override;\n        void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n        void SetQueryTimeParams(const AnyParams&) override;\n    private:\n\n\n\n        typedef std::vector<HnswNode*> ElementList;\n        void baseSearchAlgorithm(KNNQuery<dist_t>* query);\n        void listPassingModifiedAlgorithm(KNNQuery<dist_t>* query);\n        void SearchL2Custom(KNNQuery<dist_t>* query);\n        void SearchCosineNormalized(KNNQuery<dist_t>* query);\n\n        \n\n    private: \tint getRandomLevel(double revSize) {\n        std::uniform_real_distribution<double> distribution(0.0, 1.0);\n        double r = -log(distribution(*generator)) * revSize;\n        return (int)r;\n    }\n\n    public:\n        void kSearchElementsWithAttemptsLevel(const Space<dist_t>* space,\n            const Object* queryObj, size_t NN,\n            std::priority_queue<HnswNodeDistCloser<dist_t>>& resultSet, HnswNode* ep, int level) const;\n        void add(const Space<dist_t>* space, HnswNode *newElement);\n        void addToElementListSynchronized(HnswNode *newElement);\n\n        void link(HnswNode* first, HnswNode* second, int level, const Space<dist_t>* space, int delaunay_type) {\n            // We have to pass the Space, since we need to know what elements can be deleted from the list\n            first->addFriendlevel(level, second, space, delaunay_type);\n            second->addFriendlevel(level, first, space, delaunay_type);\n        }\n\n        //\n    private:\n\n        std::default_random_engine *generator;\n        size_t                M_;\n        size_t                maxM_;\n        size_t                maxM0_;\n        size_t                efConstruction_;\n        size_t                ef_;\n        size_t                searchMethod_;\n        size_t                indexThreadQty_;\n        VisitedListPool       *visitedlistpool;\n        const Space<dist_t>&  space_;\n        bool                  PrintProgress_;\n        int                   delaunay_type_;\n        double                mult_;\n        int                   maxlevel_;\n        HnswNode           *enterpoint_;\n        unsigned int enterpointId_;\n        unsigned int totalElementsStored_;\n\n        const ObjectVector&   data_;// We do not copy objects\n        //ObjectVector          data_; // We copy all the data\n\n        mutable mutex         ElListGuard_;\n        mutable mutex         MaxLevelGuard_;\n        ElementList           ElList_;\n\n        int                   vectorlength_ = 0;\n        int dist_func_type_;\n        bool                  iscosine_ = false;\n        size_t                offsetData_, offsetLevel0_;\n        char                  *data_level0_memory_;\n        char                  **linkLists_;\n        size_t                memoryPerObject_;\n        float                 (*fstdistfunc_)(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n    protected:\n        DISABLE_COPY_AND_ASSIGN(Hnsw);\n    };\n\n\n    class VisitedList {\n    public: unsigned int curV;\n    public:\tunsigned int *mass;\n    public: unsigned int numelements;\n    public:\n        VisitedList(int  numelements1) {\n            curV = 0;\n            numelements = numelements1;\n            mass = new unsigned int[numelements];\n        }\n        void reset() {\n            curV++;\n            if (curV == 0)\n            {\n                memset(mass, 0, sizeof(int)*numelements);\n            }\n        };\n        ~VisitedList() {\n\n            delete mass;\n        }\n    };\n    ///////////////////////////////////////////////////////////\n    //\n    // Class for multi-threaded pool-management of VisitedLists\n    //\n    /////////////////////////////////////////////////////////\n\n    class VisitedListPool {\n        vector<unsigned int*> listPool;\n        vector<unsigned int*> curV;\n        deque<VisitedList*> pool;\n        mutex poolguard;\n        int maxpools;\n        int numelements;\n    public:\n        VisitedListPool(int initmaxpools, int numelements1) {\n            numelements = numelements1;\n            for (int i = 0; i < initmaxpools; i++)\n                pool.push_front(new VisitedList(numelements));\n        }\n        VisitedList * getFreeVisitedList() {\n            unique_lock<mutex> lock(poolguard);\n            if (pool.size() > 0) {\n                VisitedList *rez = pool.front();\n                rez->reset();\n                pool.pop_front();\n                return rez;\n            }\n            else {\n                return new VisitedList(numelements);\n            }\n\n        };\n        void releaseVisitedList(VisitedList *vl) {\n            unique_lock<mutex> lock(poolguard);\n            pool.push_front(vl);\n        };\n        ~VisitedListPool() {\n            LOG(LIB_INFO) << \"Total \" << pool.size() << \" lists allocated\";\n            while (pool.size()) {\n                VisitedList *rez = pool.front();\n                pool.pop_front();\n                delete rez;\n            }\n        };\n    };\n\n\n\n\n\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/lcstrategy.h",
    "content": "#ifndef _LIST_OF_CLUSTERS_STRAT_H_\n#define _LIST_OF_CLUSTERS_STRAT_H_\n\n#include <iostream>\n\nnamespace similarity {\n\nenum class ListClustersStrategy {\n  kRandom,                   // random\n  kClosestPrevCenter,        // closest to the previous selected center\n  kFarthestPrevCenter,       // farthest from the previous selected center\n  kMinSumDistPrevCenters,    // minimize the sum of dist-s to prev.centers\n  kMaxSumDistPrevCenters     // maximize the sum of dist-s to prev.centers\n};\n\ninline std::ostream& operator<<(std::ostream& o, ListClustersStrategy v) {\n  switch (v) {\n    case ListClustersStrategy::kRandom:\n      return o << \"random\";\n    case ListClustersStrategy::kClosestPrevCenter:\n      return o << \"closestPrevCenter\";\n    case ListClustersStrategy::kFarthestPrevCenter:\n      return o << \"farthestPrevCenter\";\n    case ListClustersStrategy::kMinSumDistPrevCenters:\n      return o << \"minSumDistPrevCenters\";\n    case ListClustersStrategy::kMaxSumDistPrevCenters:\n      return o << \"maxSumDistPrevCenters\";\n  }\n  return o << \"unknown\";\n}\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/list_clusters.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _LIST_OF_CLUSTERS_H_\n#define _LIST_OF_CLUSTERS_H_\n\n#include \"index.h\"\n#include \"lcstrategy.h\"\n#include \"params.h\"\n\n#define METH_LIST_CLUSTERS          \"list_clusters\"\n\nnamespace similarity {\n\n/* \n * E. Chavez and G. Navarro.\n * A compact space decomposition for effective a metric indexing. \n * Pattern Recognition Letters, 26(9):1363-1376, 2005\n *\n * The method also resembles canopy clustering: https://en.wikipedia.org/wiki/Canopy_clustering_algorithm\n *\n * Note that similar ideas were also proposed earlier:\n *\n * 1) DynDex: a dynamic and non-metric space indexer, KS Goh, B Li, E Chang, 2002.\n * 2) C. Li, E. Chang, H. Garcia-Molina, and G. Wiederhold. \n *    Clustering for approximate similarity search in high-dimensional\n * 3) E. Chavez and G. Navarro.  \n *    A compact space decomposition for effective a metric indexing. 2005\n */\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass ListClusters : public Index<dist_t> {\n public:\n  ListClusters(const Space<dist_t>& space,\n               const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& MethParams) override;\n  ~ListClusters();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  static const Object* SelectNextCenter(\n      DistObjectPairVector<dist_t>& remaining,\n      ListClustersStrategy strategy);\n\n  virtual bool DuplicateData() const override { return ChunkBucket_; }\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n\n  template <typename QueryType>\n  void GenSearch(QueryType* query) const;\n\n  class Cluster {\n   public:\n    Cluster(const Object* center);\n    ~Cluster();\n\n    void OptimizeBucket();\n    void AddObject(const Object* object,\n                   const dist_t dist);\n\n    const Object* GetCenter();\n    const dist_t GetCoveringRadius();\n    const ObjectVector& GetBucket();\n\n    template <typename QueryType>\n    void Search(QueryType* query) const;\n\n   private:\n    const Object* center_;\n    dist_t covering_radius_;\n    char* CacheOptimizedBucket_;\n    ObjectVector* bucket_;\n    int MaxLeavesToVisit_;\n  };\n\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n\n  std::vector<Cluster*> cluster_list_;\n\n  ListClustersStrategy Strategy_; \n  bool                 UseBucketSize_;\n  size_t               BucketSize_;\n  dist_t               Radius_;\n  int                  MaxLeavesToVisit_;\n  bool                 ChunkBucket_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(ListClusters);\n};\n\n}   // namespace similarity\n\n#endif     // _METRIC_GHTREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/lsh.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _LSH_H_\n#define _LSH_H_\n\n#include \"index.h\"\n#include \"space.h\"\n#include \"lshkit.h\"\n\n#define METH_LSH_THRESHOLD          \"lsh_threshold\"\n#define METH_LSH_CAUCHY             \"lsh_cauchy\"\n#define METH_LSH_GAUSSIAN           \"lsh_gaussian\"\n\nnamespace similarity {\n\n// this class is a wrapper around lshkit and\n// but lshkit can handle only float!\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename lsh_t>\nusing TailRepeatHash = lshkit::Tail<lshkit::RepeatHash<lsh_t>>;\n\nusing TailRepeatHashThreshold = TailRepeatHash<lshkit::ThresholdingLsh>;\nusing TailRepeatHashCauchy = TailRepeatHash<lshkit::CauchyLsh>;\nusing TailRepeatHashGaussian = TailRepeatHash<lshkit::GaussianLsh>;\n\ntemplate <typename lsh_t>\nclass ParameterCreator {\n public:\n  static typename lsh_t::Parameter GetParameter(\n    const lshkit::FloatMatrix& matrix,\n    unsigned H, unsigned M, float W) {\n    throw runtime_error(\"not allowed: dummy parameter creator\");\n    return lsh_t::Parameter();\n  }\n\n  static std::string StrDesc() {\n    return \"ParameterCreator<dummy>\";\n  }\n};\n\ntemplate <>\nclass ParameterCreator<TailRepeatHashThreshold> {\n public:\n  static TailRepeatHashThreshold::Parameter GetParameter(\n    const lshkit::FloatMatrix& matrix,\n    unsigned H, unsigned M, float W) {\n    TailRepeatHashThreshold::Parameter param;\n    param.range = H;\n    param.repeat = M;\n    param.dim = matrix.getDim();\n    param.min = std::numeric_limits<float>::max();\n    param.max = std::numeric_limits<float>::min();\n    for (int i = 0; i < matrix.getSize(); ++i) {\n      for (int j = 0; j < matrix.getDim(); ++j) {\n        if (matrix[i][j] < param.min) param.min = matrix[i][j];\n        if (matrix[i][j] > param.max) param.max = matrix[i][j];\n      }\n    }\n    LOG(LIB_INFO) << \"min  \" << param.min << \" max \" << param.max;\n    return param;\n  }\n\n  static std::string StrDesc() {\n    return \"ParameterCreator<TailRepeatHashThreshold> (l1 distance)\";\n  }\n};\n\ntemplate <>\nclass ParameterCreator<TailRepeatHashCauchy> {\n public:\n  static TailRepeatHashCauchy::Parameter GetParameter(\n    const lshkit::FloatMatrix& matrix,\n    unsigned H, unsigned M, float W) {\n    TailRepeatHashCauchy::Parameter param;\n    param.range = H;\n    param.repeat = M;\n    param.dim = matrix.getDim();\n    param.W = W;\n    return param;\n  }\n\n  static std::string StrDesc() {\n    return \"ParameterCreator<TailRepeatHashCauchy> (l1 distance)\";\n  }\n};\n\ntemplate <>\nclass ParameterCreator<TailRepeatHashGaussian> {\n public:\n  static TailRepeatHashGaussian::Parameter GetParameter(\n    const lshkit::FloatMatrix& matrix,\n    unsigned H, unsigned M, float W) {\n    TailRepeatHashGaussian::Parameter param;\n    param.range = H;\n    param.repeat = M;\n    param.dim = matrix.getDim();\n    param.W = W;\n    return param;\n  }\n\n  static std::string StrDesc() {\n    return \"ParameterCreator<TailRepeatHashGaussian> (l2 distance)\";\n  }\n};\n\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nclass LSH : public Index<dist_t> {\n public:\n  LSH(const Space<dist_t>& space,\n      const ObjectVector& data,\n      int P      // lp (l1 or l2)\n  );\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~LSH();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType ) const override;\n  void Search(KNNQuery<dist_t>* query, IdType ) const override;\n  void SetQueryTimeParams(const AnyParams& params)  override {};\n\n  // LSH does copy all data\n  virtual bool DuplicateData() const override { return true; }\n private:\n  typedef lshkit::LshIndex<TailRepeatHash<lsh_t>, unsigned> LshIndexType;\n\n  const ObjectVector& data_;\n  int p_;\n  lshkit::FloatMatrix* matrix_;\n  LshIndexType* index_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(LSH);\n};\n\n// for l1 distance\ntemplate <typename dist_t>\nusing LSHThreshold = LSH<dist_t, lshkit::ThresholdingLsh,\n                         ParameterCreator<TailRepeatHashThreshold>>;\n\n// for l1 distance\ntemplate <typename dist_t>\nusing LSHCauchy = LSH<dist_t, lshkit::CauchyLsh,\n                      ParameterCreator<TailRepeatHashCauchy>>;\n\n// for l2 distance\ntemplate <typename dist_t>\nusing LSHGaussian = LSH<dist_t, lshkit::GaussianLsh,\n                        ParameterCreator<TailRepeatHashGaussian>>;\n\n}   // namespace similarity\n\n#endif     // _LSH_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/lsh_multiprobe.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _LSH_MULTI_PROBE_H_\n#define _LSH_MULTI_PROBE_H_\n\n#include \"index.h\"\n#include \"space.h\"\n#include \"lshkit.h\"\n\n#define METH_LSH_MULTIPROBE_SYN       \"lsh_multiprobe\"\n#define METH_LSH_MULTIPROBE           \"mplsh\"\n\nnamespace similarity {\n\n// this class is a wrapper around lshkit and\n// but lshkit can handle only float!\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass MultiProbeLSH : public Index<dist_t> {\n public:\n  MultiProbeLSH(const Space<dist_t>& space,\n                const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~MultiProbeLSH();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const  override;\n  void Search(KNNQuery<dist_t>* query, IdType) const  override;\n\n  void SetQueryTimeParams(const AnyParams& params)  override {};\n\n  // LSH does copy all data\n  virtual bool DuplicateData() const override { return true; }\n private:\n  typedef lshkit::MultiProbeLshIndex<unsigned> LshIndexType;\n\n  const ObjectVector& data_;\n  int dim_;\n  lshkit::FloatMatrix* matrix_;\n  LshIndexType* index_;\n  unsigned T_;\n  float R_;\n  \n  void CreateIndexInternal(\n                // for FitData()\n                unsigned N1,          // number of points to use\n                unsigned P,           // number of pairs to sample\n                unsigned Q,           // number of queries to sample\n                unsigned K,           // search for K neighbors neighbors\n                unsigned F,           // divide the sample to F folds\n                // for MPLSHTune()\n                unsigned N2,          // dataset size\n                double R,             // desired recall\n                // other config\n                unsigned L,           // # of hash tables\n                unsigned T,           // # of bins probed in each hash table\n                unsigned H,           // hash table size\n                int      M,           // # of hash functions\n                float  W              // width\n                );\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(MultiProbeLSH);\n};\n\n}   // namespace similarity\n\n#endif     // _LSH_MULTI_PROBE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/lsh_space.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _LSH_SPACE_H_\n#define _LSH_SPACE_H_\n\n#include <cmath>\n#include \"knnquery.h\"\n\nnamespace similarity {\n\nfloat LSHLp(const float* x, const float* y, const int dim, const int p);\n\ntemplate <typename dist_t>\nclass LSHLpSpace {\n public:\n  LSHLpSpace(unsigned dim, unsigned p, KNNQuery<dist_t>* query)\n      : dim_(dim), p_(p), query_(query) {\n  }\n\n  ~LSHLpSpace() {}\n\n  float operator()(const float* x, const float* y) const {\n    query_->AddDistanceComputations(1);\n    return LSHLp(x, y, dim_, p_);\n  }\n\n private:\n  unsigned dim_;\n  unsigned p_;\n  KNNQuery<dist_t>* query_;\n};\n\nfloat LSHMultiProbeLp(const float* x, const float* y, const int dim);\n\ntemplate <typename dist_t>\nclass LSHMultiProbeLpSpace {\n public:\n  LSHMultiProbeLpSpace(unsigned dim, KNNQuery<dist_t>* query)\n      : dim_(dim), query_(query) {\n  }\n\n  ~LSHMultiProbeLpSpace() {}\n\n  float operator()(const float* x, const float* y) const {\n    query_->AddDistanceComputations(1);\n    return LSHMultiProbeLp(x, y, dim_);\n  }\n\n private:\n  unsigned dim_;\n  KNNQuery<dist_t>* query_;\n};\n\n\n}   // namespace similarity\n\n#endif     // _LSH_SPACE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/multi_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _MULT_INDEX_H_\n#define _MULT_INDEX_H_\n\n#include <vector>\n\n#include \"index.h\"\n#include \"params.h\"\n#include \"methodfactory.h\"\n\n#define METH_MULT_INDEX     \"mult_index\"\n\nnamespace similarity {\n\n/*\n * This is a generic method that can create multiple copies of any method indices.\n * During search, results obtained from all the copies are aggregated.\n * This allows us to achieve higher recall when an approximate search method is used.\n * In other words, using multiple copies of the index created using the same method \n * permits to trade efficiency for effectiveness. However, this makes sense only for the\n * methods where creation of the index is NON-deterministic, e.g., when\n * pivots are created randomly.\n * \n */\n\ntemplate <typename dist_t> class Space;\n\ntemplate <typename dist_t>\nclass MultiIndex : public Index<dist_t> {\n public:\n  MultiIndex(bool PrintProgress,\n             const string& SpaceType,\n             Space<dist_t>& space, \n             const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~MultiIndex();\n\n  const std::string StrDesc() const override;\n\n  void Search(RangeQuery<dist_t>* query, IdType ) const override;\n  void Search(KNNQuery<dist_t>* query, IdType ) const override;\n\n  virtual void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n protected:\n\n  std::vector<Index<dist_t>*> indices_;\n  Space<dist_t>&              space_;\n  const ObjectVector&         data_;\n  string                      SpaceType_;\n  bool                        PrintProgress_;\n  size_t                      IndexQty_;\n  string                      MethodName_;\n};\n\n}   // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/multi_vantage_point_tree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _MULTI_VANTAGE_POINT_TREE_H_\n#define _MULTI_VANTAGE_POINT_TREE_H_\n\n#include \"index.h\"\n#include \"params.h\"\n\n#define METH_MVPTREE                \"mvptree\"\n\nnamespace similarity {\n\n/* \n * (Binary version of ) Multi-Vantage Point Tree\n * T. Bozkaya and M. Ozsoyoglu,\n * Indexing large metric spaces for similarity search queries\n */\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass MultiVantagePointTree : public Index<dist_t> {\n public:\n  MultiVantagePointTree(const Space<dist_t>& space,\n                        const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~MultiVantagePointTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override {\n    AnyParamManager pmgr(QueryTimeParams);\n    pmgr.GetParamOptional(\"maxLeavesToVisit\", MaxLeavesToVisit_, FAKE_MAX_LEAVES_TO_VISIT);\n    LOG(LIB_INFO) << \"Set MVP-tree query-time parameters:\";\n    LOG(LIB_INFO) << \"maxLeavesToVisit\" << MaxLeavesToVisit_;\n    pmgr.CheckUnused();\n  }\n\n  virtual bool DuplicateData() const override { return ChunkBucket_; }\n private:\n  struct Entry;\n\n  typedef std::vector<dist_t> Dists;\n  typedef std::vector<Entry> Entries;\n\n  struct Entry {\n    const Object* object;\n    Dists path;\n    dist_t d1;\n    dist_t d2;\n    explicit Entry(const Object* object) : object(object) {}\n  };\n\n  struct Dist1AscComparator {\n    bool operator()(const Entry& e1, const Entry& e2) const {\n      return e1.d1 < e2.d1;\n    }\n  };\n\n  struct Dist2AscComparator {\n    bool operator()(const Entry& e1, const Entry& e2) const {\n      return e1.d2 < e2.d2;\n    }\n  };\n\n  class Node {\n   public:\n    Node(const Object* pivot1, const Object* pivot2, const bool isleaf)\n      : pivot1_(pivot1),\n        pivot2_(pivot2),\n        isleaf_(isleaf) {}\n    virtual ~Node() {}\n    inline bool isleaf() const { return isleaf_; }\n\n   protected:\n    const Object* pivot1_;\n    const Object* pivot2_;\n    const bool isleaf_;\n    friend class MultiVantagePointTree;\n  };\n\n  class InternalNode : public Node {\n   public:\n    InternalNode(const Object* pivot1,\n                 const Object* pivot2,\n                 dist_t m1,\n                 dist_t m21,\n                 dist_t m22)\n      : Node(pivot1, pivot2, false),\n        m1_(m1),\n        m21_(m21),\n        m22_(m22),\n        child1_(NULL),\n        child2_(NULL),\n        child3_(NULL),\n        child4_(NULL) {}\n\n    ~InternalNode() {\n      delete child1_;\n      delete child2_;\n      delete child3_;\n      delete child4_;\n    }\n   private:\n    dist_t m1_;\n    dist_t m21_, m22_;\n    Node* child1_;\n    Node* child2_;\n    Node* child3_;\n    Node* child4_;\n    friend class MultiVantagePointTree;\n  };\n\n  class LeafNode : public Node {\n   public:\n    LeafNode(const Object* pivot1, const Object* pivot2, Entries& entries, bool ChunkBucket)\n      : Node(pivot1, pivot2, true),\n        entries_(entries), CacheOptimizedBucket_(NULL), bucket_(NULL) {\n      if (ChunkBucket && entries.size()) {\n        // TODO (@leo) Figure out whether and (why?) chunking does not improve performance\n        ObjectVector TmpData(entries.size());\n\n        for (unsigned i = 0; i < entries.size(); ++i) {\n          TmpData[i] = entries[i].object;\n        }\n\n        CreateCacheOptimizedBucket(TmpData, CacheOptimizedBucket_, bucket_);\n\n        for (unsigned i = 0; i < entries.size(); ++i) {\n          entries[i].object = (*bucket_)[i];\n        }\n      }\n    }\n    ~LeafNode() {\n      ClearBucket(CacheOptimizedBucket_, bucket_);\n    }\n\n   private:\n    Entries       entries_;\n    char*         CacheOptimizedBucket_; \n    ObjectVector* bucket_;\n    friend class MultiVantagePointTree;\n  };\n\n  Node* BuildTree(const Space<dist_t>* space, Entries& entries);\n\n  template <typename QueryType>\n  void GenericSearch(Node* node, QueryType* query, Dists& path, size_t query_path_len, int& MaxLeavesToVisit) const;\n\n  const Space<dist_t>& space_;\n  const ObjectVector& data_;\n  unique_ptr<Node>    root_;               // root node\n\n  size_t MaxPathLength_;   // the number of distances for the data\n                             // points to be kept at the leaves (P)\n  size_t BucketSize_;     // the maximum fanout for the leaf nodes (K)\n  bool   ChunkBucket_;\n  int    MaxLeavesToVisit_;\n\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(MultiVantagePointTree);\n};\n\n}  // namespace similarity\n\n#endif    // _MULTI_VANTAGE_POINT_TREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/multi_vantage_point_tree_utils.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _MULTI_VANTAGE_POINT_TREE_UTILS_H_\n#define _MULTI_VANTAGE_POINT_TREE_UTILS_H_\n\nnamespace similarity {\n\ntemplate <class T>\nT Remove(std::vector<T>& array, int index) {\n  T result = array[index];\n  array.erase(array.begin() + index);\n  return result;\n}\n\ntemplate <class T>\nT SplitByMedian(std::vector<T>& data,\n                std::vector<T>& split1,\n                std::vector<T>& split2) {\n  CHECK(!data.empty());\n  size_t index_of_median = data.size() >> 1;\n  T median = data[index_of_median];\n  size_t i = 0;\n  for ( ; i <= index_of_median; ++i) {\n    split1.push_back(data[i]);\n  }\n  for ( ; i < data.size(); ++i) {\n    split2.push_back(data[i]);\n  }\n  std::vector<T>().swap(data);\n  return median;\n}\n\n}  // namespace similarity\n\n#endif    // _MULTI_VANTAGE_POINT_TREE_UTILS_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/nndes.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * This is a wrapper class for the Wei Dong implementation of https://code.google.com/p/nndes/,\n * which also contains some of the original code from Wei Dong's repository.  \n * Wei Dong, Charikar Moses, and Kai Li. 2011. Efficient k-nearest neighbor graph construction for generic similarity measures. \n * In Proceedings of the 20th international conference on World wide web (WWW '11). ACM, New York, NY, USA, 577-586. \n * \n * The Wei Dong's code can be redistributed given that the license (see below) is retained in the source code.\n */\n/*\nCopyright (C) 2010,2011 Wei Dong <wdong@wdong.org>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n#ifndef NNDES_METHOD_H_\n#define NNDES_METHOD_H_\n\n#include <string>\n#include <sstream>\n#include <memory>\n\n#include \"index.h\"\n#include \"space.h\"\n\n#include \"nndes/nndes-common.h\"\n#include \"nndes/nndes.h\"\n\n#define METH_NNDES             \"nndes\"\n\nnamespace similarity {\n\nusing std::string;\n\ntemplate <typename dist_t>\nclass NNDescentMethod : public Index<dist_t> {\n public:\n  NNDescentMethod(bool PrintProgress,\n                  const Space<dist_t>& space, \n                  const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~NNDescentMethod(){};\n\n  /* \n   * Just the name of the method, consider printing crucial parameter values\n   */\n  const std::string StrDesc() const override { \n    stringstream str;\n    str << \"NNDescentMethod method: \";\n    return str.str();\n  }\n\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n virtual void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n\n  class SpaceOracle {\n  public:\n    SpaceOracle(const Space<dist_t>& space, const ObjectVector& data) :\n                space_(space), data_(data) {}\n    inline dist_t operator()(IdType id1, IdType id2) const {\n      return space_.IndexTimeDistance(data_.at(id1), data_.at(id2));\n    }\n  private:\n    const Space<dist_t>&    space_;\n    const ObjectVector&     data_;\n  };\n private:\n  void SearchGreedy(KNNQuery<dist_t>* query) const;\n  void SearchSmallWorld(KNNQuery<dist_t>* query) const;\n\n  typedef pair<dist_t, IdType>      EvaluatedNode;\n\n\n  const Space<dist_t>&    space_;\n  const ObjectVector&     data_;\n  bool                    PrintProgress_;\n\n  size_t                  NN_; // K in the original Wei Dong's code nndes.cpp\n  size_t                  efSearch_;\n  size_t                  controlQty_; // control in the original Wei Dong's code nndes.cpp\n  size_t                  iterationQty_; // iteration in the original Wei Dong's code nndes.cpp\n  float                   rho_;\n  float                   delta_;\n\n  SpaceOracle                        nndesOracle_;\n  unique_ptr<NNDescent<SpaceOracle>> nndesObj_;\n\n  size_t                  initSearchAttempts_;\n  bool                    greedy_;\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(NNDescentMethod);\n};\n\n}   // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/nonmetr_list_clust.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef NONMETR_LIST_CLUST_H\n#define NONMETR_LIST_CLUST_H\n\n#include <string>\n#include <sstream>\n#include <memory>\n\n#include \"index.h\"\n#include \"object.h\"\n\n#define METH_NON_METR_LISTCLUST        \"nonmetr_list_clust\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::shared_ptr;\n\n/*\n * A non-metric indexing based on one-level clustering. There are papers for \n * metric and non-metric indexes exploited this idea, e.g.:\n * \n * 1) DynDex: a dynamic and non-metric space indexer, KS Goh, B Li, E Chang, 2002.\n * 2) C. Li, E. Chang, H. Garcia-Molina, and G. Wiederhold. \n *    Clustering for approximate similarity search in high-dimensional\n * 3) E. Chavez and G. Navarro.  \n *    A compact space decomposition for effective a metric indexing. 2005\n */\n\ntemplate <typename dist_t>\nclass NonMetrListClust : public Index<dist_t> {\n public:\n  NonMetrListClust(bool printProgress,\n                   Space<dist_t>& space,\n                   const ObjectVector& data) : printProgress_(printProgress), data_(data), space_(space) {\n    maxObjId_ = 0;\n    for (const Object* o: data) {\n      maxObjId_ = max(maxObjId_, o->id());\n      CHECK_MSG(o->id() >= 0, \"Bug: detected negative object id\");\n    }\n  }\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  // SaveIndex is not necessarily implemented\n  virtual void SaveIndex(const string& location) override {\n    throw runtime_error(\"SaveIndex is not implemented for method: \" + StrDesc());\n  }\n  // LoadIndex is not necessarily implemented\n  virtual void LoadIndex(const string& location) override {\n    throw runtime_error(\"LoadIndex is not implemented for method: \" + StrDesc());\n  }\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n\n  ~NonMetrListClust(){};\n\n  const std::string StrDesc() const override { \n    return string(\"list of clusters for non-metric indexing\");\n  }\n\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  virtual bool DuplicateData() const override { return false; }\n\n private:\n  bool                    printProgress_;\n  const ObjectVector&     data_;\n  Space<dist_t>&          space_;\n\n  size_t                  db_scan_;\n  \n  ObjectVector                                        vCenters_;      // Cluster centers\n  vector<shared_ptr<DistObjectPairVector<dist_t>>>    vClusterAssign_; // Cluster assignment\n  ObjectVector                                        vUnassigned_;\n  IdType                                              maxObjId_;\n\n  template <typename QueryType>\n  void GenericSearch(QueryType* query, IdType) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(NonMetrListClust);\n};\n\n}   // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/omedrank.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * Patent ALERT: even though the code is released under the liberal Apache 2 license,\n * the underlying search method is patented. Therefore, it's free to use in research,\n * but may be problematic in a production setting.\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _OMEDRANK_METHOD_H_\n#define _OMEDRANK_METHOD_H_\n\n#include <string>\n#include <vector>\n#include <sstream>\n#include <memory>\n\n#include \"index.h\"\n#include \"projection.h\"\n#include \"ported_boost_progress.h\"\n\n#define METH_OMEDRANK             \"omedrank\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\n\n/*\n * This is an implementation of Fagin's OMEDRANK method for arbitrary spaces.\n * The main difference is that we allow the user to select several types of\n * projections, while the original Fagin's OMEDRANK relies only on the random\n * projections.\n *\n * Patent: \n *    Efficient similarity search and classification via rank aggregation\n *    United States Patent Application 20040249831\n *\n * Paper: \n *    Fagin, Ronald, Ravi Kumar, and Dandapani Sivakumar. \n *    \"Efficient similarity search and classification via rank aggregation.\" \n *    Proceedings of the 2003 ACM SIGMOD international conference on Management of data. ACM, 2003.\n *\n * In this implementation, we introduce several modifications:\n * 1) Book-keeping (i.e., counting the number of occurrences) relies on a well-known ScanCount algorithm.\n * 2) The inverted file is split into small parts. In doing so, we aim to\n *    achieve better caching properties of the counter array used in ScanCount.\n *    \n *  For an example of using ScanCount see, e.g.:\n *\n *        Li, Chen, Jiaheng Lu, and Yiming Lu. \n *       \"Efficient merging and filtering algorithms for approximate string searches.\" \n *        In Data Engineering, 2008. ICDE 2008. \n *        IEEE 24th International Conference on, pp. 257-266. IEEE, 2008.\n */\n\ntemplate <typename dist_t>\nclass OMedRank : public Index<dist_t> {\n public:\n  OMedRank(bool PrintProgress,\n           const Space<dist_t>& space,\n           const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  virtual ~OMedRank(){};\n\n  const std::string StrDesc() const override { return \"omedrank\" ; }\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n  void IndexChunk(size_t chunkId, ProgressDisplay* displayBar);\n\n  const Space<dist_t>&    space_;\n  const ObjectVector&     data_;\n  bool                    PrintProgress_;\n\n  size_t                  num_pivot_;\n  size_t                  num_pivot_search_;\n  size_t                  chunk_index_size_;\n  size_t                  index_qty_;\n  size_t                  db_scan_;\n  bool                    skip_check_;\n  string                  proj_type_;\n  size_t                  interm_dim_; // used only for sparse vector spaces\n  size_t                  K_;\n  size_t                  knn_amp_;\n  float\t\t\t\t\t          db_scan_frac_;\n  float                   min_freq_;\n  std::unique_ptr<Projection<dist_t>>  projection_;\n\n  struct ObjectInvEntry {\n    IdType    id_;\n    float     pivot_dist_;\n    ObjectInvEntry(IdType id, dist_t pivot_dist) : id_(id), pivot_dist_(pivot_dist) {} \n    bool operator<(const ObjectInvEntry& o) const { \n      if (pivot_dist_ != o.pivot_dist_) return pivot_dist_ < o.pivot_dist_; \n      return id_ < o.id_;\n    };\n  };\n\n  typedef vector<ObjectInvEntry> PostingList;\n\n  vector<shared_ptr<vector<PostingList>>> posting_lists_;\n  \n  // Heuristics: try to read db_scan_fraction/index_qty entries from each index part\n  // or alternatively K * knn_amp_ entries, for KNN-search\n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(db_scan_frac_ * data_.size());\n  }\n\n  template <typename QueryType> void GenSearch(QueryType* query, size_t K) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(OMedRank);\n};\n\n}   // namespace similarity\n\n#endif     // _OMEDRANK_METHOD_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/perm_bin_vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERM_BIN_VPTREE_H_\n#define _PERM_BIN_VPTREE_H_\n\n#include <vector>\n\n#include \"index.h\"\n#include \"space/space_bit_hamming.h\"\n#include \"permutation_utils.h\"\n#include \"vptree.h\"\n#include \"params.h\"\n#include \"searchoracle.h\"\n\n#define METH_PERM_BIN_VPTREE     \"perm_bin_vptree\"\n\nnamespace similarity {\n\n/*\n * Brief permutation index. Binarized permutations are stored in the VP-tree.\n *\n * Similar to :\n *\n * A brief index for proximity searching\n * ES Téllez, E Chávez, A Camarena-Ibarrola \n *\n * The difference from their work: we search permutations using APPROXIMATE near-neighbor search.\n *\n */\ntemplate <typename dist_t, PivotIdType (*CorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nclass PermBinVPTree : public Index<dist_t> {\n public:\n  PermBinVPTree(bool PrintProgress,\n                Space<dist_t>& space,\n                const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~PermBinVPTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n\n  Space<dist_t>&            space_;\n  const ObjectVector&       data_;\n  bool                      PrintProgress_;\n  size_t                    bin_threshold_;\n  size_t                    bin_perm_word_qty_;\n  size_t                    db_scan_qty_;\n  ObjectVector              pivots_;\n  ObjectVector              BinPermData_;\n\n  unique_ptr<VPTree<int, PolynomialPruner<int>>>   VPTreeIndex_;\n  unique_ptr<SpaceBitHamming>                      VPTreeSpace_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PermBinVPTree);\n};\n\n}  // namespace similarity\n\n#endif     // _PERM_BIN_VPTREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/perm_index_incr_bin.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERMUTATION_INDEX_INCREMENTAL_BINARY_H_\n#define _PERMUTATION_INDEX_INCREMENTAL_BINARY_H_\n\n#include <vector>\n#include \"index.h\"\n#include \"permutation_utils.h\"\n\n\n#define METH_PERMUTATION_INC_SORT_BIN       \"perm_incsort_bin\"\n#define METH_PERMUTATION_INC_SORT_BIN_SYN   \"perm_bin_incsort\"\n\nnamespace similarity {\n\n/* \n * A simplified version of the brief permutation index.\n * Unlike the original version, all binarized permutations\n * are sought for sequentially.\n * \n * A brief index for proximity searching\n * ES Téllez, E Chávez, A Camarena-Ibarrola\n */\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nclass PermutationIndexIncrementalBin : public Index<dist_t> {\n public:\n  PermutationIndexIncrementalBin(bool PrintProgress,\n                              const Space<dist_t>& space,\n                              const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~PermutationIndexIncrementalBin();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  virtual void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n\n private:\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  bool                  PrintProgress_;\n\n  ObjectVector        pivot_;\n\n  size_t        num_pivot_;\n  size_t        bin_threshold_;\n  float         db_scan_frac_; \n  size_t        knn_amp_;\n  size_t        bin_perm_word_qty_;\n  bool          use_sort_;\n  size_t        max_hamming_dist_;\n  bool          skip_checking_;\n\n  std::vector<uint32_t> permtable_;\n  \n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(db_scan_frac_ * data_.size());\n  }\n\n  template <typename QueryType> void GenSearch(QueryType* query, size_t K) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PermutationIndexIncrementalBin);\n};\n\n}  // namespace similarity\n\n#endif     // _PERMUTATION_INDEX_INCREMENTAL_BINARY_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/perm_lsh_bin.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERMUTATION_INDEX_LSH_BIN_\n#define _PERMUTATION_INDEX_LSH_BIN_\n\n#include <vector>\n#include \"index.h\"\n#include \"permutation_utils.h\"\n\n\n#define METH_PERMUTATION_LSH_BIN   \"perm_lsh_bin\"\n\nnamespace similarity {\n\n/* \n * A simplified version of the LSH based on binarized permutations.\n * \n * Tellez, Eric Sadit, and Edgar Chavez. \n * \"On locality sensitive hashing in metric spaces.\" \n * Proceedings of the SISAP 2010.\n */\n\ntemplate <typename dist_t>\nclass PermutationIndexLSHBin : public Index<dist_t> {\n public:\n  PermutationIndexLSHBin(\n                 bool PrintProgress,\n                 const Space<dist_t>& space,\n                 const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& MethParams) override;\n  ~PermutationIndexLSHBin();\n\n  const std::string StrDesc() const override { return \"LSH (binary permutations)\"; }\n  void Search(RangeQuery<dist_t>* query, IdType) const override {GenSearch(query);}\n  void Search(KNNQuery<dist_t>* query, IdType) const override {GenSearch(query);}\n\n  void SetQueryTimeParams(const AnyParams &) override {}\n private:\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  bool                  printProgress_;\n\n  size_t                num_pivot_;\n  size_t                bin_threshold_;\n  size_t                bit_sample_qty_;\n  size_t                num_hash_;\n  size_t                hash_table_size_;\n  vector<ObjectVector>  pivots_;\n  vector<vector<char>>  bit_sample_flags_;\n\n  vector<vector<vector<IdType>*>> hash_tables_;\n\n  template <typename QueryType> void GenSearch(QueryType* query) const;\n\n  /*\n   * If pQuery is not NULL, distances are computed via the query.\n   */\n  size_t  computeHashValue(size_t hashId, const Object* pObj, Query<dist_t>* pQuery) const {\n    Permutation perm_q;\n    if (pQuery) {\n      GetPermutation(pivots_[hashId], pQuery, &perm_q);\n    } else {\n      GetPermutation(pivots_[hashId], space_, pObj, &perm_q);\n    }\n    size_t res = 0, flag = 1;\n    for (size_t i = 0; i < num_pivot_; ++i) \n    if (bit_sample_flags_[hashId][i]) {\n      if (perm_q[i] >= bin_threshold_) {\n        res |= flag;\n      }\n      flag <<= 1;\n    }\n    return res % hash_table_size_;\n  }\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PermutationIndexLSHBin);\n};\n\n}  // namespace similarity\n\n#endif     \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/permutation_inverted_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERM_INVERTED_INDEX_H_\n#define _PERM_INVERTED_INDEX_H_\n\n#include <vector>\n#include \"index.h\"\n#include \"permutation_utils.h\"\n\n#define METH_PERM_INVERTED_INDEX       \"perm_inv_indx\"\n#define METH_PERM_INVERTED_INDEX_SYN   \"mi-file\"\n\n#define USE_MAP_THRESHOLD 0.01\n\nnamespace similarity {\n\n/*\n * Giuseppe Amato and Pasquale Savino,\n * Approximate Similarity Search in Metric Spaces Using Inverted Files,\n * Infoscale (2008)\n *\n * Later dubbed as MI-File (metric inverted file).\n */\n\ntemplate <typename dist_t>\nclass PermutationInvertedIndex : public Index<dist_t> {\n public:\n  PermutationInvertedIndex(\n                bool  PrintProgress,\n                const Space<dist_t>& space,\n                const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& params) override;\n  ~PermutationInvertedIndex();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n  \n  virtual void SetQueryTimeParams(const AnyParams& params) override;\n\n private:\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  bool                  PrintProgress_;\n\n  float  db_scan_frac_;\n  size_t num_pivot_;            // overall number of pivots\n  size_t num_pivot_index_;      // ki in the original paper\n  size_t num_pivot_search_;     // ks in the original paper\n  size_t max_pos_diff_;\n  size_t knn_amp_;\n  ObjectVector pivot_;\n\n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(db_scan_frac_ * data_.size());\n  }\n\n  struct ObjectInvEntry {\n    IdType    id_;\n    int       pos_;\n    ObjectInvEntry(IdType id, int pos) : id_(id), pos_(pos) {} \n    bool operator<(const ObjectInvEntry& o) const { \n      if (pos_ != o.pos_) return pos_ < o.pos_; \n      return id_ < o.id_;\n    };\n  };\n\n  typedef std::vector<ObjectInvEntry> PostingList;\n\n  std::vector<PostingList> posting_lists_;\n\n  // K==0 for range search\n  template <typename QueryType> void GenSearch(QueryType* query, size_t K) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PermutationInvertedIndex);\n};\n\n}  // namespace similarity\n\n#endif     // _INVERTED_INDEX_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/permutation_prefix_index.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERMUTATION_PREFIX_INDEX_H_\n#define _PERMUTATION_PREFIX_INDEX_H_\n\n#include <string>\n#include \"index.h\"\n#include \"permutation_utils.h\"\n\n#define METH_PERMUTATION_PREFIX_IND     \"perm_prefix\"\n#define METH_PERMUTATION_PREFIX_IND_SYN \"pp-index\"\n\nnamespace similarity {\n\n/*\n * Permutation Prefix Index (PP-index): \n * Esuli, 2012.\n * Using Permutation Prefixes for Efficient and Scalable Approximate Similarity Search.\n */\n\ntemplate <typename dist_t>\nclass Space;\n\nclass PrefixTree;\n\ntemplate <typename dist_t>\nclass PermutationPrefixIndex : public Index<dist_t> {\n public:\n  PermutationPrefixIndex(bool  PrintProgress,\n                        const Space<dist_t>& space,\n                        const ObjectVector& data);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~PermutationPrefixIndex();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n  virtual bool DuplicateData() const override { return chunkBucket_; }\n private:\n\n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(min(min_candidate_, data_.size()));\n  }\n\n\n  template <typename QueryType>\n  void GenSearch(QueryType* query, size_t K) const;\n\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  bool                  PrintProgress_;\n\n  // permutation prefix length (l in the original paper) in (0, num_pivot]\n  size_t num_pivot_;\n  size_t prefix_length_;\n  size_t min_candidate_;\n  size_t knn_amp_;\n  // min # of candidates to be selected (z in the original paper)\n  ObjectVector pivot_;\n  unique_ptr<PrefixTree> prefixtree_;\n  bool                   chunkBucket_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PermutationPrefixIndex);\n};\n\n}  // namespace similarity\n\n#endif     // _PERMUTATION_PREFIX_INDEX_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/pivot_neighb_common.h",
    "content": "\n#ifndef NONMETRICSPACELIB_PIVOT_NEIGHB_COMMON_H_H\n#define NONMETRICSPACELIB_PIVOT_NEIGHB_COMMON_H_H\n\n#include <idtype.h>\n#include <vector>\n\nnamespace similarity {\n\nusing std::vector;\n\n#define PERM_PROC_FAST_SCAN       \"scan\"\n#define PERM_PROC_MAP             \"map\"\n#define PERM_PROC_MERGE           \"merge\"\n\nstruct IdCount {\n  size_t id;\n  size_t qty;\n\n  IdCount(size_t id = 0, int qty = 0) : id(id), qty(qty) { }\n};\n\ntypedef vector<IdCount> VectIdCount;\n\ntypedef vector<IdTypeUnsign> PostingListInt;\n\ninline void postListUnion(const VectIdCount &lst1, const PostingListInt lst2, VectIdCount &res) {\n  res.clear();\n  res.reserve((lst1.size() + lst2.size()) / 2);\n  auto i1 = lst1.begin();\n  auto i2 = lst2.begin();\n\n  while (i1 != lst1.end() && i2 != lst2.end()) {\n    size_t id2 = static_cast<size_t>(*i2);\n    if (i1->id < id2) {\n      res.push_back(*i1);\n      ++i1;\n    } else if (i1->id > id2) {\n      res.push_back(IdCount(id2, 1));\n      ++i2;\n    } else {\n      res.push_back(IdCount(i1->id, i1->qty + 1));\n      ++i1;\n      ++i2;\n    }\n  }\n  while (i1 != lst1.end()) {\n    res.push_back(*i1);\n    ++i1;\n  }\n  while (i2 != lst2.end()) {\n    res.push_back(IdCount(*i2, 1));\n    ++i2;\n  }\n}\n\n}\n\n#endif //NONMETRICSPACELIB_PIVOT_NEIGHB_COMMON_H_H\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/pivot_neighb_invindx.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2010--2013\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PIVOT_NEIGHBORHOOD_INVINDEX_H\n#define _PIVOT_NEIGHBORHOOD_INVINDEX_H\n\n#include <vector>\n#include <mutex>\n\n#include \"index.h\"\n#include \"permutation_utils.h\"\n#include \"ported_boost_progress.h\"\n\n#define METH_PIVOT_NEIGHB_INVINDEX      \"pivot_neighb_invindx\"\n#define METH_PIVOT_NEIGHB_INVINDEX_SYN  \"napp\"\n\n#include <method/pivot_neighb_common.h>\n\nnamespace similarity {\n\nusing std::vector;\nusing std::mutex;\n\n/*\n * Neighborhood-APProximation Index (NAPP).\n *\n * The main idea of the method (indexing K most closest pivots using an inverted file)\n * was taken from the paper:\n *\n * Eric Sadit Tellez, Edgar Chavez and Gonzalo Navarro,\n * Succinct Nearest Neighbor Search, SISAP 2011\n *\n * In this implementation, we introduce several modifications:\n * 1) The inverted file is split into small parts. In doing so, we aim to\n *    achieve better caching properties of the counter array used in ScanCount.\n * 2) The index is not compressed (though it could be)\n * 3) Instead of the adaptive union algorithm, we use a well-known ScanCount algorithm (by default). \n *    The overall time spent on processing of the inverted file is 20-30% of the overall\n *    search time. Thus, the retrieval time cannot be substantially improved by\n *    replacing ScanCount with even better approach (should one exist).\n * 4) We also implemented several other simple algorithms for posting processing, to compare\n *    against ScanCount. For instance, the merge-sort union algorithms is about 2-3 times as slow.\n *\n *  For an example of using ScanCount see, e.g.:\n *\n *        Li, Chen, Jiaheng Lu, and Yiming Lu. \n *       \"Efficient merging and filtering algorithms for approximate string searches.\" \n *        In Data Engineering, 2008. ICDE 2008. \n *        IEEE 24th International Conference on, pp. 257-266. IEEE, 2008.\n */\n\ntemplate <typename dist_t>\nclass PivotNeighbInvertedIndex : public Index<dist_t> {\n public:\n  PivotNeighbInvertedIndex(bool PrintProgress,\n                           const Space<dist_t>& space,\n                           const ObjectVector& data);\n\n  virtual void CreateIndex(const AnyParams& IndexParams) override;\n  virtual void SaveIndex(const string &location) override;\n  virtual void LoadIndex(const string &location) override;\n\n  ~PivotNeighbInvertedIndex();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n  \n  void IndexChunk(size_t chunkId, ProgressDisplay*, mutex&);\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n\n  const   ObjectVector&   data_;\n  const   Space<dist_t>&  space_;\n  bool    PrintProgress_;\n  bool    recreate_points_;\n\n  size_t  chunk_index_size_;\n  size_t  K_;\n  size_t  knn_amp_;\n  float   db_scan_frac_;\n  size_t  num_prefix_;       // K in the original paper\n  size_t  min_times_;        // t in the original paper\n  bool    use_sort_;\n  bool    skip_checking_;\n  size_t  index_thread_qty_;\n  size_t  num_pivot_;\n  string  pivot_file_;\n\n  enum eAlgProctype {\n    kScan,\n    kMap,\n    kMerge\n  } inv_proc_alg_;\n\n  string toString(eAlgProctype type) {\n    if (type == kScan)   return PERM_PROC_FAST_SCAN;\n    if (type == kMap)    return PERM_PROC_MAP;\n    if (type == kMerge)  return PERM_PROC_MERGE;\n    return \"unknown\";\n  }\n\n  ObjectVector    pivot_;\n  vector<IdType>  pivot_pos_;\n\n  ObjectVector    genPivot_; // generated pivots\n\n  size_t computeDbScan(size_t K, size_t chunkQty) const {\n    size_t totalDbScan = static_cast<size_t>(db_scan_frac_ * data_.size());\n    if (knn_amp_) { \n      totalDbScan = K * knn_amp_;\n    }\n    totalDbScan = min(totalDbScan, data_.size());\n    CHECK_MSG(chunkQty, \"Bug or inconsistent parameters: the number of index chunks cannot be zero!\");\n    return (totalDbScan + chunkQty - 1) / chunkQty;\n  }\n  \n  vector<shared_ptr<vector<PostingListInt>>> posting_lists_;\n\n  template <typename QueryType> void GenSearch(QueryType* query, size_t K) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(PivotNeighbInvertedIndex);\n};\n\n}  // namespace similarity\n\n#endif     // _PERMUTATION_SUCCINCT_INDEX_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/proj_vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PROJ_VPTREE_H_\n#define _PROJ_VPTREE_H_\n\n#include <vector>\n\n#include \"index.h\"\n#include \"space/space_lp.h\"\n#include \"space/space_vector.h\"\n#include \"method/vptree.h\"\n#include \"params.h\"\n#include \"projection.h\"\n#include \"searchoracle.h\"\n\n#define METH_PROJ_VPTREE     \"proj_vptree\"\n\nnamespace similarity {\n\n/*\n * The VP-tree build over projections.\n */\ntemplate <typename dist_t>\nclass ProjectionVPTree : public Index<dist_t> {\n public:\n  ProjectionVPTree(bool PrintProgress, \n                   Space<dist_t>& space,\n                   const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~ProjectionVPTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType ) const override;\n  void Search(KNNQuery<dist_t>* query, IdType ) const override;\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n\n\n  Space<dist_t>&                    space_;\n  const ObjectVector&               data_;\n  bool                              PrintProgress_;\n\n  size_t                            K_;\n  size_t                            knn_amp_;\n  float\t\t\t\t\t                    db_scan_frac_;\n\n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(db_scan_frac_ * data_.size());\n  }\n\n  unique_ptr<Projection<dist_t> >   projObj_;\n  ObjectVector                      projData_;\n  size_t                            projDim_;\n\n  Object*                           ProjectOneVect(size_t targSpaceId,\n                                                   const Query<dist_t>* pQuery,\n                                                   const Object* pSrcObj) const;\n\n  unique_ptr<VPTree<float, PolynomialPruner<float>>>  VPTreeIndex_;\n  unique_ptr<VectorSpaceSimpleStorage<float>>         VPTreeSpace_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(ProjectionVPTree);\n};\n\n}  // namespace similarity\n\n#endif     // _PROJ_VPTREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/projection_index_incremental.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PROJECTION_INDEX_INCREMENTAL_H_\n#define _PROJECTION_INDEX_INCREMENTAL_H_\n\n#include <vector>\n#include <memory>\n\n#include \"index.h\"\n#include \"projection.h\"\n#include \"space/space_vector.h\"\n\n// If set, projected vectors are stored contiguously in memory\n#define PROJ_CONTIGUOUS_STORAGE\n\n#define METH_PROJECTION_INC_SORT   \"proj_incsort\"\n\nnamespace similarity {\n\n/* \n * The following filter-and-refine method is inspired by the paper of Chavez et al (see below). \n * The main difference is that this method supports several transformations of the source objects into vectors.\n * In other words, we select dbScanFract vectors whose projection vector is close to the projection \n * of the query. Sorting is done via the incremental quicksort. There is an additional parameter:\n * the maximum allowed distance in the projected space between the query and the data point projection\n * (which is not in the referenced paper).\n *\n * Edgar Chávez et al., Effective Proximity Retrieval by Ordering Permutations.\n *                      IEEE Trans. Pattern Anal. Mach. Intell. (2008)\n */\n\ntemplate <typename dist_t>\nclass ProjectionIndexIncremental : public Index<dist_t> {\n public:\n  ProjectionIndexIncremental(bool PrintProgress,\n                             const Space<dist_t>& space,\n                             const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n  ~ProjectionIndexIncremental();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n  \n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override;\n private:\n\n  const Space<dist_t>&    space_;\n  const ObjectVector&     data_;\n  bool                    PrintProgress_;\n\n  float                                                 max_proj_dist_;\n  bool                                                  use_priority_queue_;\n  size_t                                                K_;\n  size_t                                                knn_amp_;\n  float\t\t\t\t\t                                        db_scan_frac_;\n  size_t                                                proj_dim_;\n  bool                                                  use_cosine_;\n  string                                                proj_descr_;\n  unique_ptr<Projection<dist_t> >                       proj_obj_;\n\n#ifdef PROJ_CONTIGUOUS_STORAGE\n  std::vector<float>            proj_vects_;\n#else\n  std::vector<vector<float>>    proj_vects_;\n#endif\n  \n  size_t computeDbScan(size_t K) const {\n    if (knn_amp_) { return min(K * knn_amp_, data_.size()); }\n    return static_cast<size_t>(db_scan_frac_ * data_.size());\n  }\n\n  template <typename QueryType> void GenSearch(QueryType* query, size_t K) const;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(ProjectionIndexIncremental);\n};\n\n}  // namespace similarity\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/seqsearch.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _SEQSEARCH_H_\n#define _SEQSEARCH_H_\n\n#include <string>\n\n#include \"index.h\"\n\n#define METH_SEQ_SEARCH                 \"brute_force\"\n#define METH_SEQ_SEARCH_SYN             \"seq_search\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\n\n// Sequential search\n\ntemplate <typename dist_t>\nclass SeqSearch : public Index<dist_t> {\n public:\n  SeqSearch(Space<dist_t>& space, const ObjectVector& data);\n  void CreateIndex(const AnyParams& ) override;\n  virtual ~SeqSearch();\n\n  const std::string StrDesc() const override { return \"Sequential search\"; }\n\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams& params) override {}\n private:\n  Space<dist_t>&          space_;\n  const ObjectVector&     origData_;\n  char*                   cacheOptimizedBucket_;\n\n  ObjectVector*           pData_;\n  bool                    multiThread_;\n  IdTypeUnsign            threadQty_;\n  vector<ObjectVector>    vvThreadData;\n\n  const ObjectVector& getData() const { return pData_ != NULL ? *pData_ : origData_; }\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(SeqSearch);\n};\n\n}   // namespace similarity\n\n#endif     // _SEQSEARCH_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/small_world_rand.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SMALL_WORLD_RAND_H_\n#define _SMALL_WORLD_RAND_H_\n\n#include \"index.h\"\n#include \"params.h\"\n#include <set>\n#include <limits>\n#include <iostream>\n#include <map>\n#include <unordered_set>\n#include <thread>\n#include <memory>\n#include <mutex>\n#include <condition_variable>\n#include <queue>\n\n\n#define METH_SMALL_WORLD_RAND                 \"sw-graph\"\n#define METH_SMALL_WORLD_RAND_SYN             \"small_world_rand\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::thread;\nusing std::mutex;\nusing std::unique_lock;\nusing std::condition_variable;\nusing std::ref;\n\ntemplate <typename dist_t>\nclass Space;\n\n/*\n *\n * A small world approach. It builds the knn-graph incrementally and relies on \n * a straightforward randomized algorithm to insert an element. \n * \n * The main publication is as follows, but the basic algorithm was also presented as SISAP'12: \n *    Malkov, Y., Ponomarenko, A., Logvinov, A., & Krylov, V., 2014. \n *    Approximate nearest neighbor algorithm based on navigable small world graphs. Information Systems, 45, 61-68. \n *\n */\n\n//----------------------------------\nclass MSWNode{\npublic:\n  MSWNode(const Object *Obj, size_t id) {\n    data_ = Obj;\n    id_ = id;\n  }\n  ~MSWNode(){};\n  void removeAllFriends(){\n    friends.clear();\n  }\n  /* \n   * 1. The list of friend pointers is sorted.\n   * 2. If bCheckForDup == true addFriend checks for\n   *    duplicates using binary searching (via pointer comparison).\n   */\n  void addFriend(MSWNode* element, bool bCheckForDup) {\n    unique_lock<mutex> lock(accessGuard_);\n\n    if (bCheckForDup) {\n      auto it = lower_bound(friends.begin(), friends.end(), element);\n      if (it == friends.end() || (*it) != element) {\n        friends.insert(it, element);\n      }\n    } else {\n      friends.push_back(element);\n    }\n  }\n  const Object* getData() const {\n    return data_;\n  }\n  size_t getId() const { return id_; }\n  /* \n   * THIS NOTE APPLIES ONLY TO THE INDEXING PHASE:\n   *\n   * Before getting access to the friends,\n   * one needs to lock the mutex accessGuard_\n   * The mutex can be released ONLY when\n   * we exit the scope that has access to\n   * the reference returned by getAllFriends()\n   */\n  const vector<MSWNode*>& getAllFriends() const {\n    return friends;\n  }\n\n  mutex accessGuard_;\n\nprivate:\n  const Object*       data_;\n  size_t              id_;\n  vector<MSWNode*>    friends;\n};\n//----------------------------------\ntemplate <typename dist_t>\nclass EvaluatedMSWNodeReverse{\npublic:\n  EvaluatedMSWNodeReverse() {\n      distance = 0;\n      element = NULL;\n  }\n  EvaluatedMSWNodeReverse(dist_t di, MSWNode* node) {\n    distance = di;\n    element = node;\n  }\n  ~EvaluatedMSWNodeReverse(){}\n  dist_t getDistance() const {return distance;}\n  MSWNode* getMSWNode() const {return element;}\n  bool operator< (const EvaluatedMSWNodeReverse &obj1) const {\n    return (distance > obj1.getDistance());\n  }\n\nprivate:\n  dist_t distance;\n  MSWNode* element;\n};\n\ntemplate <typename dist_t>\nclass EvaluatedMSWNodeDirect{\npublic:\n  EvaluatedMSWNodeDirect() {\n      distance = 0;\n      element = NULL;\n  }\n  EvaluatedMSWNodeDirect(dist_t di, MSWNode* node) {\n    distance = di;\n    element = node;\n  }\n  ~EvaluatedMSWNodeDirect(){}\n  dist_t getDistance() const {return distance;}\n  MSWNode* getMSWNode() const {return element;}\n  bool operator< (const EvaluatedMSWNodeDirect &obj1) const {\n    return (distance < obj1.getDistance());\n  }\n\nprivate:\n  dist_t distance;\n  MSWNode* element;\n};\n\n//----------------------------------\ntemplate <typename dist_t>\nclass SmallWorldRand : public Index<dist_t> {\npublic:\n  virtual void SaveIndex(const string &location) override;\n\n  virtual void LoadIndex(const string &location) override;\n\n  SmallWorldRand(bool PrintProgress,\n                 const Space<dist_t>& space,\n                 const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~SmallWorldRand();\n\n  typedef std::vector<MSWNode*> ElementList;\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n  MSWNode* getRandomEntryPoint() const;\n  MSWNode* getRandomEntryPointLocked() const;\n  size_t getEntryQtyLocked() const;\n   \n  void searchForIndexing(const Object *queryObj,\n                         std::priority_queue<EvaluatedMSWNodeDirect<dist_t>> &resultSet) const;\n  void add(MSWNode *newElement);\n  void addCriticalSection(MSWNode *newElement);\n  void link(MSWNode* first, MSWNode* second){\n    // addFriend checks for duplicates if the second argument is true\n    first->addFriend(second, true);\n    second->addFriend(first, true);\n  }\n\n  void SetQueryTimeParams(const AnyParams& ) override;\nprivate:\n\n  size_t                NN_;\n  size_t                efConstruction_;\n  size_t                efSearch_;\n  size_t                initIndexAttempts_;\n  size_t                initSearchAttempts_;\n  size_t                indexThreadQty_;\n  string                pivotFile_;\n  ObjectVector          pivots_;\n\n  const Space<dist_t>&  space_;\n  ObjectVector          data_; // We copy all the data\n  bool                  PrintProgress_;\n\n  mutable mutex   ElListGuard_;\n  ElementList     ElList_;\n\n\n  void SearchOld(KNNQuery<dist_t>* query) const;\n  void SearchV1Merge(KNNQuery<dist_t>* query) const;\n  \n  enum AlgoType { kOld, kV1Merge };\n\n  AlgoType               searchAlgoType_;\n\nprotected:\n\n  DISABLE_COPY_AND_ASSIGN(SmallWorldRand);\n};\n\n\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/small_world_rand_split.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SMALL_WORLD_RAND_SPLIT_H_\n#define _SMALL_WORLD_RAND_SPLIT_H_\n\n#include \"index.h\"\n#include \"params.h\"\n#include <set>\n#include <limits>\n#include <iostream>\n#include <map>\n#include <unordered_set>\n#include <thread>\n#include <memory>\n#include <mutex>\n#include <condition_variable>\n#include <queue>\n\n\n#define METH_SMALL_WORLD_RAND_SPLIT             \"sw-graph-split\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::thread;\nusing std::mutex;\nusing std::unique_lock;\nusing std::condition_variable;\nusing std::ref;\n\ntemplate <typename dist_t>\nclass Space;\n\n/*\n *\n * A small world approach. It builds the knn-graph incrementally and relies on \n * a straightforward randomized algorithm to insert an element. \n * The index can be split into chunks (to make indexing faster). Usually,\n * this comes at the expense of search efficiency.\n * \n * The main publication is as follows, but the basic algorithm was also presented as SISAP'12: \n *    Malkov, Y., Ponomarenko, A., Logvinov, A., & Krylov, V., 2014. \n *    Approximate nearest neighbor algorithm based on navigable small world graphs. Information Systems, 45, 61-68. \n *\n */\n\n//----------------------------------\n\n//----------------------------------\ntemplate <typename dist_t>\nclass SmallWorldRandSplit : public Index<dist_t> {\npublic:\n  class MSWNode{\n  public:\n    MSWNode(const Object *Obj, size_t id) {\n      data_ = Obj;\n      id_ = id;\n    }\n    ~MSWNode(){};\n    void removeAllFriends(){\n      friends.clear();\n    }\n    /*\n     * 1. The list of friend pointers is sorted.\n     * 2. If bCheckForDup == true addFriend checks for\n     *    duplicates using binary searching (via pointer comparison).\n     */\n    void addFriend(MSWNode* element, bool bCheckForDup) {\n      unique_lock<mutex> lock(accessGuard_);\n\n      if (bCheckForDup) {\n        auto it = lower_bound(friends.begin(), friends.end(), element);\n        if (it == friends.end() || (*it) != element) {\n          friends.insert(it, element);\n        }\n      } else {\n        friends.push_back(element);\n      }\n    }\n    const Object* getData() const {\n      return data_;\n    }\n    size_t getId() const { return id_; }\n    void setId(size_t id) { id_ = id; }\n    /*\n     * THIS NOTE APPLIES ONLY TO THE INDEXING PHASE:\n     *\n     * Before getting access to the friends,\n     * one needs to lock the mutex accessGuard_\n     * The mutex can be released ONLY when\n     * we exit the scope that has access to\n     * the reference returned by getAllFriends()\n     */\n    const vector<MSWNode*>& getAllFriends() const {\n      return friends;\n    }\n\n    mutex accessGuard_;\n\n  private:\n    const Object*       data_;\n    size_t              id_;\n    vector<MSWNode*>    friends;\n  };\n  //----------------------------------\n  class EvaluatedMSWNodeReverse{\n  public:\n    EvaluatedMSWNodeReverse() {\n      distance = 0;\n      element = NULL;\n    }\n    EvaluatedMSWNodeReverse(dist_t di, MSWNode* node) {\n      distance = di;\n      element = node;\n    }\n    ~EvaluatedMSWNodeReverse(){}\n    dist_t getDistance() const {return distance;}\n    MSWNode* getMSWNode() const {return element;}\n    bool operator< (const EvaluatedMSWNodeReverse &obj1) const {\n      return (distance > obj1.getDistance());\n    }\n\n  private:\n    dist_t distance;\n    MSWNode* element;\n  };\n\n  class EvaluatedMSWNodeDirect{\n  public:\n    EvaluatedMSWNodeDirect() {\n      distance = 0;\n      element = NULL;\n    }\n    EvaluatedMSWNodeDirect(dist_t di, MSWNode* node) {\n      distance = di;\n      element = node;\n    }\n    ~EvaluatedMSWNodeDirect(){}\n    dist_t getDistance() const {return distance;}\n    MSWNode* getMSWNode() const {return element;}\n    bool operator< (const EvaluatedMSWNodeDirect &obj1) const {\n      return (distance < obj1.getDistance());\n    }\n\n  private:\n    dist_t distance;\n    MSWNode* element;\n  };\n\n  virtual void SaveIndex(const string &location) override;\n\n  virtual void LoadIndex(const string &location) override;\n\n  SmallWorldRandSplit(bool PrintProgress,\n                 const Space<dist_t>& space,\n                 const ObjectVector& data);\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~SmallWorldRandSplit();\n\n  typedef std::vector<MSWNode*> ElementList;\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n  MSWNode* getRandomEntryPoint(size_t start, size_t end) const;\n  MSWNode* getRandomEntryPointLocked(size_t start, size_t end) const;\n  size_t getEntryQtyLocked() const;\n   \n  void searchForIndexing(const Object *queryObj,\n                         const size_t chunkStart, const size_t chunkEnd, size_t randomEntryPointEnd,\n                         vector<bool>& visitedBitset,\n                         std::priority_queue<EvaluatedMSWNodeDirect> &resultSet) const;\n  void add(MSWNode *newElement, const size_t chunkStart, const size_t chunkEnd, vector<bool>& visitedBitset);\n  void link(MSWNode* first, MSWNode* second){\n    // addFriend checks for duplicates if the second argument is true\n    first->addFriend(second, true);\n    second->addFriend(first, true);\n  }\n\n  void SetQueryTimeParams(const AnyParams& ) override;\n\nprivate:\n\n  size_t                NN_;\n  size_t                efConstruction_;\n  size_t                efSearch_;\n  size_t                initIndexAttempts_;\n  size_t                initSearchAttempts_;\n  size_t                indexThreadQty_;\n  size_t                chunkIndexSize_;\n\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  bool                  PrintProgress_;\n\n  mutable mutex   ElListGuard_;\n  ElementList     ElList_;\n\nprotected:\n\n  DISABLE_COPY_AND_ASSIGN(SmallWorldRandSplit);\n};\n\n\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/spatial_approx_tree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPATIAL_APPROXIMATION_TREE_H_\n#define _SPATIAL_APPROXIMATION_TREE_H_\n\n#include <string>\n\n#include \"index.h\"\n#include \"params.h\"\n\n#define METH_SATREE                 \"satree\"\n\nnamespace similarity {\n\n/* \n * (Static) Spatial Approximation Tree\n * G. Navarro: Searching in metric spaces by spatial approximation\n * VLDB Journal 11: pp 28-46 (2002)\n */\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass SpatialApproxTree : public Index<dist_t> {\n public:\n  SpatialApproxTree(const Space<dist_t>& space,\n                    const ObjectVector& data);\n\n  void CreateIndex(const AnyParams&) override;\n\n  ~SpatialApproxTree();\n\n  const std::string StrDesc() const override;\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  void SetQueryTimeParams(const AnyParams&) override {}\n\n private:\n  struct SATKnn;\n  class SATNode;\n\n  const Space<dist_t>& space_;\n  const ObjectVector  data_;\n  \n  unique_ptr<SATNode> root_;\n};\n\n}    // namespace similarity\n\n#endif     // _SPATIAL_APPROXIMATION_TREE_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/vptree.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _VPTREE_H_\n#define _VPTREE_H_\n\n#include <string>\n#include <vector>\n#include <memory>\n\n#include \"index.h\"\n#include \"params.h\"\n#include \"ported_boost_progress.h\"\n\n#define METH_VPTREE          \"vptree\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::unique_ptr;\n\n// Vantage point tree\n\ntemplate <typename dist_t> class Space;\n\ntemplate <typename dist_t, typename SearchOracle>\nclass VPTree : public Index<dist_t> {\n public:\n  VPTree(bool PrintProgress,\n         Space<dist_t>& space,\n         const ObjectVector& data,\n         bool use_random_center = true);\n\n  void CreateIndex(const AnyParams& IndexParams) override;\n\n  ~VPTree();\n\n  const std::string StrDesc() const override;\n\n  void Search(RangeQuery<dist_t>* query, IdType) const override;\n  void Search(KNNQuery<dist_t>* query, IdType) const override;\n\n  const vector<string>& getQueryTimeParams() const { return QueryTimeParams_; }\n\n\n  void SetQueryTimeParams(const AnyParams& QueryTimeParams) override {\n    AnyParamManager pmgr(QueryTimeParams);\n    oracle_.SetQueryTimeParams(pmgr); \n    pmgr.GetParamOptional(\"maxLeavesToVisit\", MaxLeavesToVisit_, FAKE_MAX_LEAVES_TO_VISIT);\n    LOG(LIB_INFO) << \"Set VP-tree query-time parameters:\";\n    LOG(LIB_INFO) << \"maxLeavesToVisit=\" << MaxLeavesToVisit_;\n    pmgr.CheckUnused();\n  }\n\n  virtual bool DuplicateData() const override { return ChunkBucket_; }\n private:\n\n  class VPNode {\n   public:\n    // We want trees to be balanced\n    const size_t BalanceConst = 4; \n\n    VPNode(unsigned level,\n           ProgressDisplay* progress_bar,\n           const SearchOracle&  oracle,\n           const Space<dist_t>& space, const ObjectVector& data,\n           size_t BucketSize, bool ChunkBucket,\n           bool use_random_center);\n    ~VPNode();\n\n    template <typename QueryType>\n    void GenericSearch(QueryType* query, int& MaxLeavesToVisit) const;\n\n   private:\n    void CreateBucket(bool ChunkBucket, const ObjectVector& data, \n                      ProgressDisplay* progress_bar);\n    const SearchOracle& oracle_; // The search oracle must be accessed by reference,\n                                 // so that VP-tree may be able to change its parameters\n    const Object* pivot_;\n    /* \n     * Even if dist_t is double, or long double\n     * storing the median as the single-precision number (i.e., float)\n     * should be good enough.\n     */\n    float         mediandist_;\n    VPNode*       left_child_;\n    VPNode*       right_child_;\n    ObjectVector* bucket_;\n    char*         CacheOptimizedBucket_;\n\n    friend class VPTree;\n  };\n\n  Space<dist_t>&      space_;\n  const ObjectVector& data_;\n  bool                PrintProgress_;\n  bool                use_random_center_;\n\n  SearchOracle        oracle_;\n  unique_ptr<VPNode>  root_;\n  size_t              BucketSize_;\n  int                 MaxLeavesToVisit_;\n  bool                ChunkBucket_;\n\n  vector<string>  QueryTimeParams_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(VPTree);\n};\n\n\n}   // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/method/vptree_utils.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _VPTREE_UTILS_H_\n#define _VPTREE_UTILS_H_\n\n#include <vector>\n#include <cmath>\n#include <cstdlib>\n\n#include \"object.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\ninline size_t SelectVantagePoint(const ObjectVector& data, bool use_random_center) {\n  CHECK(!data.empty());\n  return use_random_center ? RandomInt() % data.size() : data.size() - 1;\n}\n\n/* \n * A median is a pair:\n * a distance + an index.\n */\ntemplate <typename dist_t>\ninline DistObjectPair<dist_t> GetMedian(const DistObjectPairVector<dist_t>& dp) {\n  CHECK(!dp.empty());\n  dist_t val = 0;\n  size_t index;\n  if ((dp.size() & 1) == 1) {   // odd\n    index = dp.size() / 2;\n    val = dp[index].first;\n  } else {                      //even\n    CHECK(dp.size() >= 2);\n    index = dp.size() / 2;\n    val = static_cast<dist_t>((static_cast<double>(dp[index - 1].first) \n                             + static_cast<double>(dp[index ].first)) / 2.0);\n  }\n  return DistObjectPair<dist_t>(val, dp[index].second); \n}\n\n/* \n * This function find for approximate quantile boundaries.\n * It wasn't meant to get quantiles exactly. Furthermore,\n * the method may return fewer indices than the # of quantiles.\n*/\ntemplate <typename dist_t, typename data_t>\ninline std::vector<size_t> EstimateQuantileIndices(\n    const typename std::vector<std::pair<dist_t, data_t> >& dp,\n    const std::vector<float> quant) {\n  CHECK(!dp.empty());\n  std::vector<size_t> res;\n  size_t N = dp.size();\n\n  size_t prevIndx = 0;\n\n  for(auto it = quant.begin(); it != quant.end(); ++it) {\n      size_t indx = static_cast<size_t>(round(*it * N));\n      if (indx < N && indx > prevIndx) {\n        dist_t dist = dp[indx].first;\n        prevIndx = indx;\n        // If there is a series of entries with equal distances, go to the end of the list!\n        while (indx < N && dp[indx].first == dist) {\n          prevIndx = indx++;\n        }\n        res.push_back(prevIndx);\n     }\n  }\n\n  return res;\n}\n\n}          // namespace similarity\n\n#endif     // _VPTREE_UTILS_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/methodfactory.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef METHOD_FACTORY_H\n#define METHOD_FACTORY_H\n\n#include <string>\n#include <iostream>\n\n#include \"index.h\"\n#include \"space.h\"\n#include \"logging.h\"\n\nnamespace similarity {\n\nusing std::string;\n\n#define REGISTER_METHOD_CREATOR(type, name, func)\\\n      MethodFactoryRegistry<type>::Instance().Register(name, func); \n \n\ntemplate <typename dist_t>\nclass MethodFactoryRegistry {\npublic:\n  typedef Index<dist_t>* (*CreateFuncPtr)(\n                           bool                 PrintProgress,\n                           const string&        SpaceType,\n                           Space<dist_t>&       space,\n                           const ObjectVector&  DataObjects);\n\n  static MethodFactoryRegistry& Instance() {\n    static MethodFactoryRegistry elem;\n    return elem;\n  }\n\n  void Register(const string& MethodName, CreateFuncPtr func) {\n    LOG(LIB_INFO) << \"Registering at the factory, method: \" << MethodName << \" distance type: \" << DistTypeName<dist_t>();\n    Creators_[MethodName] = func;\n  }\n\n  Index<dist_t>* CreateMethod(bool PrintProgress,\n                            const string& MethName,\n                            const string& SpaceType,\n                            Space<dist_t>& space,\n                            const ObjectVector& DataObjects) {\n    if (Creators_.count(MethName)) {\n      return Creators_[MethName](PrintProgress, SpaceType, space, DataObjects);\n    } else {\n      PREPARE_RUNTIME_ERR(err) << \"It looks like the method \" << MethName << \n                    \" is not defined for the distance type : \" << DistTypeName<dist_t>();\n      THROW_RUNTIME_ERR(err);\n    }\n    return NULL;\n  }\nprivate:\n  map<string, CreateFuncPtr>  Creators_;\n};\n\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/nndes/nndes-common.h",
    "content": "/*\nCopyright (C) 2010,2011 Wei Dong <wdong@wdong.org>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n#ifndef WDONG_NNDESCENT_COMMON\n#define WDONG_NNDESCENT_COMMON\n\n#include <cmath>\n#include <vector>\n#include <iostream>\n#include <fstream>\n#include <algorithm>\n#include <limits>\n#include <boost/assert.hpp>\n#include <boost/foreach.hpp>\n#include <boost/progress.hpp>\n#include <boost/random.hpp>\n#define USE_SPINLOCK 1\n#ifdef USE_SPINLOCK\n#include <mutex>\n#include \"boost/smart_ptr/detail/spinlock.hpp\"\n#endif\n#ifdef _OPENMP\n#include <omp.h>\n#endif\n\nnamespace similarity {\n\n    using std::vector;\n    using std::numeric_limits;\n\n#define SYMMETRIC 1\n\n#ifdef _OPENMP\n#if SYMMETRIC\n#define NEED_LOCK 1\n#endif\n#endif\n\n#if NEED_LOCK\n#ifdef USE_SPINLOCK\n     class Mutex {\n         boost::detail::spinlock lock;\n     public:\n         void init () {\n         }\n         void set () {\n             lock.lock();\n         }\n \n         void unset () {\n             lock.unlock();\n         }\n         friend class ScopedLock;\n     };\n\n     class ScopedLock: public std::lock_guard<boost::detail::spinlock> {\n     public:\n         ScopedLock (Mutex &mutex): std::lock_guard<boost::detail::spinlock>(mutex.lock) {\n \n         }\n     };\n#else\n    class Mutex {\n        omp_lock_t *lock;\n    public:\n        Mutex (): lock(0) {\n        }\n\n        void init () {\n            lock = new omp_lock_t;\n            omp_init_lock(lock);\n        }\n\n        ~Mutex () {\n            if (lock) {\n                omp_destroy_lock(lock);\n                delete lock;\n            }\n        }\n\n        void set () {\n            omp_set_lock(lock);\n        }\n\n        void unset () {\n            omp_unset_lock(lock);\n        }\n\n        friend class ScopedLock;\n    };\n    class ScopedLock {\n        omp_lock_t *lock;\n    public:\n        ScopedLock (Mutex &mutex) {\n            lock = mutex.lock;\n            omp_set_lock(lock);\n        }\n        ~ScopedLock () {\n            omp_unset_lock(lock);\n        }\n    };\n#endif\n#else\n    class Mutex {\n    public:\n        void init () {};\n        void set () {};\n        void unset () {};\n    };\n    class ScopedLock {\n    public:\n        ScopedLock (Mutex &) {\n        }\n    };\n#endif\n\n    struct KNNEntry\n    {\n        static const int BAD = -1; //numeric_limits<int>::max();\n        int key;\n        float dist;   \n        bool flag;\n        bool match (const KNNEntry &e) const { return key == e.key; }\n        KNNEntry (int key_, float dist_, bool flag_ = true) : key(key_), dist(dist_), flag(flag_) {}\n        KNNEntry () : dist(numeric_limits<float>::max()) { }\n        void reset () { key = BAD;  dist = numeric_limits<float>::max(); }\n        friend bool operator < (const KNNEntry &e1, const KNNEntry &e2)\n        {\n            return e1.dist < e2.dist;\n        }\n    };\n\n    class KNN: public vector<KNNEntry>\n    {\n        int K;\n        Mutex mutex;\n    public:\n        typedef KNNEntry Element;\n        typedef vector<KNNEntry> Base;\n\n        void init (int k) {\n            mutex.init();\n            K = k;\n            this->resize(k);\n            BOOST_FOREACH(KNNEntry &e, *this) {\n                e.reset();\n            }\n        }\n\n        int update (Element t)\n        {\n            //ScopedLock ll(mutex);\n            mutex.set();\n            int i = this->size() - 1;\n            int j;\n            if (!(t < this->back())) {\n                mutex.unset();\n                return -1;\n            }\n            for (;;)\n            {\n                if (i == 0) break;\n                j = i - 1;\n                if (this->at(j).match(t)) {\n                    mutex.unset();\n                    return -1;\n                }\n                if (this->at(j) < t) break;\n                i = j;\n            }\n\n            j = this->size() - 1;\n            for (;;)\n            {\n                if (j == i) break;\n                this->at(j) = this->at(j-1);\n                --j;\n            }\n            this->at(i) = t;\n            mutex.unset();\n            return i;\n        }\n\n        void update_unsafe (Element t)\n        {\n            int i = this->size() - 1;\n            int j;\n            if (!(t < this->back())) return;\n            for (;;)\n            {\n                if (i == 0) break;\n                j = i - 1;\n                if (this->at(j).match(t)) {\n                    return;\n                }\n                if (this->at(j) < t) break;\n                i = j;\n            }\n\n            j = this->size() - 1;\n            for (;;)\n            {\n                if (j == i) break;\n                this->at(j) = this->at(j-1);\n                --j;\n            }\n            this->at(i) = t;\n        }\n\n        void lock() {\n            mutex.set();\n        }\n\n        void unlock() {\n            mutex.unset();\n        }\n    };\n\n    static inline float recall (const int *knn, const KNN &ans, int K) {\n        int match = 0;\n        for (int i = 0; i < K; ++i) {\n            for (int j = 0; j < K; ++j) {\n                if (knn[i] == ans[j].key) {\n                    ++match;\n                    break;\n                }\n            }\n        }\n        return float(match) / K;\n    }\n\n    class Random {\n        boost::mt19937 rng;\n    public:\n        Random () {\n        }\n        void seed (int s) {\n            rng.seed(s);\n        }\n        ptrdiff_t operator () (ptrdiff_t i) {\n            return rng() % i;\n        }\n    };\n}\n\n#endif \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/nndes/nndes.h",
    "content": "/*\nCopyright (C) 2010,2011 Wei Dong <wdong@wdong.org>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n#ifndef WDONG_NNDESCENT\n#define WDONG_NNDESCENT\n\n#include \"nndes-common.h\"\n#include \"ported_boost_progress.h\"\n\nnamespace similarity {\n\n    using std::cout;\n    using std::unique_ptr;\n    using std::vector;\n    using std::swap;\n\n#ifndef NNDES_SHOW_PROGRESS\n#define NNDES_SHOW_PROGRESS 1\n#endif\n\n    // Normally one would use GRAPH_BOTH,\n    // GRAPH_KNN & GRAPH_RNN are for experiments only.\n    static const int GRAPH_NONE = 0, GRAPH_KNN = 1, GRAPH_RNN = 2, GRAPH_BOTH = 4;\n    typedef int GraphOption;\n\n    // The main NN-Descent class.\n    // Instead of the actual dataset, the class takes a distance oracle\n    // as input.  Given two data item ids, the oracle returns the distance\n    // between the two.\n    template <typename ORACLE>\n    class NNDescent {\n    private:\n        const ORACLE &oracle;\n        int N;              // # points\n        int K;              // K-NN to find\n        int S;              // # of NNs to use for exploration\n        GraphOption option;\n        vector<KNN> nn;     // K-NN approximation\n\n        // We maintain old and newly added KNN/RNN items\n        // separately for incremental processing:\n        // we need to compare two new ones\n        // and a new one to an old one, but not two old ones as they\n        // must have been compared already.\n        vector<vector<int> > nn_old;\n        vector<vector<int> > nn_new;\n        vector<vector<int> > rnn_old;\n        vector<vector<int> > rnn_new;\n\n        // total number of comparisons done.\n        long long int cost;\n\n        // This function decides of it's necessary to compare two\n        // points.  Obviously a point should not compare against itself.\n        // Another potential usage of this function is to record all\n        // pairs that have already be compared, so that when seen in the future,\n        // then same pair doesn't have be compared again.\n        bool mark (int p1, int p2) {\n            return p1 == p2;\n        }\n\n        // Compare two points and update their KNN list of necessary.\n        // Return the number of comparisons done (0 or 1).\n        int update (int p1, int p2) {\n            if (mark(p1, p2)) return 0;\n            // KNN::update is synchronized by a lock\n            // keep an order is necessary to avoid deadlock.\n            if (p1 > p2) swap(p1, p2);\n            float dist =  oracle(p1, p2);\n            nn[p1].update(KNN::Element(p2, dist, true));\n            nn[p2].update(KNN::Element(p1, dist, true));\n            return 1;\n        }\n\n    public:\n        const vector<KNN> &getNN() const {\n            return nn;\n        }\n\n        long long int getCost () const {\n            return cost;\n        }\n\n        NNDescent (int N_, int K_, float S_, const ORACLE &oracle_,\n                GraphOption opt = GRAPH_BOTH)\n            : oracle(oracle_), N(N_), K(K_), S(K * S_), option(opt), nn(N_),\n              nn_old(N_), nn_new(N_), rnn_old(N_), rnn_new(N_), cost(0)\n        {\n            for (int i = 0; i < N; ++i) {\n                nn[i].init(K);\n                // random initial edges\n                if ((option & GRAPH_KNN) || (option & GRAPH_BOTH)) {\n                    nn_new[i].resize(S);\n                    BOOST_FOREACH(int &u, nn_new[i]) {\n                        u = RandomInt() % N;\n                    }\n                }\n                if ((option & GRAPH_RNN) || (option & GRAPH_BOTH)) {\n                    rnn_new[i].resize(S);\n                    BOOST_FOREACH(int &u, rnn_new[i]) {\n                        u = RandomInt() % N;\n                    }\n                }\n            }\n        }\n\n        // An iteration contains two parts:\n        //      local join\n        //      identify the newly detected NNs.\n        int iterate (bool PrintProgress) {\n\n#if NNDES_SHOW_PROGRESS\n            unique_ptr<ProgressDisplay>  progress(\n                    PrintProgress? new ProgressDisplay(N, cerr): NULL);\n#endif\n\n            long long int cc = 0;\n            // local joins\n#pragma omp parallel for default(shared) reduction(+:cc)\n            for (int i = 0; i < N; ++i) {\n\n                // The following loops are bloated to deal with all\n                // the experimental setups.  Otherwise they should\n                // be really simple.\n                if (option & (GRAPH_KNN | GRAPH_BOTH)) {\n                    BOOST_FOREACH(int j, nn_new[i]) {\n                        BOOST_FOREACH(int k, nn_new[i]) {\n                            if (j >= k) continue;\n                            cc += update(j, k);\n                        }\n                        BOOST_FOREACH(int k, nn_old[i]) {\n                            cc += update(j, k);\n                        }\n                    }\n                }\n                if (option & (GRAPH_RNN | GRAPH_BOTH)) {\n                    BOOST_FOREACH(int j, rnn_new[i]) {\n                        BOOST_FOREACH(int k, rnn_new[i]) {\n                            if (j >= k) continue;\n                            cc += update(j, k);\n                        }\n                        BOOST_FOREACH(int k, rnn_old[i]) {\n                            cc += update(j, k);\n                        }\n                    }\n                }\n                if (option & GRAPH_BOTH) {\n                    BOOST_FOREACH(int j, nn_new[i]) {\n                        BOOST_FOREACH(int k, rnn_old[i]) {\n                            cc += update(j, k);\n                        }\n                        BOOST_FOREACH(int k, rnn_new[i]) {\n                            cc += update(j, k);\n                        }\n                    }\n                    BOOST_FOREACH(int j, nn_old[i]) {\n                        BOOST_FOREACH(int k, rnn_new[i]) {\n                            cc += update(j, k);\n                        }\n                    }\n                }\n\n#if NNDES_SHOW_PROGRESS\n#pragma omp critical \n                if (progress) ++(*progress);\n#endif\n            }\n\n            cost += cc;\n\n            int t = 0;\n//#pragma omp parallel for default(shared) reduction(+:t)\n            for (int i = 0; i < N; ++i) {\n\n                nn_old[i].clear();\n                nn_new[i].clear();\n                rnn_old[i].clear();\n                rnn_new[i].clear();\n\n                // find the new ones\n                for (int j = 0; j < K; ++j) {\n                    KNN::Element &e = nn[i][j];\n                    if (e.key == KNN::Element::BAD) continue;\n                    if (e.flag){\n                        nn_new[i].push_back(j);\n                    }\n                    else {\n                        nn_old[i].push_back(e.key);\n                    }\n                }\n\n                t += nn_new[i].size();\n                // sample\n                if (nn_new[i].size() > unsigned(S)) {\n                    random_shuffle(nn_new[i].begin(), nn_new[i].end());\n                    nn_new[i].resize(S);\n                }\n                BOOST_FOREACH(int &v, nn_new[i]) {\n                    nn[i][v].flag = false;\n                    v = nn[i][v].key;\n                }\n            }\n\n            // symmetrize\n            if ((option & GRAPH_RNN) || (option & GRAPH_BOTH)) {\n                for (int i = 0; i < N; ++i) {\n                    BOOST_FOREACH(int e, nn_old[i]) {\n                        rnn_old[e].push_back(i);\n                    }\n                    BOOST_FOREACH(int e, nn_new[i]) {\n                        rnn_new[e].push_back(i);\n                    }\n                }\n            }\n\n//#pragma omp parallel for default(shared) reduction(+:t)\n            for (int i = 0; i < N; ++i) {\n                if (rnn_old[i].size() > unsigned(S)) {\n                    random_shuffle(rnn_old[i].begin(), rnn_old[i].end());\n                    rnn_old[i].resize(S);\n                }\n                if (rnn_new[i].size() > unsigned(S)) {\n                    random_shuffle(rnn_new[i].begin(), rnn_new[i].end());\n                    rnn_new[i].resize(S);\n                }\n            }\n\n            return t;\n        }\n    };\n\n\n}\n\n#endif \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/object.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _OBJECT_H_\n#define _OBJECT_H_\n\n#include <cstring>\n#include <cctype>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <list>\n#include <utility>\n#include <limits>\n#include <algorithm>\n#include <cstdint>\n\n#include \"global.h\"\n#include \"idtype.h\"\n#include \"logging.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::stringstream;\nusing std::numeric_limits;\n\n/* \n * Structure of object: | 4-byte id | 4-byte label | 8-byte datasize | data ........ |\n * We need data to be aligned on 8-byte boundaries.\n * \n * TODO 1) this all apparenlty hinges on the assumption that malloc() gives addresses\n *      that are 8-bye aligned. So, this is related to issue #9\n *      2) even though GCC doesn't complain, using a single char buffer may break aliasing rules\n *\n * See also http://searchivarius.org/blog/what-you-must-know-about-alignment-21st-century\n */\n\nclass Object {\n public:\n  explicit Object(char* buffer) : buffer_(buffer), memory_allocated_(false) {}\n\n  Object(IdType id, LabelType label, size_t datalength, const void* data) {\n    buffer_ = new char[ID_SIZE + LABEL_SIZE + DATALENGTH_SIZE + datalength];\n    CHECK(buffer_ != NULL);\n    memory_allocated_ = true;\n    char* ptr = buffer_;\n    memcpy(ptr, &id, ID_SIZE);\n    ptr += ID_SIZE;\n    memcpy(ptr, &label, LABEL_SIZE); \n    ptr += LABEL_SIZE;\n    memcpy(ptr, &datalength, DATALENGTH_SIZE);\n    ptr += DATALENGTH_SIZE;\n    if (data != NULL) {\n      memcpy(ptr, data, datalength);\n    } else {\n      memset(ptr, 0, datalength);\n    }\n  }\n\n  ~Object() {\n    if (memory_allocated_) {\n      delete[] buffer_;\n    }\n  }\n\n  static Object* CreateNewEmptyObject(size_t datalength) {\n    // the caller is responsible for releasing the pointer\n    Object* empty_object = new Object(-1, -1, datalength, NULL);\n    CHECK(empty_object != NULL);\n    return empty_object;\n  }\n\n  Object* Clone() const {\n    Object* clone = new Object(id(), label(), datalength(), data());\n    return clone;\n  }\n\n  inline IdType    id()         const { return *(reinterpret_cast<IdType*>(buffer_)); }\n  inline LabelType label()      const { return *(reinterpret_cast<LabelType*>(buffer_ + LABEL_SIZE)); }\n  inline size_t datalength()    const { return *(reinterpret_cast<size_t*>(buffer_ + LABEL_SIZE + ID_SIZE));}\n  inline const char* data() const { return buffer_ + ID_SIZE + LABEL_SIZE+ DATALENGTH_SIZE; }\n  inline char* data()             { return buffer_ + ID_SIZE + LABEL_SIZE+ DATALENGTH_SIZE; }\n\n  inline const char* buffer()  const { return buffer_; }\n  inline size_t bufferlength() const { return ID_SIZE + LABEL_SIZE+ DATALENGTH_SIZE + datalength(); }\n\n  void Print() const {\n    LOG(LIB_INFO) << \"id = \" << id()\n        << \"\\tlabel = \" << label()\n        << \"\\tdatalength = \" << datalength()\n        << \"\\tbuffer = \" << buffer()\n        << \"\\tdata = \" << data();\n  }\n\n  /*\n   * Extracts label from the beginning of the input string and modifies the string by removing label information.\n   * If no label is present, the input string remains unchanged.\n   */\n  static LabelType extractLabel(string& fileLine) {\n    static string labelPrefix = LABEL_PREFIX; // thread-safe in C++11\n\n    LabelType res = EMPTY_LABEL;\n    if (fileLine.size() > labelPrefix.size() + 1 &&\n        fileLine.substr(0, labelPrefix.size()) == labelPrefix) {\n      int p = -1;\n\n      for (size_t i = labelPrefix.size(); i < fileLine.size(); ++i) {\n        if (isspace(fileLine[i])) {\n          p = i; \n          break;\n        }\n      }\n      if (p >= 0) {\n        size_t j = p;\n        // j is the first non-white space char\n        while(j < fileLine.size() && isspace(fileLine[j])) ++j;\n\n        stringstream numstr(fileLine.substr(labelPrefix.size(), p - labelPrefix.size()));\n\n        if (!(numstr >> res) || !numstr.eof()) {\n          PREPARE_RUNTIME_ERR(err) << \"Cannot extract label from the file line: '\" << fileLine << \"'\";\n          THROW_RUNTIME_ERR(err);\n        }\n\n        fileLine = fileLine.substr(j);\n       \n      } else {\n        PREPARE_RUNTIME_ERR(err) << \"No space is found after the label definition in the file line: '\" << fileLine << \"'\";\n        THROW_RUNTIME_ERR(err);\n      }\n    }\n    return res;\n  }\n  /*\n   * Adds a label to the beginning of the string.\n   */\n  static void addLabel(string& fileLine, LabelType label) {\n    stringstream str;\n    str << LABEL_PREFIX << label << \" \";\n    fileLine.insert(0, str.str()); \n  }\n private:\n  char* buffer_;\n  bool  memory_allocated_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(Object);\n};\n\n\n/* \n * Clearing memory: we will use some smart pointer here (somewhen).\n *                  can't use standard shared_ptr, b/c they have\n *                  performance issues.\n * see, e.g.: http://nerds-central.blogspot.com/2012/03/sharedptr-performance-issues-and.html \n */\ntypedef std::vector<const Object*> ObjectVector;\n\ninline size_t DataSpaceUsed(const ObjectVector &vect) {\n  size_t res = 0;\n  for (const auto elem: vect) res += elem->datalength();\n  return res;\n}\n\ninline size_t TotalSpaceUsed(const ObjectVector &vect) {\n  size_t res = 0;\n  for (const auto elem: vect) res += elem->bufferlength();\n  return res;\n}\n\n/* \n * The caller is repsonsible for deleting:\n *  1) bucket\n *  2) Object pointers stored in the bucket\n */\ninline void CreateCacheOptimizedBucket(const ObjectVector& data, \n                                       char*& CacheOptimizedBucket, \n                                       ObjectVector*& bucket) {\n  if (data.empty()) {\n    /* TODO @leo Normally this wouldn't happen\n     *           However, some methods, e.g., list of clusters\n     *           with KLDiv may produce empty clusters.\n     */\n    LOG(LIB_WARNING) << \"Empty bucket!\"; \n  }\n  CacheOptimizedBucket = new char [TotalSpaceUsed(data)];\n  char *p = CacheOptimizedBucket;\n  bucket = new ObjectVector(data.size());\n\n  for(size_t i = 0; i < data.size(); ++i) {\n    memcpy(p, data[i]->buffer(), data[i]->bufferlength());\n    (*bucket)[i] = new Object(const_cast<char*>(p));\n    p += data[i]->bufferlength();\n  }\n}\n\ninline void ClearBucket(char* CacheOptimizedBucket,\n                        ObjectVector* bucket) {\n  if (CacheOptimizedBucket) {\n    for(auto i:(*bucket)) {\n      delete i;\n    }\n  }\n  delete [] CacheOptimizedBucket;\n  delete bucket;\n}\n\ntypedef std::list<const Object*> ObjectList;\n\ntemplate<typename dist_t>\nusing DistObjectPair = std::pair<dist_t, const Object*>;\n\ntemplate <typename dist_t>\nusing DistObjectPairVector = std::vector<DistObjectPair<dist_t>>;\n\n\ntemplate <typename dist_t>\nstruct DistObjectPairAscComparator {\n  bool operator()(const DistObjectPair<dist_t>& x,\n                  const DistObjectPair<dist_t>& y) const {\n    return x.first < y.first;\n  }\n};\n\ntemplate <typename dist_t>\nstruct DistObjectPairDescComparator {\n  bool operator()(const DistObjectPair<dist_t>& x,\n                  const DistObjectPair<dist_t>& y) const {\n    return x.first > y.first;\n  }\n};\n\nstruct ObjectIdAscComparator {\n  inline bool operator()(const Object* x, const Object* y) const {\n    return x->id() < y->id();\n  }\n};\n\n/*\n * We do not support very large data sets.\n */\ninline void CheckDataSize(const ObjectVector &data) {\n  if (data.size() > MAX_DATASET_QTY) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: the number of data elements (\" << data.size() << \") is too big, \"\n                             << \"bigger than \" << MAX_DATASET_QTY;\n  }\n}\n\n/*\n * Creates a recoding array to efficiently map object IDs to their\n * positions in the data vector. The array-based mapping is\n * quite space-efficient, because the largest object ID is rouhgly\n * equal to the number of data vector elements. The array based mapping\n * also permits extremely fast lookups.\n */\ninline void CreateObjIdToPosMapper(const ObjectVector& data, std::vector<IdType>& mapper) {\n  CheckDataSize(data);\n  IdType maxId = -1;\n  for (const Object* pObj : data)  {\n    CHECK_MSG(pObj->id() >= 0, \"Bug: encountered negative object ID\");\n    maxId = std::max(maxId, pObj->id());\n  }\n  mapper.resize(maxId);\n  std::fill(mapper.begin(), mapper.end(), -1);\n  for (IdTypeUnsign i = 0; i < data.size(); ++i) {\n    mapper[data[i]->id()] = i;\n  }\n}\n\n\n\n}   // namespace similarity\n\n#endif    // _OBJECT_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/params.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef PARAMS_H\n#define PARAMS_H\n\n#include <string>\n#include <vector>\n#include <limits>\n#include <map>\n#include <set>\n#include <memory>\n#include <sstream>\n#include <algorithm>\n#include <stdexcept>\n\n#include \"logging.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::multimap;\nusing std::set;\nusing std::stringstream;\nusing std::shared_ptr;\nusing std::unique_ptr;\n\n\n#define FAKE_MAX_LEAVES_TO_VISIT std::numeric_limits<int>::max() \n\nclass AnyParams {\npublic:\n  /* \n   * Each element of the description array is in the form:\n   * <param name>=<param value>\n   */\n  AnyParams(const vector<string>& Desc) :ParamNames(0), ParamValues(0) {\n    set<string> seen;\n    for (unsigned i = 0; i < Desc.size(); ++i) {\n      vector<string>  OneParamPair;\n      if (!SplitStr(Desc[i], OneParamPair, '=') ||\n          OneParamPair.size() != 2) {\n        stringstream err;\n        err << \"Wrong format of an argument: '\" << Desc[i] << \"' should be in the format: <Name>=<Value>\";\n        LOG(LIB_ERROR)  << err.str();\n        throw runtime_error(err.str());\n      }\n      const string& Name = OneParamPair[0];\n      const string& sVal = OneParamPair[1];\n\n      if (seen.count(Name)) {\n        string err = \"Duplicate parameter: \" + Name;\n        LOG(LIB_ERROR)  << err;\n        throw runtime_error(err);\n      }\n      seen.insert(Name);\n\n      ParamNames.push_back(Name);\n      ParamValues.push_back(sVal);\n    }\n  }\n  \n  /* \n   * Compare parameters against parameters in the other parameter container.\n   * In doing so, IGNORE parameters from the exception list.\n   */\n  bool equalsIgnoreInList(const AnyParams& that, const vector<string>& ExceptList) {   \n   /*\n    * These loops are reasonably efficient, unless\n    * we have thousands of parameters in the exception\n    * list (which realistically won't happen)\n    */\n    \n    vector<pair<string, string>> vals[2], inter;\n    const AnyParams*             objRefs[2] = {this, &that};\n\n\n    for (size_t objId = 0; objId < 2; ++objId) {\n      const AnyParams& obj = *objRefs[objId];\n \n      for (size_t i = 0; i < obj.ParamNames.size(); ++i) {\n        const string& name = obj.ParamNames[i];\n        if (find(ExceptList.begin(), ExceptList.end(), name) == ExceptList.end()) {\n          vals[objId].push_back(make_pair(name, obj.ParamValues[i]));\n        }\n      }      \n      sort(vals[objId].begin(), vals[objId].end());\n    }\n    \n    inter.resize(ParamNames.size() + that.ParamNames.size());\n    size_t qty = set_intersection(vals[0].begin(), vals[0].end(),\n                     vals[1].begin(), vals[1].end(),\n                     inter.begin()) - inter.begin();\n    /*\n     * We computed the size of the intersection.\n     * If it is equal to the size of either of the original \n     * param lists (entries in the exception lists are excluded\n     * at this point), then both sets are equal.\n     */\n    return qty == vals[0].size() && qty == vals[1].size();    \n  }\n\n  string ToString() const {\n    stringstream res;\n    for (unsigned i = 0; i < ParamNames.size(); ++i) {\n      if (i) res << \",\";\n      res << ParamNames[i] << \"=\" << ParamValues[i];\n    }\n    return res.str();\n  }\n\n  template <typename ParamType> \n  void ChangeParam(const string& Name, const ParamType& Value) {\n    for (unsigned i = 0; i < ParamNames.size(); ++i) \n    if (Name == ParamNames[i]) {\n      stringstream str;\n\n      str << Value;\n      ParamValues[i] = str.str();\n      return;\n    }\n    string err = \"Parameter not found: \" + Name;\n    LOG(LIB_ERROR)  << err;\n    throw runtime_error(err);\n  } \n\n  template <typename ParamType> \n  void AddChangeParam(const string& Name, const ParamType& Value) {\n    stringstream str;\n    str << Value;\n  \n    for (unsigned i = 0; i < ParamNames.size(); ++i) \n    if (Name == ParamNames[i]) {\n      ParamValues[i] = str.str();\n      return;\n    }\n\n    ParamNames.push_back(Name);\n    ParamValues.push_back(str.str());\n  }\n\n  AnyParams(){}\n  AnyParams(const vector<string>& Names, const vector<string>& Values) \n            : ParamNames(Names), ParamValues(Values) {}\n  AnyParams(const AnyParams& that)\n            : ParamNames(that.ParamNames), ParamValues(that.ParamValues) {}\n\n  vector<string>  ParamNames;\n  vector<string>  ParamValues;\n\n};\n\nconst inline AnyParams& getEmptyParams() {\n  static AnyParams empty;\n  return empty;\n}\n\nclass AnyParamManager {\npublic:\n  AnyParamManager(const AnyParams& params) : params(params), seen() {\n    if (params.ParamNames.size() != params.ParamValues.size()) {\n      string err = \"Bug: different # of parameters and values\";\n      LOG(LIB_ERROR) << err;\n      throw runtime_error(err);\n    }\n  }\n\n  template <typename ParamType>\n  void GetParamRequired(const string&  Name, ParamType& Value) {\n    GetParam<ParamType>(Name, Value, true);\n  }\n\n  template <typename ParamType, typename DefaultType>\n  void GetParamOptional(const string&  Name, ParamType& Value, const DefaultType& DefaultValue) {\n    Value=DefaultValue;\n    GetParam<ParamType>(Name, Value, false);\n  }\n\n  /*\n   * Takes a list of exceptions and extracts all parameter values, \n   * except parameters from the exceptions' list. The extracted parameters\n   * are added to the list of parameters already seen.\n   */\n  AnyParams ExtractParametersExcept(const vector<string>& ExceptList) {\n    set<string> except(ExceptList.begin(), ExceptList.end());\n\n    vector<string> names, values;\n\n    for (size_t i = 0; i < params.ParamNames.size(); ++i) {\n      const string& name = params.ParamNames[i];\n      if (except.count(name) == 0) { // Not on the exception list\n        names.push_back(name);\n        values.push_back(params.ParamValues[i]);\n        seen.insert(name);\n      }\n    }\n\n    return AnyParams(names, values);\n  }\n\n  /*\n   * Extract all parameter values, whose values are on the list.\n   * The extracted parameters are added to the list of parameters already seen.\n   */\n  AnyParams ExtractParameters(const vector<string>& CheckList) {\n    set<string> except(CheckList.begin(), CheckList.end());\n\n    vector<string> names, values;\n\n    for (size_t i = 0; i < params.ParamNames.size(); ++i) {\n      const string& name = params.ParamNames[i];\n      if (except.count(name)) { // On the list\n        names.push_back(name);\n        values.push_back(params.ParamValues[i]);\n        seen.insert(name);\n      }\n    }\n\n    return AnyParams(names, values);\n  }\n\n  bool hasParam(const string& name) {\n    for (const string& s: params.ParamNames)\n    if (s == name) return true;\n    return false;\n  };\n\n  void CheckUnused() {\n    bool bFail = false;\n    for (size_t i = 0; i < params.ParamNames.size(); ++i) {\n      const string& name = params.ParamNames[i];\n      if (seen.count(name) == 0) {\n        bFail = true;\n        LOG(LIB_ERROR) << \"Unknown parameter: '\" << name << \"'\";\n      }\n    }\n    if (bFail) throw runtime_error(\"Unknown parameters found!\"); \n  }\n\n  const AnyParams& GetAllParams() const { return params; }\n\n  void copySeen(AnyParamManager& other) {\n    for (const string s: seen) other.seen.insert(s);\n  }\n\nprivate:\n  const AnyParams&  params;\n  set<string>       seen;\n\n  template <typename ParamType>\n  void GetParam(const string&  Name, ParamType& Value, bool bRequired) {\n    bool bFound = false;\n    /* \n     * This loop is reasonably efficient, unless\n     * we have thousands of parameters (which realistically won't happen)\n     */\n    for (size_t i =0; i < params.ParamNames.size(); ++i) \n    if (Name == params.ParamNames[i]) {\n      bFound = true; \n      ConvertStrToValue<ParamType>(params.ParamValues[i], Value);\n    }\n\n    if (bFound) {\n      seen.insert(Name);\n    }\n\n    if (!bFound) {\n      if (bRequired) {\n        stringstream err;\n        err <<  \"Mandatory parameter: '\" << Name << \"' is missing!\";\n        LOG(LIB_ERROR) << err.str();\n        throw runtime_error(err.str());\n      }\n    } \n  }\n\n  template <typename ParamType>\n  void ConvertStrToValue(const string& s, ParamType& Value);\n};\n\n\ntemplate <typename ParamType>\ninline void AnyParamManager::ConvertStrToValue(const string& s, ParamType& Value) {\n  stringstream str(s);\n\n  if (!(str>>Value) || !str.eof()) {\n    stringstream err;\n    err << \"Failed to convert value '\" << s << \"' from type: \" << typeid(Value).name();\n    LOG(LIB_ERROR) << err.str();\n    throw runtime_error(err.str());\n  }\n}\n\ntemplate <>\ninline void AnyParamManager::ConvertStrToValue<string>(const string& str, string& Value) {\n  Value = str;\n}\n\n// Parse space name/parameters\nvoid ParseSpaceArg(const string& str, string& SpaceType, vector<string>& SpaceDesc);\n// Take a comma-separated list of parameters and split them.\nvoid ParseArg(const string& str, vector<string>& vDesc);\n\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/params_cmdline.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef PARAMS_CMDLINE_H\n#define PARAMS_CMDLINE_H\n\n#include <string>\n#include <vector>\n#include <limits>\n#include <map>\n#include <set>\n#include <memory>\n#include <sstream>\n#include <algorithm>\n#include <stdexcept>\n\n#include \"logging.h\"\n#include \"utils.h\"\n#include \"params.h\"\n\nnamespace similarity {\n\nvoid ParseCommandLine(int argc, char *argv[], bool& bPrintProgress,\n                      string&                         LogFile,\n                      string&                         LoadIndexLoc,\n                      string&                         SaveIndexLoc,\n                      string&                         DistType,\n                      string&                         SpaceType,\n                      shared_ptr<AnyParams>&          SpaceParams,\n                      unsigned&                       ThreadTestQty,\n                      bool&                           AppendToResFile, \n                      string&                         ResFilePrefix,\n                      unsigned&                       TestSetQty,\n                      string&                         DataFile,\n                      string&                         QueryFile,\n                      string&                         CacheGSFilePrefix,\n                      float&                          MaxCacheGSQty,\n                      unsigned&                       MaxNumData,\n                      unsigned&                       MaxNumQuery,\n                      vector<unsigned>&               knn,\n                      float&                          eps,\n                      string&                         RangeArg,\n                      string&                         MethodName,\n                      shared_ptr<AnyParams>&          IndexTimeParams,\n                      vector<shared_ptr<AnyParams>>&  QueryTimeParams);\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/params_def.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef PARAMS_DEF_H\n#define PARAMS_DEF_H\n\n// Definition of most command-line parameters\n#define HELP_PARAM_OPT  \"help,h\"\n#define HELP_PARAM_MSG \"produce help message\"\n\n#define SPACE_TYPE_PARAM_OPT    \"spaceType,s\"\n#define SPACE_TYPE_PARAM_MSG    \"space type, e.g., l1, l2, lp\"\n\n#define DIST_TYPE_PARAM_OPT     \"distType\"\n#define DIST_TYPE_PARAM_MSG     \"distance value type: int, float, double\"\n\n#define DATA_FILE_PARAM_OPT     \"dataFile,i\"\n#define DATA_FILE_PARAM_MSG     \"input data file\"\n\n#define MAX_NUM_DATA_PARAM_OPT  \"maxNumData,D\"\n#define MAX_NUM_DATA_PARAM_MSG  \"if non-zero, only the first maxNumData elements are used\"\n#define MAX_NUM_DATA_PARAM_DEFAULT 0\n\n#define QUERY_FILE_PARAM_OPT    \"queryFile,q\"\n#define QUERY_FILE_PARAM_MSG    \"query file\"\n#define QUERY_FILE_PARAM_DEFAULT \"\"\n\n#define LOAD_INDEX_PARAM_OPT    \"loadIndex,L\"\n#define LOAD_INDEX_PARAM_MSG    \"a location to load the index from \"\n#define LOAD_INDEX_PARAM_DEFAULT \"\"\n\n#define SAVE_INDEX_PARAM_OPT    \"saveIndex,S\"\n#define SAVE_INDEX_PARAM_MSG    \"a location to save the index to \"\n#define SAVE_INDEX_PARAM_DEFAULT \"\"\n\n#define CACHE_PREFIX_GS_PARAM_OPT     \"cachePrefixGS,g\"\n#define CACHE_PREFIX_GS_PARAM_MSG     \"a prefix of gold standard cache files\"\n#define CACHE_PREFIX_GS_PARAM_DEFAULT \"\"\n\n#define MAX_CACHE_GS_QTY_PARAM_OPT \"maxCacheGSRelativeQty\"\n#define MAX_CACHE_GS_QTY_PARAM_MSG \"a maximum number of gold standard entries to compute/cache, note that it is relative to the number of result entries.\"\n#define MAX_CACHE_GS_QTY_PARAM_DEFAULT     10.0\n\n#define LOG_FILE_PARAM_OPT       \"logFile,l\"\n#define LOG_FILE_PARAM_MSG       \"log file\"\n#define LOG_FILE_PARAM_DEFAULT   \"\"\n\n#define MAX_NUM_QUERY_PARAM_OPT   \"maxNumQuery,Q\"\n#define MAX_NUM_QUERY_PARAM_MSG   \"if non-zero, use maxNumQuery query elements (required in the case of bootstrapping)\"\n#define MAX_NUM_QUERY_PARAM_DEFAULT 0\n\n#define TEST_SET_QTY_PARAM_OPT   \"testSetQty,b\"\n#define TEST_SET_QTY_PARAM_MSG   \"# of test sets obtained by bootstrapping; ignored if queryFile is specified\"\n#define TEST_SET_QTY_PARAM_DEFAULT 0\n\n#define KNN_PARAM_OPT            \"knn,k\"\n#define KNN_PARAM_MSG            \"comma-separated values of K for the k-NN search\"\n\n#define RANGE_PARAM_OPT          \"range,r\"\n#define RANGE_PARAM_MSG          \"comma-separated radii for the range searches\"\n\n#define EPS_PARAM_OPT            \"eps\"\n#define EPS_PARAM_MSG            \"the parameter for the eps-approximate k-NN search.\"\n#define EPS_PARAM_DEFAULT        0.0\n\n#define QUERY_TIME_PARAMS_PARAM_OPT \"queryTimeParams,t\"\n#define QUERY_TIME_PARAMS_PARAM_MSG \"query-time method(s) parameters in the format:\\nparam1=value1,param2=value2,...,paramK=valueK\"\n\n#define INDEX_TIME_PARAMS_PARAM_OPT \"createIndex,c\"\n#define INDEX_TIME_PARAMS_PARAM_MSG \"index-time method(s) parameters in the format:\\nparam1=value1,param2=value2,...,paramK=valueK\"\n\n#define METHOD_PARAM_OPT         \"method,m\"\n#define METHOD_PARAM_MSG         \"method/index name\"\n#define METHOD_PARAM_DEFAULT     \"\"\n\n#define THREAD_TEST_QTY_PARAM_OPT         \"threadTestQty\"\n#define THREAD_TEST_QTY_PARAM_MSG         \"# of threads during querying\"\n#define THREAD_TEST_QTY_PARAM_DEFAULT     1\n\n#define OUT_FILE_PREFIX_PARAM_OPT      \"outFilePrefix,o\"\n#define OUT_FILE_PREFIX_PARAM_MSG      \"output file prefix\"\n#define OUT_FILE_PREFIX_PARAM_DEFAULT  \"\"\n\n#define APPEND_TO_RES_FILE_PARAM_OPT      \"appendToResFile,a\"\n#define APPEND_TO_RES_FILE_PARAM_MSG      \"do not override information in results files, append new data\"\n\n#define NO_PROGRESS_PARAM_OPT     \"noProgressBar\"\n#define NO_PROGRESS_PARAM_MSG     \"suppress displaying (mostly indexing) progress bars (for some methods)\"\n\n// Server/client parameters    \n\n#define DEBUG_PARAM_OPT \"debug,D\"\n#define DEBUG_PARAM_MSG \"Print debug messages?\"\n\n#define PORT_PARAM_OPT  \"port,p\"\n#define PORT_PARAM_MSG  \"TCP/IP port number\"\n\n#define ADDR_PARAM_OPT  \"addr,a\"\n#define ADDR_PARAM_MSG  \"TCP/IP server address\"\n\n#define THREAD_PARAM_OPT \"threadQty\"\n#define THREAD_PARAM_MSG \"A number of server threads\"\n\n#define RET_EXT_ID_PARAM_OPT \"retExternId,e\"\n#define RET_EXT_ID_PARAM_MSG \"Return external IDs?\"\n\n#define RET_OBJ_PARAM_OPT    \"retObj,o\"\n#define RET_OBJ_PARAM_MSG    \"Return string representation of found objects?\"\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/permutation_type.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERM_TYPE_H\n#define _PERM_TYPE_H\n\n#include <vector>\n#include <cstdint>\n\nnamespace similarity {\n\n\n/* \n * Should be a (signed) int32_t type!!!\n * We don't use integer of a smaller range, due to possible overflow.\n *\n * Don't change it, or the code will be broken.\n * In particular, SIMD-based correlation functions won't work\n */\ntypedef int32_t PivotIdType;\n\ntypedef std::vector<PivotIdType> Permutation;\n\n\n}\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/permutation_utils.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PERMUTATION_UTILS_H_\n#define _PERMUTATION_UTILS_H_\n\n#include <algorithm>\n#include <iostream>\n#include <unordered_set>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"permutation_type.h\"\n#include \"distcomp.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing std::max;\n\ntemplate <typename dist_t>\nusing DistInt = std::pair<dist_t, PivotIdType>;     // <dist,      pivot_id>\n\ntypedef std::pair<PivotIdType, size_t> IntInt;      // <perm-dist, object_id>\n\ntemplate <typename dist_t>\nvoid GetPermutationPivot(const ObjectVector& data,\n                         const Space<dist_t>& space,\n                         const size_t num_pivot,\n                         ObjectVector* pivot,\n                         std::vector<IdType>* pivot_pos = NULL) {\n  if (num_pivot >= data.size()) {\n    throw runtime_error(\"The data set in the space \" + space.StrDesc() +\n                        \"is to small to select enough pivots\");\n  }\n  std::unordered_set<int> pivot_idx;\n  for (size_t i = 0; i < num_pivot; ++i) {\n    int p = RandomInt() % data.size();\n    for (size_t rep = 0; pivot_idx.count(p) != 0; ++rep) {\n      if (rep > MAX_RAND_ITER_BEFORE_GIVE_UP) {\n        throw runtime_error(\"Cannot find a unique pivot, perhaps, the data set is too small.\");\n      }\n      p = RandomInt() % data.size();\n    }\n    pivot_idx.insert(p);\n    if (pivot_pos != NULL) pivot_pos->push_back(p);\n    pivot->push_back(data[p]);\n  }\n}\n\ntemplate <typename dist_t>\nvoid GetPermutation(const ObjectVector& pivot, const Space<dist_t>& space,\n                    const Object* object, Permutation* p) {\n  // get pivot id\n  std::vector<DistInt<dist_t>> dists;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    dists.push_back(std::make_pair(space.IndexTimeDistance(pivot[i], object), static_cast<PivotIdType>(i)));\n  }\n  std::sort(dists.begin(), dists.end());\n  // dists.second = pivot id    i.e.  \\Pi_o(i)\n\n  // get pivot id's pos         i.e. position in \\Pi_o(i) = \\Pi^{-1}(i)\n  std::vector<IntInt> pivot_idx;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    pivot_idx.push_back(std::make_pair(dists[i].second, static_cast<PivotIdType>(i)));\n  }\n  std::sort(pivot_idx.begin(), pivot_idx.end());\n  // pivot_idx.second = pos of pivot  (which is needed for computing the Rho func)\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    p->push_back(static_cast<PivotIdType>(pivot_idx[i].second));\n  }\n}\n\ntemplate <typename dist_t>\nvoid GetPermutation(const ObjectVector& pivot,\n                    const Query<dist_t>* query,\n                    Permutation* p) {\n  std::vector<DistInt<dist_t>> dists;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    /* Distance can be asymmetric, pivot should be always on the left side */\n    dists.push_back(std::make_pair(query->DistanceObjLeft(pivot[i]),\n                                   static_cast<PivotIdType>(i)));\n  }\n  std::sort(dists.begin(), dists.end());\n  std::vector<IntInt> pivot_idx;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    pivot_idx.push_back(std::make_pair(dists[i].second,\n                                       static_cast<PivotIdType>(i)));\n  }\n  std::sort(pivot_idx.begin(), pivot_idx.end());\n  for (size_t i = 0; i < pivot.size(); ++i) {\n\t  p->push_back(static_cast<PivotIdType>(pivot_idx[i].second));\n  }\n}\n\n\n\n\n// Permutation Prefix Index\n\ntemplate <typename dist_t>\nvoid GetPermutationPPIndex(const ObjectVector& pivot,\n                           const Space<dist_t>& space,\n                           const Object* object,\n                           Permutation* p) {\n  // get pivot id\n  std::vector<DistInt<dist_t>> dists;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    dists.push_back(std::make_pair(space.IndexTimeDistance(pivot[i], object),\n                                   static_cast<PivotIdType>(i)));\n  }\n  std::sort(dists.begin(), dists.end());\n  // dists.second = pivot id    i.e.  \\Pi_o(i)\n\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    p->push_back(dists[i].second);\n  }\n}\n\ntemplate <template<typename> class QueryType, typename dist_t>\nvoid GetPermutationPPIndex(const ObjectVector& pivot,\n                           QueryType<dist_t>* query,\n                           Permutation* p) {\n  std::vector<DistInt<dist_t>> dists;\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    /* Distance can be asymmetric, pivot should be always on the left side */\n    dists.push_back(std::make_pair(query->DistanceObjLeft(pivot[i]),\n                                   static_cast<PivotIdType>(i)));\n  }\n  std::sort(dists.begin(), dists.end());\n  for (size_t i = 0; i < pivot.size(); ++i) {\n    p->push_back(dists[i].second);\n  }\n}\n\n/*\n * Create a binary version of the permutation.\n */\ninline void Binarize(const vector<PivotIdType> &perm, const PivotIdType thresh, vector<uint32_t>&bin_perm) {\n  size_t bin_perm_word_qty = (perm.size() + 31)/32;\n\n  bin_perm.resize(bin_perm_word_qty);\n  fill(bin_perm.begin(), bin_perm.end(), 0);\n\n  for (size_t i = 0; i < perm.size(); ++i) {\n    bool b =perm[i] >= thresh;\n\n    if (b) {\n      bin_perm[i/32] |= (1<<(i%32)) ;\n    }\n  }\n}\n\n}  // namespace similarity\n\n#endif     // _PERMUTATION_UTILS_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/ported_boost_progress.h",
    "content": "//  boost progress.hpp header file  ------------------------------------------//\n\n//  Copyright Beman Dawes 1994-99.  Distributed under the Boost\n//  Software License, Version 1.0. (See accompanying file\n//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n\n//  See http://www.boost.org/libs/timer for documentation.\n\n//  Revision History\n//  18 Feb 15  @Leo removed extra functionality and added this thing\n//             as one of our headers. One Windows, the core should build\n//             without Boost!\n//   1 Dec 01  Add leading progress display strings (suggested by Toon Knapen)\n//  20 May 01  Introduce several static_casts<> to eliminate warning messages\n//             (Fixed by Beman, reported by Herve Bronnimann)\n//  12 Jan 01  Change to inline implementation to allow use without library\n//             builds. See docs for more rationale. (Beman Dawes) \n//  22 Jul 99  Name changed to .hpp\n//  16 Jul 99  Second beta\n//   6 Jul 99  Initial boost version\n\n#ifndef PORTED_BOOST_PROGRESS_HPP\n#define PORTED_BOOST_PROGRESS_HPP\n\n#include <iostream>           // for ostream, cout, etc\n#include <string>             // for string\n\nnamespace similarity {\n\n//  progress_display  --------------------------------------------------------//\n\n//  progress_display displays an appropriate indication of \n//  progress at an appropriate place in an appropriate form.\n\n// NOTE: (Jan 12, 2001) Tried to change unsigned long to boost::uintmax_t, but\n// found some compilers couldn't handle the required conversion to double.\n// Reverted to unsigned long until the compilers catch up. \n\nclass ProgressDisplay {\n public:\n  explicit ProgressDisplay( unsigned long expected_count,\n                             std::ostream & os = std::cout,\n                             const std::string & s1 = \"\\n\", //leading strings\n                             const std::string & s2 = \"\",\n                             const std::string & s3 = \"\" )\n   // os is hint; implementation may ignore, particularly in embedded systems\n   : m_os(os), m_s1(s1), m_s2(s2), m_s3(s3) { restart(expected_count); }\n\n  void           restart( unsigned long expected_count )\n  //  Effects: display appropriate scale\n  //  Postconditions: count()==0, expected_count()==expected_count\n  {\n    _count = _next_tic_count = _tic = 0;\n    _expected_count = expected_count;\n\n    m_os << m_s1 << \"0%   10   20   30   40   50   60   70   80   90   100%\\n\"\n         << m_s2 << \"|----|----|----|----|----|----|----|----|----|----|\"\n         << std::endl  // endl implies flush, which ensures display\n         << m_s3;\n    if ( !_expected_count ) _expected_count = 1;  // prevent divide by zero\n  } // restart\n\n  unsigned long  operator+=( unsigned long increment )\n  //  Effects: Display appropriate progress tic if needed.\n  //  Postconditions: count()== original count() + increment\n  //  Returns: count().\n  {\n    if ( (_count += increment) >= _next_tic_count ) { display_tic(); }\n    return _count;\n  }\n\n  unsigned long  operator++()           { return operator+=( 1 ); }\n  unsigned long  count() const          { return _count; }\n  unsigned long  expected_count() const { return _expected_count; }\n\n  private:\n  std::ostream &     m_os;  // may not be present in all imps\n  const std::string  m_s1;  // string is more general, safer than \n  const std::string  m_s2;  //  const char *, and efficiency or size are\n  const std::string  m_s3;  //  not issues\n\n  unsigned long _count, _expected_count, _next_tic_count;\n  unsigned int  _tic;\n  void display_tic()\n  {\n    // use of floating point ensures that both large and small counts\n    // work correctly.  static_cast<>() is also used several places\n    // to suppress spurious compiler warnings. \n    unsigned int tics_needed =\n      static_cast<unsigned int>(\n        (static_cast<double>(_count)/_expected_count)*50.0 );\n    do { m_os << '*' << std::flush; } while ( ++_tic < tics_needed );\n    _next_tic_count = \n      static_cast<unsigned long>((_tic/50.0)*_expected_count);\n    if ( _count == _expected_count ) {\n      if ( _tic < 51 ) m_os << '*';\n      m_os << std::endl;\n      }\n  } // display_tic\n};\n\n}\n\n#endif  \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/pow.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef POW_HPP\n#define POW_HPP\n\n/*\n * An efficient computation of exponentiation to an INTEGER power.\n * See, Leonid's blog entry for details:\n *\n * http://searchivarius.org/blog/how-fast-are-our-math-libraries \n *\n */\n\n#include <cmath>\n\nnamespace similarity {\n\ntemplate <class T>\ninline T EfficientPow(T Base, unsigned Exp) {\n    if (Exp == 0) return 1;\n    if (Exp == 1) return Base; \n    if (Exp == 2) return Base * Base; \n    if (Exp == 3) return Base * Base * Base; \n    if (Exp == 4) {\n        Base *= Base;\n        return Base * Base;\n    }\n\n    T res = Base;\n\n    if (Exp == 5) {\n        Base *= Base;\n        return res * Base * Base;\n    }\n\n    if (Exp == 6) {\n        Base *= Base;\n        res = Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 7) {\n        Base *= Base;\n        res *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 8) {\n        Base *= Base;\n        Base *= Base;\n        Base *= Base;\n        return Base;\n    }\n\n    if (Exp == 9) {\n        Base *= Base;\n        Base *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 10) {\n        Base *= Base;\n        res = Base;\n        Base *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 11) {\n        Base *= Base;\n        res  *= Base;\n        Base *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 12) {\n        Base *= Base;\n        Base *= Base;\n        res = Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 13) {\n        Base *= Base;\n        Base *= Base;\n        res *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 14) {\n        Base *= Base;\n        res = Base;\n        Base *= Base;\n        res *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    if (Exp == 15) {\n        Base *= Base;\n        res *= Base;\n        Base *= Base;\n        res *= Base;\n        Base *= Base;\n        return res * Base;\n    }\n\n    res *= res;\n    res *= res;\n    res *= res;\n    res *= res;\n\n    if (Exp == 16) {\n        return res;\n    }\n\n    Exp -= 16;\n\n    while (true) {\n        if (Exp & 1) res *= Base;\n        Exp >>= 1;\n        if (Exp) {\n            Base *= Base;\n        } else {\n            return res;\n        }\n    }\n\n    return res;\n}\n\n\n\n}\n\ntemplate <class T>\ninline T EfficientFractPowUtil(T Base, uint64_t Exp, uint64_t MaxK) {\n    if (Exp == 0)    return 1;     // pow == 0 \n    if (Exp == MaxK) return Base;  // pow == 1\n\n    uint64_t Mask1 = MaxK - 1;\n    uint64_t Mask2 = MaxK >>= 1;\n\n    T res = 1.0;\n\n    while (true) {\n        Base = sqrt(Base);\n\n        if (Exp & Mask2) res *= Base;\n\n        Exp = (Exp << 1) & Mask1;\n\n        if (!Exp) return res;\n    }\n\n    return res;\n}\n\ntemplate <class T>\ninline T EfficientFractPow(T Base, T FractExp, unsigned NumDig) {\n    CHECK(FractExp <= 1 && NumDig);\n    uint64_t MaxK = uint64_t(1) << NumDig;\n    uint64_t Exp = static_cast<unsigned>(std::ceil(FractExp * MaxK));\n\n    return EfficientFractPowUtil(Base, Exp, MaxK);\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/projection.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _PROJECTION_H_\n#define _PROJECTION_H_\n\n#include \"distcomp.h\"\n#include \"space.h\"\n#include \"object.h\"\n\n#include <string>\n#include <cstddef>\n\n// Classic random projections using random orthonormal vectors\n#define PROJ_TYPE_RAND            \"rand\"          \n// Distance to random reference points\n#define PROJ_TYPE_RAND_REF_POINT  \"randrefpt\"     \n// FastMap (project on lines defined by two randomly selected points)\n#define PROJ_TYPE_FAST_MAP        \"fastmap\"       \n// Integer value permutations\n#define PROJ_TYPE_PERM            \"perm\"\n// Integer value truncted permutations\n#define PROJ_TYPE_PERM_TRUNC      \"permtrunc\"\n// Binarized permutations: note that the result is nevertheless saved as floating-point vector\n#define PROJ_TYPE_PERM_BIN        \"permbin\"\n// Dense vectors remain unchanged, sparsed vectors are \"hashed\" into dense ones\n#define PROJ_TYPE_VECTOR_DENSE    \"densevect\"\n// Trivial projection\n#define PROJ_TYPE_NONE            \"none\"\n\nnamespace similarity {\n\ntemplate <class dist_t>\nclass Projection {\npublic:\n  /*\n   * Create a projection helper class that inherits from the current one.\n   */\n  static Projection* createProjection(const Space<dist_t>& space,\n                        const ObjectVector& data,\n                        std::string projType,\n                        size_t nProjDim,\n                          /*\n                             For sparse vector spaces and random projections\n                             is used to create an intermediate dense vector representations.\n                             It can be set to zero (or otherwise) if\n                              1) The source space is a dense vector space\n                              2) A projection is of the following type:\n                                i)   FastMap;\n                                ii)  Random reference points;\n                                iii) Permutations.\n                        */\n                        size_t nDstDim,\n                        unsigned binThreshold);\n  /*\n   * A function to create a projection. It should be implemented in child classes.\n   * Note that the following:\n   *\n   * 1) we only support projection to single-precision floating point vectors.\n   * 2) Space objects can be used to compute distances only during indexing time.\n   *    At search time, all distance computations are proxied through a query object.\n   *    During the indexing time, the query parameter can be NULL, but during\n   *    search time, one needs to supply the actual query.\n   *\n   * TODO: @leo This is actually not such a good approach, we need a separate\n   *       object to proxy distance computations. It should not be the query!\n   *       Then, functions like compProj will not need to use both the pObj (at\n   *       index time) and the pQuery (at search time).\n   *\n   */\n  virtual void  compProj(const Query<dist_t>* pQuery,\n                         const Object* pObj,\n                         float* pDstVect) const = 0;\n\nprotected:\n  static dist_t DistanceObjLeft(const Space<dist_t>& space,\n                                const Query<dist_t>* pQuery,\n                                const Object* pRefObj, // reference object\n                                const Object* pObj // the object to project\n                                ) {\n    /*\n     * Object (in this case pivot) is the left argument.\n     * At search time, the right argument of the distance will be the query point\n     * and pivot again is the left argument.\n     */\n    return NULL == pQuery ?\n        space.IndexTimeDistance(pRefObj, pObj)\n        :\n        pQuery->DistanceObjLeft(pRefObj);\n  }\n  static void fillIntermBuffer(const  Space<dist_t>& space,\n                               const  Object* pObj,\n                               size_t nIntermDim,\n                               vector<dist_t>& intermBuffer) {\n\n    /*\n     *  For dense vector spaces CreateDenseVectFromObj does nothing useful\n     *  (and intermDim_ == srcDim_),\n     *  however, we introduced this function to have the\n     *  uniform interface for sparse and dense vector spaces.\n     */\n    space.CreateDenseVectFromObj(pObj, &intermBuffer[0], nIntermDim);\n  }\n};\n\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/query.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _QUERY_H_\n#define _QUERY_H_\n\n#include \"object.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass Space;\n\ntemplate <typename dist_t>\nclass Query {\n public:\n  Query(const Space<dist_t>& space, const Object* query_object);\n  virtual ~Query();\n\n  const Object* QueryObject() const;\n  uint64_t DistanceComputations() const;\n  void AddDistanceComputations(uint64_t DistComp) { distance_computations_ += DistComp; }\n\n  void ResetStats();\n  virtual dist_t Distance(const Object* object1, const Object* object2) const;\n  // Distance can be asymmetric!\n  virtual dist_t DistanceObjLeft(const Object* object) const;\n  virtual dist_t DistanceObjRight(const Object* object) const;\n\n  virtual void Reset() = 0;\n  virtual dist_t Radius() const = 0;\n  virtual unsigned ResultSize() const = 0;\n  virtual bool CheckAndAddToResult(const dist_t distance, const Object* object) = 0;\n  virtual void Print() const = 0;\n\n protected:\n  const Space<dist_t>& space_;\n  const Object* query_object_;\n  mutable uint64_t distance_computations_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(Query);\n};\n\n}     // namespace similarity\n\n#endif   // _QUERY_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/query_creator.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _QUERY_CREATOR_H_\n#define _QUERY_CREATOR_H_\n\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass RangeCreator {\npublic:\n  RangeCreator(dist_t radius) : radius_(radius){}\n  RangeQuery<dist_t>* operator()(const Space<dist_t>& space,\n                                 const Object* query_object) const {\n    return new RangeQuery<dist_t>(space, query_object, radius_);\n  }\n  std::string ParamsForPrint() const {\n    std::stringstream str;\n    str << \"Radius = \" << radius_;\n    return str.str();\n  }\n  dist_t radius_;\n};\n\ntemplate <typename dist_t>\nclass KNNCreator {\npublic:\n  KNNCreator(size_t K, float eps) : K_(K), eps_(eps) {}\n  KNNQuery<dist_t>* operator()(const Space<dist_t>& space,\n                               const Object* query_object) const {\n    return new KNNQuery<dist_t>(space, query_object, K_, eps_);\n  }\n\n  std::string ParamsForPrint() const {\n    std::stringstream str;\n    str << \"K = \" << K_ << \" Epsilon = \" << eps_;\n    return str.str();\n  }\n  dist_t K_;\n  float  eps_;\n};\n\n}     // namespace similarity\n\n#endif   // _QUERY_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/randproj_util.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _RANDPROJ_UTILS_H_\n#define _RANDPROJ_UTILS_H_\n\n#include <vector>\n\n#include \"distcomp.h\"\n\nnamespace similarity {\n\nusing std::vector;\n\n/*\n * These are the classic random projections that rely on random normal numbers.\n * Vectors are subsequently normalized using the Gram-Schmidt algorithm (therefore,\n * nDstDim should be <= nSrcDim). \n * For a more detailed discussion see, e.g.:\n *\n * Dasgupta, Sanjoy. \"Experiments with random projection.\" \n * Proceedings of the Sixteenth conference on Uncertainty in artificial intelligence. 2000.\n *\n */ \n\ntemplate <class dist_t> void initRandProj(size_t nSrcDim, size_t nDstDim,\n                                          bool bDoOrth, vector<vector<dist_t>>& projMatr);\ntemplate <class dist_t> void compRandProj(const vector<vector<dist_t>>& projMatr,\n                                      const dist_t* pSrcVect, size_t nSrcDim,\n                                      dist_t* pDstVect, size_t nDstDim);\n\n\n}\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/rangequery.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _RANGEQUERY_H_\n#define _RANGEQUERY_H_\n\n#include <set>\n#include \"object.h\"\n#include \"query.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass RangeQuery : public Query<dist_t> {\n public:\n  RangeQuery(const Space<dist_t>& space, const Object* query_object, const dist_t radius);\n\n  const ObjectVector* Result() const;\n  const std::vector<dist_t>* ResultDists() const { return &resultDists_; }\n  std::set<const Object*> ResultSet() const ;\n  dist_t Radius() const;\n  unsigned ResultSize() const;\n\n  void Reset();\n  bool CheckAndAddToResult(const dist_t distance, const Object* object);\n  bool CheckAndAddToResult(const Object* object);\n  size_t CheckAndAddToResult(const ObjectVector& bucket);\n  bool Equals(const RangeQuery<dist_t>* query) const;\n  void Print() const;\n  static std::string Type() { return \"RANGE\"; }\n\n private:\n  dist_t               radius_;\n  ObjectVector         result_;\n  std::vector<dist_t>  resultDists_;\n\n  // disable copy and assign\n  DISABLE_COPY_AND_ASSIGN(RangeQuery);\n};\n\n}     // namespace similarity\n\n#endif   // _RANGEQUERY_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/report.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef REPORT_H\n#define REPORT_H\n\n#include <sstream>\n#include <string>\n\n#include \"meta_analysis.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n\nnamespace similarity {\n  using std::string;\n  using std::endl;\n  using std::stringstream;\n\n  template <class dist_t>\n  inline string produceHumanReadableReport(\n                    const ExperimentConfig<dist_t>& config,\n                    MetaAnalysis& ExpRes,\n                    const string& MethDescStr,\n                    const string& IndexParamStr,\n                    const string& QueryTimeParamStr) {\n    stringstream  Print;\n/*\n    Print << std::endl << \n            \"===================================\" << std::endl;\n    Print << MethDescStr << std::endl;\n    Print << \"Index parameters:      \" << IndexParamStr     << std::endl;\n    Print << \"Query-time parameters: \" << QueryTimeParamStr << std::endl;\n    Print << \"===================================\" << std::endl;\n    Print << \"# of points: \" << config.GetDataObjects().size() << std::endl;\n    Print << \"# of queries: \" << config.GetQueryToRunQty() << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"Recall:            \" << round3(ExpRes.GetRecallAvg())  << \" -> \" << \"[\" << round3(ExpRes.GetRecallConfMin()) << \" \" << round3(ExpRes.GetRecallConfMax()) << \"]\" << std::endl;\n    Print << \"Recall@1:          \" << round3(ExpRes.GetRecallAt1Avg())  << \" -> \" << \"[\" << round3(ExpRes.GetRecallAt1ConfMin()) << \" \" << round3(ExpRes.GetRecallAt1ConfMax()) << \"]\" << std::endl;\n    Print << \"PrecisionOfApprox: \" << round3(ExpRes.GetPrecisionOfApproxAvg())                << \" -> \" << \"[\" << round3(ExpRes.GetPrecisionOfApproxConfMin()) << \" \" << round3(ExpRes.GetPrecisionOfApproxConfMax()) << \"]\" << std::endl;\n    Print << \"ClassAccuracy:     \" << ExpRes.GetClassAccuracyAvg() << \" -> \" << \"[\" << ExpRes.GetClassAccuracyConfMin() << \" \" << ExpRes.GetClassAccuracyConfMax() << \"]\" << std::endl;\n    Print << \"RelPosError:       \" << round2(ExpRes.GetRelPosErrorAvg())  << \" -> \" << \"[\" << round2(ExpRes.GetRelPosErrorConfMin()) << \" \\t\" << round2(ExpRes.GetRelPosErrorConfMax()) << \"]\" << std::endl;\n    Print << \"NumCloser:         \" << round2(ExpRes.GetNumCloserAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetNumCloserConfMin()) << \" \\t\" << round2(ExpRes.GetNumCloserConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"QueryTime:         \" << round2(ExpRes.GetQueryTimeAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetQueryTimeConfMin()) << \" \\t\" << round2(ExpRes.GetQueryTimeConfMax()) << \"]\" << std::endl;\n    Print << \"QueryPerSec:       \" << round2(ExpRes.GetQueryPerSecAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetQueryPerSecConfMin()) << \" \\t\" << round2(ExpRes.GetQueryPerSecConfMax()) << \"]\" << std::endl;\n    Print << \"DistComp:          \" << round2(ExpRes.GetDistCompAvg())     << \" -> \" << \"[\" << round2(ExpRes.GetDistCompConfMin()) << \" \\t\" << round2(ExpRes.GetDistCompConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"ImprEfficiency:    \" << round2(ExpRes.GetImprEfficiencyAvg()) << \" -> \" << \"[\"  <<  round2(ExpRes.GetImprEfficiencyConfMin()) << \" \\t\" << round2(ExpRes.GetImprEfficiencyConfMax()) << \"]\" << std::endl;\n    Print << \"ImprDistComp:      \" << round2(ExpRes.GetImprDistCompAvg()) << \" -> \" << \"[\" << round2(ExpRes.GetImprDistCompAvg()) << \" \\t\"<< round2(ExpRes.GetImprDistCompConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"Memory Usage:      \" << round2(ExpRes.GetMemAvg()) << \" MB\" << std::endl;\n    Print << \"Index Time:        \" << round2(ExpRes.GetIndexTimeAvg()) << \" sec\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    */\n\n\tPrint.setf(ios::fixed);\n\tPrint << round3(ExpRes.GetRecallAvg()) << \" \" << round6(ExpRes.GetQueryTimeAvg()/1000.0) << \" \"<<QueryTimeParamStr <<\" \\n\"; //<<std::endl;\n\n\t//cerr << round3(ExpRes.GetRecallAvg()) << \" \" << round6(ExpRes.GetQueryTimeAvg()/1000.0) << \" \"<<QueryTimeParamStr;\n    return Print.str();\n  }\n\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/report.h~",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef REPORT_H\n#define REPORT_H\n\n#include <sstream>\n#include <string>\n\n#include \"meta_analysis.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n\nnamespace similarity {\n  using std::string;\n  using std::endl;\n  using std::stringstream;\n\n  template <class dist_t>\n  inline string produceHumanReadableReport(\n                    const ExperimentConfig<dist_t>& config,\n                    MetaAnalysis& ExpRes,\n                    const string& MethDescStr,\n                    const string& IndexParamStr,\n                    const string& QueryTimeParamStr) {\n    stringstream  Print;\n/*\n    Print << std::endl << \n            \"===================================\" << std::endl;\n    Print << MethDescStr << std::endl;\n    Print << \"Index parameters:      \" << IndexParamStr     << std::endl;\n    Print << \"Query-time parameters: \" << QueryTimeParamStr << std::endl;\n    Print << \"===================================\" << std::endl;\n    Print << \"# of points: \" << config.GetDataObjects().size() << std::endl;\n    Print << \"# of queries: \" << config.GetQueryToRunQty() << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"Recall:            \" << round3(ExpRes.GetRecallAvg())  << \" -> \" << \"[\" << round3(ExpRes.GetRecallConfMin()) << \" \" << round3(ExpRes.GetRecallConfMax()) << \"]\" << std::endl;\n    Print << \"Recall@1:          \" << round3(ExpRes.GetRecallAt1Avg())  << \" -> \" << \"[\" << round3(ExpRes.GetRecallAt1ConfMin()) << \" \" << round3(ExpRes.GetRecallAt1ConfMax()) << \"]\" << std::endl;\n    Print << \"PrecisionOfApprox: \" << round3(ExpRes.GetPrecisionOfApproxAvg())                << \" -> \" << \"[\" << round3(ExpRes.GetPrecisionOfApproxConfMin()) << \" \" << round3(ExpRes.GetPrecisionOfApproxConfMax()) << \"]\" << std::endl;\n    Print << \"ClassAccuracy:     \" << ExpRes.GetClassAccuracyAvg() << \" -> \" << \"[\" << ExpRes.GetClassAccuracyConfMin() << \" \" << ExpRes.GetClassAccuracyConfMax() << \"]\" << std::endl;\n    Print << \"RelPosError:       \" << round2(ExpRes.GetRelPosErrorAvg())  << \" -> \" << \"[\" << round2(ExpRes.GetRelPosErrorConfMin()) << \" \\t\" << round2(ExpRes.GetRelPosErrorConfMax()) << \"]\" << std::endl;\n    Print << \"NumCloser:         \" << round2(ExpRes.GetNumCloserAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetNumCloserConfMin()) << \" \\t\" << round2(ExpRes.GetNumCloserConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"QueryTime:         \" << round2(ExpRes.GetQueryTimeAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetQueryTimeConfMin()) << \" \\t\" << round2(ExpRes.GetQueryTimeConfMax()) << \"]\" << std::endl;\n    Print << \"QueryPerSec:       \" << round2(ExpRes.GetQueryPerSecAvg())    << \" -> \" << \"[\" << round2(ExpRes.GetQueryPerSecConfMin()) << \" \\t\" << round2(ExpRes.GetQueryPerSecConfMax()) << \"]\" << std::endl;\n    Print << \"DistComp:          \" << round2(ExpRes.GetDistCompAvg())     << \" -> \" << \"[\" << round2(ExpRes.GetDistCompConfMin()) << \" \\t\" << round2(ExpRes.GetDistCompConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"ImprEfficiency:    \" << round2(ExpRes.GetImprEfficiencyAvg()) << \" -> \" << \"[\"  <<  round2(ExpRes.GetImprEfficiencyConfMin()) << \" \\t\" << round2(ExpRes.GetImprEfficiencyConfMax()) << \"]\" << std::endl;\n    Print << \"ImprDistComp:      \" << round2(ExpRes.GetImprDistCompAvg()) << \" -> \" << \"[\" << round2(ExpRes.GetImprDistCompAvg()) << \" \\t\"<< round2(ExpRes.GetImprDistCompConfMax()) << \"]\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    Print << \"Memory Usage:      \" << round2(ExpRes.GetMemAvg()) << \" MB\" << std::endl;\n    Print << \"Index Time:        \" << round2(ExpRes.GetIndexTimeAvg()) << \" sec\" << std::endl;\n    Print << \"------------------------------------\" << std::endl;\n    */\n\n\tPrint.setf(ios::fixed);\n\tPrint << round3(ExpRes.GetRecallAvg()) << \" \" << round6(ExpRes.GetQueryTimeAvg()/1000.0) << \" \"<<QueryTimeParamStr <<\" \\n\"; //<<std::endl;\n\n\t//cerr << round3(ExpRes.GetRecallAvg()) << \" \" << round6(ExpRes.GetQueryTimeAvg()/1000.0) << \" \"<<QueryTimeParamStr;\n    return Print.str();\n  }\n\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/report_intr_dim.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef REPORT_INTR_DIM_H\n#define REPORT_INTR_DIM_H\n\n#include <string>\n#include \"object.h\"\n\nnamespace similarity {\n\n/*\n * This version of intrinsic dimensionality is defined in \n * E. Chavez, G. Navarro, R. Baeza-Yates, and J. L. Marroquin, 2001, Searching in metric spaces.\n *\n * Note that this measure may be irrelevant in non-metric spaces.\n */\ntemplate <typename dist_t>\nvoid ComputeIntrinsicDimensionality(const Space<dist_t>& space, \n                               const ObjectVector& dataset,\n                               double& IntrDim,\n                               double& DistMean,\n                               double& DistSigma,\n                               size_t SampleQty = 1000000) {\n  std::vector<double> dist;\n  DistMean = 0;\n  for (size_t n = 0; n < SampleQty; ++n) {\n    size_t r1 = RandomInt() % dataset.size();\n    size_t r2 = RandomInt() % dataset.size();\n    CHECK(r1 < dataset.size());\n    CHECK(r2 < dataset.size());\n    const Object* obj1 = dataset[r1];\n    const Object* obj2 = dataset[r2];\n    dist_t d = space.IndexTimeDistance(obj1, obj2);\n    dist.push_back(d);\n    if (ISNAN(d)) {\n      /* \n       * TODO: @leo Dump object contents here. To this end,\n       *            we need to subclass objects, so that sparse\n       *            vectors, dense vectors and other objects\n       *            can implement their own dump function.\n       */\n      throw runtime_error(\"!!! Bug: a distance returned NAN!\");\n    }\n    DistMean += d;\n  }\n  DistMean /= double(SampleQty);\n  DistSigma = 0;\n  for (size_t i = 0; i < SampleQty; ++i) {\n    DistSigma += (dist[i] - DistMean) * (dist[i] - DistMean);\n  }\n  DistSigma /= double(SampleQty);\n  IntrDim = DistMean * DistMean / (2 * DistSigma);\n  DistSigma = sqrt(DistSigma);\n}\n\ntemplate <typename dist_t>\nvoid ReportIntrinsicDimensionality(const string& reportName,\n                                   const Space<dist_t>& space, \n                                   const ObjectVector& dataset,\n                                   size_t SampleQty = 1000000) {\n    double DistMean, DistSigma, IntrDim;\n\n    ComputeIntrinsicDimensionality(space, dataset,\n                                  IntrDim,\n                                  DistMean,\n                                  DistSigma,\n                                  SampleQty);\n\n    LOG(LIB_INFO) << \"### \" << reportName;\n    LOG(LIB_INFO) << \"### intrinsic dim: \" << IntrDim;\n    LOG(LIB_INFO) << \"### distance mean: \" << DistMean;\n    LOG(LIB_INFO) << \"### distance sigma: \" << DistSigma;\n}\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/searchoracle.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef SEARCH_ORACLE_HPP\n#define SEARCH_ORACLE_HPP\n\n#include <string>\n#include <cmath>\n#include <vector>\n#include <sstream>\n\n#include \"object.h\"\n#include \"space.h\"\n#include \"pow.h\"\n#include \"params.h\"\n#include \"experimentconf.h\"\n#include \"logging.h\"\n\n#define EXP_LEFT_PARAM              \"expLeft\"\n#define EXP_RIGHT_PARAM             \"expRight\"\n#define ALPHA_LEFT_PARAM            \"alphaLeft\"\n#define ALPHA_RIGHT_PARAM           \"alphaRight\"\n#define MIN_EXP_PARAM               \"minExp\"\n#define MAX_EXP_PARAM               \"maxExp\"\n#define DESIRED_RECALL_PARAM        \"desiredRecall\"\n#define TUNE_K_PARAM                \"tuneK\"\n#define TUNE_R_PARAM                \"tuneR\"\n#define TUNE_QTY_PARAM              \"tuneQty\"\n\n#define MAX_CACHE_GS_QTY_PARAM      \"maxCacheGSQty\"\n#define MAX_ITER_PARAM              \"maxIter\"\n#define MAX_REC_DEPTH_PARAM         \"maxRecDepth\"\n#define STEP_N_PARAM                \"stepN\"\n#define ADD_RESTART_QTY_PARAM       \"addRestartQty\"\n#define FULL_FACTOR_PARAM           \"fullFactor\"\n\nnamespace similarity {\n\nconst size_t MIN_EXP_DEFAULT          =  1;\nconst size_t MAX_EXP_DEFAULT          =  1;\n\nconst size_t MAX_CACHE_GS_QTY_DEFAULT =  1000;\nconst size_t MAX_ITER_DEFAULT         =  10;\nconst size_t MAX_REC_DEPTH_DEFAULT    =  6;\nconst size_t STEP_N_DEFAULT           =  2;\nconst size_t ADD_RESTART_QTY_DEFAULT  =  4;\nconst double FULL_FACTOR_DEFAULT      = 8.0;\n\nusing std::string; \nusing std::vector; \nusing std::stringstream;\n\nenum OptimMetric  {IMPR_DIST_COMP,\n                   IMPR_EFFICIENCY,\n                   IMPR_INVALID};\n\n#define OPTIM_METRIC_PARAMETER  \"metric\"\n\n#define OPTIM_IMPR_DIST_COMP  \"dist\"\n#define OPTIM_IMPR_EFFICIENCY \"time\"\n#define OPTIM_METRIC_DEFAULT   OPTIM_IMPR_DIST_COMP \n\ninline OptimMetric getOptimMetric(const string& s) {\n  string s1 = s;\n  ToLower(s1);\n  if (s1 == OPTIM_IMPR_DIST_COMP) return IMPR_DIST_COMP;\n  if (s1 == OPTIM_IMPR_EFFICIENCY) return IMPR_EFFICIENCY;\n  return IMPR_INVALID;\n}\n\ninline string getOptimMetricName(OptimMetric metr) {\n  if (IMPR_DIST_COMP == metr) return \"improvement in dist. comp\";\n  if (IMPR_EFFICIENCY == metr) return \"improvement in efficiency\";\n  throw runtime_error(\"Bug: Invalid optimization metric name\");\n}\n\n/*\n * Basic pruning oracles are built on the idea that you can relax the pruning criterion\n * in a kd-tree or a vp-tree.\n *\n * First, this idea was proposed by P.N. Yianilos in 1999:\n * Peter N. Yianilos, Locally lifting the curse of dimensionality for nearest neighbor search.\n *\n * It was later generalized to metric spaces. The introduced technique was called\n * \"stretching of the triangle inequality\". Stretching was governed by a single coefficient alpha,\n * so that the classic metric-space VP-tree pruning rule:\n *\n * MaxDist <= | M  - d(q, pivot) |\n *\n * was replaced by:\n *\n * MaxDist <= alpha | M  - d(q, pivot) |\n *\n * Here, M is a median distance from data points to the pivot and MaxDist\n * is the minimum distance from an object to query encountered during the search\n * (prior to encountering the current pivot/node), which plays a role of the \n * query radius.\n *\n * Stretching of the triangle inequality was described in:\n *\n * Probabilistic proximity search: \n * Fighting the curse of dimensionality in metric spaces\n * E Chavez, G Navarro \n *\n * Boytsov and Bilegsaikhan showed that a more generic pruning is needed if we want to\n * search in generic metric spaces, where the distance is not symmetric. This more generic\n * pruning method can also be more efficient in metric spaces than the originally proposed \n * stretching rule.\n *\n * More specifically, two potentially different stretching coefficients alphaLeft and alphaRight\n * are used for the left and the right partition, respectively. \n *\n * The results were published in:\n * Boytsov, Leonid, and Bilegsaikhan Naidan. \n * \"Learning to prune in metric and non-metric spaces.\" Advances in Neural Information Processing Systems. 2013.\n * However, the tunning procedure itself was later slightly improved and, most importantly, modified to\n * to tune to a specific recall using only a sample of the data.\n *\n * Another small extension is to support a polynomial approximation of the pruning rule.\n * This works best for low-dimensional spaces. For high dimensional spaces, the linear rule is not worse.\n * In the left subtree we prune if:\n * MaxDist <= alphaLeft | M  - d(q, pivot) |^expLeft\n * In the right subtree we prune if:\n * MaxDist <= alphaRight | M  - d(q, pivot) |^expRight\n */\n\nenum VPTreeVisitDecision { kVisitLeft = 1, kVisitRight = 2, kVisitBoth = 3 };\n\ntemplate <typename dist_t>\nclass PolynomialPruner {\npublic:\n  static std::string GetName() { return \"polynomial pruner\"; }\n  PolynomialPruner(Space<dist_t>& space, const ObjectVector& data, bool bPrintProgres) : \n      space_(space), data_(data), printProgress_(bPrintProgres), \n       alpha_left_(1), exp_left_(1), alpha_right_(1), exp_right_(1),\n       alpha_left_default_(1), exp_left_default_(1), alpha_right_default_(1), exp_right_default_(1) {}\n  // It's important to pass parameters only by reference here!\n  void SetQueryTimeParams(AnyParamManager& pmgr);\n  void SetIndexTimeParams(AnyParamManager& pmgr);\n\n  vector<string> GetQueryTimeParamNames() const {\n    vector<string> res = {ALPHA_LEFT_PARAM, EXP_LEFT_PARAM, ALPHA_RIGHT_PARAM, EXP_RIGHT_PARAM};\n\n    return res;\n  }\n  \n  void LogParams() {\n    LOG(LIB_INFO) << ALPHA_LEFT_PARAM << \" = \"   << alpha_left_ << \" \" << EXP_LEFT_PARAM << \" = \" << exp_left_;\n    LOG(LIB_INFO) << ALPHA_RIGHT_PARAM << \" = \" << alpha_right_ << \" \" << EXP_RIGHT_PARAM << \" = \" << exp_right_;\n  }\n\n  inline VPTreeVisitDecision Classify(dist_t distQueryPivot, dist_t MaxDist, dist_t MedianDist) const {\n\n    /*\n     * If the median is in both subtrees (e.g., this is often the case of a discrete metric)\n     * and the distance to the pivot is MedianDist, we need to visit both subtrees.\n     * Hence, we check for the strict inequality!!! Even if MaxDist == 0, \n     * for the case of dist == MedianDist, 0 < 0 may be false. \n     * Thus, we visit both subtrees. \n     */\n    if (distQueryPivot <= MedianDist) {\n      double diff = double(MedianDist - distQueryPivot);\n      double expDiff = EfficientPow(diff, exp_left_);\n      //LOG(LIB_INFO) << \" ### \" << diff << \" -> \" << expDiff;\n      if (double(MaxDist) < alpha_left_ * expDiff) return (kVisitLeft);\n    }\n    if (distQueryPivot >= MedianDist) {\n      double diff = double(distQueryPivot - MedianDist);  \n      double expDiff = EfficientPow(diff, exp_right_);\n      //LOG(LIB_INFO) << \" ### \" << diff << \" -> \" << expDiff;\n      if (double(MaxDist) < alpha_right_* expDiff) return (kVisitRight);\n    }\n\n    return (kVisitBoth);\n  }\n  string Dump() { \n    stringstream str;\n\n    str << ALPHA_LEFT_PARAM << \": \" << alpha_left_ << \" ExponentLeft: \" << exp_left_ << \" \" <<\n           ALPHA_RIGHT_PARAM << \": \" << alpha_right_ << \" ExponentRight: \" << exp_right_ ;\n    return str.str();\n  }\nprivate:\n  Space<dist_t>&        space_;\n  const ObjectVector    data_;\n  bool                  printProgress_;\n\n  double    alpha_left_;\n  unsigned  exp_left_;\n  double    alpha_right_;\n  unsigned  exp_right_;\n\n  double    alpha_left_default_;\n  unsigned  exp_left_default_;\n  double    alpha_right_default_;\n  unsigned  exp_right_default_;\n};\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/simddebug.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SIMD_DEBUG_H_\n#define _SIMD_DEBUG_H_\n\n\n#ifdef __SSE4_2__\n#include <immintrin.h>\n#include <mmintrin.h>\n#include <emmintrin.h>\n\n#include <iostream>\n#include <string>\n\nusing std::cout;\nusing std::endl;\nusing std::string;\n\nnamespace similarity {\n\n// Some SIMD debug printing\ninline void print4_ps(__m128 val, const string& desc=\"\") {\n  float tmp[4];\n  _mm_storeu_ps(tmp, val);\n  cout << \"SIMD debug 4 floats: \" << \"(\" << desc <<\") \";\n  for (int i = 0; i < 4; ++i) {\n    cout << \" \" << tmp[i] << \" \";\n  }\n  cout << endl;\n}\n\ninline void print4_pd(__m128d val, const string& desc=\"\") {\n  double tmp[2];\n  _mm_storeu_pd(tmp, val);\n  cout << \"SIMD debug 2 doubles: \" << \"(\" << desc <<\") \";\n  for (int i = 0; i < 2; ++i) {\n    cout << \" \" << tmp[i] << \" \";\n  }\n  cout << endl;\n}\n\ninline void print4_si(__m128i val, const string& desc=\"\") {\n  int tmp[4];\n\n  _mm_storeu_si128(reinterpret_cast<__m128i*>(tmp), val);\n  cout << \"SIMD debug 4 ints: \" << \"(\" << desc <<\") \";\n  for (int i = 0; i < 4; ++i) {\n    cout << \" \" << tmp[i] << \" \";\n  }\n  cout << endl;\n}\n\n#endif\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/simdutils.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan, Leonid Boytsov.\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n/* \n * Note that __GNUC__ is also defined for Intel and Clang,\n * which do understand __attribute__ ((aligned(16)))\n */\n\n#if defined(__GNUC__)\n#define PORTABLE_ALIGN16 __attribute__((aligned(16)))\n#else\n#define PORTABLE_ALIGN16 __declspec(align(16))\n#endif\n\n#ifndef WITHOUT_SIMD\n\n// On Win64 SSE2 is always enabled\n// http://stackoverflow.com/questions/1067630/sse2-option-in-visual-c-x64\n#if defined(__SSE2__) || defined(__AVX__) || defined(_MSC_VER)\n#define PORTABLE_SSE2\n#endif\n\n// Unfortunately on Win32/64, there is not separate option for SSE4\n#if defined(__SSE4_2__) || defined(__AVX__)\n#define PORTABLE_SSE4\n#endif\n\n#endif    // WITHOUT_SIMD\n\n\n#ifdef PORTABLE_SSE4\n#include <immintrin.h>\n#include <smmintrin.h>\n#include <tmmintrin.h>\n\n\n/*\n * Based on explanations/suggestions from here\n * http://stackoverflow.com/questions/5526658/intel-sse-why-does-mm-extract-ps-return-int-instead-of-float\n */\n\n#define MM_EXTRACT_DOUBLE(v,i) _mm_cvtsd_f64(_mm_shuffle_pd(v, v, _MM_SHUFFLE2(0, i)))\n#define MM_EXTRACT_FLOAT(v,i) _mm_cvtss_f32(_mm_shuffle_ps(v, v, _MM_SHUFFLE(0, 0, 0, i)))\n\n#endif\n\n#ifdef _MSC_VER\n#include <intrin.h>\n\n#define  __builtin_popcount(t) __popcnt(t)\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/sort_arr_bi.h",
    "content": "#ifndef  SORT_ARR_BI_H\n#define  SORT_ARR_BI_H\n/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n\n#include <cstdint>\n#include <cstdlib>\n#include <stdexcept>\n#include <vector>\n#include <algorithm>\n\n/*\n * This is not a fully functional heap and this is done on purpose.\n */\ntemplate <typename KeyType, typename DataType>\nclass SortArrBI {\n public:\n  class Item {\n   public:\n    KeyType   key;\n    bool      used = false;\n    DataType  data;\n\n    Item() {}\n    Item(const KeyType& k) : key(k) {}\n    Item(const KeyType& k, const DataType& d) : key(k), data(d) {}\n\n    bool operator < (const Item& i2) const {\n      return key < i2.key;\n    }\n  };\n  using value_type = DataType;\n\n  SortArrBI(size_t max_elem) :  v_(max_elem) {\n    if (max_elem <= 0) {\n      throw std::runtime_error(\"The maximum number of elements in MinHeapPseudoBI should be > 0\");\n    }\n  }\n\n  // resize may invalidate the reference returned by get_data() !!!!\n  void resize(size_t max_elem) {\n    v_.resize(max_elem);\n  }\n\n  // push_unsorted_grow may invalidate the reference returned by get_data() !!!!\n  void push_unsorted_grow(const KeyType& key, const DataType& data) {\n    if (num_elems_ + 1 >= v_.size()) resize(num_elems_+1);\n    v_[num_elems_].used = false;\n    v_[num_elems_].key = key;\n    v_[num_elems_].data = data;\n    num_elems_++;\n  }\n\n  KeyType top_key() {\n    return v_[num_elems_-1].key;\n  }\n\n  void sort() {\n    _mm_prefetch(&v_[0], _MM_HINT_T0);\n    std::sort(v_.begin(), v_.begin() + num_elems_);\n  }\n\n  void swap(size_t x, size_t y) {\n    std::swap(v_[x], v_[y]);\n  }\n\n  // Checking for duplicate IDs isn't the responsiblity of this function\n  // it also assumes a non-empty array\n  size_t push_or_replace_non_empty(const KeyType& key, const DataType& data) {\n    // num_elems_ > 0\n    unsigned curr = num_elems_ - 1;\n    if (v_[curr].key < key) return num_elems_;\n\n    while (curr > 0) {\n      unsigned j = curr - 1;\n      if (v_[j].key <= key) break;\n      curr = j;\n    }\n\n    if (num_elems_ < v_.size()) num_elems_++;\n    // curr + 1 <= num_elems_\n    _mm_prefetch(&v_[curr], _MM_HINT_T0);\n    memmove(&v_[curr+1], &v_[curr], (num_elems_ - (1 + curr)) * sizeof(v_[0]));\n    \n    v_[curr].used = false;\n    v_[curr].key  = key;\n    v_[curr].data = data;\n    return curr;\n  }\n\n  // In-place merge\n  size_t merge_with_sorted_items(Item* items, size_t item_qty) {\n    if (!item_qty) return num_elems_;\n\n    if (item_qty > v_.size()) item_qty = v_.size();\n    //if (item_qty == 1) return push_or_replace_non_empty_exp(items[0].key, items[0].data);\n\n    const size_t left_qty = v_.size() - num_elems_;\n\n    if (left_qty >= item_qty) {\n      memcpy(&v_[num_elems_], items, item_qty * sizeof(Item));\n\n      std::inplace_merge(v_.begin(), v_.begin() + num_elems_, v_.begin() + num_elems_ + item_qty);\n      num_elems_ += item_qty;\n\n    } else {\n      // Here left_qty < item_qty\n      size_t remove_qty = 0;\n      while (item_qty    > left_qty+ remove_qty &&\n             num_elems_  > remove_qty           && // This entails that num_elems_ - remove_qty - 1 >= 0\n             items[left_qty + remove_qty].key < v_[num_elems_  - remove_qty - 1].key) {\n        remove_qty++;\n      }\n      memcpy(&v_[num_elems_- remove_qty], items, (left_qty + remove_qty)* sizeof(Item));\n\n      // Note that num_elems_ + left_qty == v_.size()\n      std::inplace_merge(v_.begin(), v_.begin() + num_elems_- remove_qty, v_.end());\n      num_elems_ = v_.size(); // filling out the buffer completely\n    }\n\n    size_t ret = 0;\n    while (ret < num_elems_ && v_[ret].used) ++ret;\n    return ret;\n  }\n\n  size_t push_or_replace_non_empty_exp(const KeyType& key, const DataType& data) {\n    // num_elems_ > 0\n    unsigned curr = num_elems_ - 1;\n    if (v_[curr].key <= key) return num_elems_;\n    unsigned prev = curr;\n\n    unsigned d=1;\n    // always curr >= d\n    while (curr > 0 && v_[curr].key > key) {\n      prev = curr;\n      curr -= d;\n      d *= 2;\n      if (d > curr) d = curr;\n    }\n\n    _mm_prefetch(&v_[curr], _MM_HINT_T0);\n    if (curr < prev) {\n      curr = std::lower_bound(&v_[curr], &v_[prev], Item(key)) - &v_[0];\n    }\n\n    if (num_elems_ < v_.size()) num_elems_++;\n    // curr + 1 <= num_elems_\n\n    memmove(&v_[curr+1], &v_[curr], (num_elems_ - (1 + curr)) * sizeof(v_[0]));\n\n    v_[curr].used = false;\n    v_[curr].key  = key;\n    v_[curr].data = data;\n    return curr;\n  }\n\n\n  const std::vector<Item>& get_data() const {\n    return this->v_;\n  }\n\n  std::vector<Item>& get_data() {\n    return this->v_;\n  }\n\n  size_t size() const { return num_elems_; }\n \n protected:\n\n  std::vector<Item> v_;\n  size_t num_elems_ = 0;\n};\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_bit_hamming.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_BIT_HAMMING_H_\n#define _SPACE_BIT_HAMMING_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"distcomp.h\"\n\n#define SPACE_BIT_HAMMING \"bit_hamming\"\n\nnamespace similarity {\n\nclass SpaceBitHamming : public Space<int> {\n public:\n  explicit SpaceBitHamming() {}\n  virtual ~SpaceBitHamming() {}\n\n  /** Standard functions to read/write/create objects */ \n  // Create an object from string representation.\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const;\n  // Create a string representation of an object.\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                              const string& outputFile) const;\n  /*\n   * Read a string representation of the next object in a file as well\n   * as its label. Return false, on EOF.\n   */\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /** End of standard functions to read/write/create objects */\n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const;\n\n  virtual std::string StrDesc() const { return \"Hamming (bit-storage) space\"; }\n  virtual void CreateDenseVectFromObj(const Object* obj, int* pVect,\n                                      size_t nElem) const {\n    throw runtime_error(\"Cannot create a dense vector for the space: \" + StrDesc());\n  }\n  virtual size_t GetElemQty(const Object* object) const {return 0;}\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, std::vector<uint32_t>& InpVect) const {\n    InpVect.push_back(InpVect.size());\n    return CreateObjFromVectInternal(id, label, InpVect);\n  }\n protected:\n  virtual Object* CreateObjFromVectInternal(IdType id, LabelType label, const std::vector<uint32_t>& InpVect) const;\n  Object* CreateObjFromBitMaskVect(IdType id, LabelType label, const std::vector<uint32_t>& bitMaskVect) const;\n  virtual int HiddenDistance(const Object* obj1, const Object* obj2) const;\n  void ReadBitMaskVect(std::string line, LabelType& label, std::vector<uint32_t>& v) const;\n\n  DISABLE_COPY_AND_ASSIGN(SpaceBitHamming);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_bregman.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_BREGMAN_H_\n#define _SPACE_BREGMAN_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <sstream>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_lp.h\"\n\n#define SPACE_KLDIV_FAST                        \"kldivfast\"\n#define SPACE_KLDIV_FAST_RIGHT_QUERY            \"kldivfastrq\" \n\n#define SPACE_KLDIVGEN_FAST                     \"kldivgenfast\"\n#define SPACE_KLDIVGEN_FAST_RIGHT_QUERY         \"kldivgenfastrq\" \n#define SPACE_KLDIVGEN_SLOW                     \"kldivgenslow\"\n\n#define SPACE_ITAKURASAITO_FAST                 \"itakurasaitofast\"\n#define SPACE_ITAKURASAITO_FAST_RIGHT_QUERY     \"itakurasaitofastrq\" \n#define SPACE_ITAKURASAITO_SLOW                 \"itakurasaitoslow\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass BregmanDiv : public VectorSpace<dist_t> {\n public:\n  explicit BregmanDiv() {}\n  virtual ~BregmanDiv() {}\n\n  /* computes the Bregman generator function */\n  virtual dist_t Function(const Object* object) const = 0;\n  /* computes the gradient of the generator function at point \"object\" */\n  virtual Object* GradientFunction(const Object* object) const = 0;\n  /* computes the inverse gradient of the generator function at point \"object\" */\n  virtual Object* InverseGradientFunction(const Object* object) const = 0;\n\n  virtual std::string StrDesc() const = 0;\n\n  /* \n   * Returns the number of vector elements stored in the object.\n   * It may not be possible to get this number using Object->datalength(),\n   * because the object can store additional data such as precomputed\n   * logarithms\n   */\n  virtual size_t GetElemQty(const Object* object) const = 0;\n\n  /*\n   * However, all the Bregman divergences have similar storage scheme:\n   * The original values of the vectors are stored in the begining\n   * of the object. Thus, known the number of elements one can always\n   * extract them.\n   */\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\n\n  virtual Object* Mean(const ObjectVector& data) const;\n\n  static inline\n  const BregmanDiv<dist_t>* ConvertFrom(const Space<dist_t>* space) {\n    const BregmanDiv<dist_t>* div =\n        dynamic_cast<const BregmanDiv<dist_t>*>(space);\n    if (div != NULL) {\n      return div;\n    } else {\n      PREPARE_RUNTIME_ERR(err) << \"Space \" << space->StrDesc() << \" is not Bregman divergence\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n};\n\ntemplate <typename dist_t>\nclass KLDivAbstract : public BregmanDiv<dist_t> {\n public:\n  explicit KLDivAbstract() {}\n  virtual ~KLDivAbstract() {}\n\n  virtual dist_t Function(const Object* object) const;\n  virtual Object* GradientFunction(const Object* object) const;\n  virtual Object* InverseGradientFunction(const Object* object) const;\n\n  virtual std::string StrDesc() const = 0;\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const = 0;\n  virtual size_t GetElemQty(const Object* object) const = 0;\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n};\n\ntemplate <typename dist_t>\nclass KLDivGenSlow : public KLDivAbstract<dist_t> {\n public:\n  explicit KLDivGenSlow() {}\n  virtual ~KLDivGenSlow() {}\n\n  virtual std::string StrDesc() const { return \"Generalized Kullback-Leibler divergence\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t); }\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(KLDivGenSlow);\n};\n\ntemplate <typename dist_t>\nclass KLDivGenFast : public KLDivAbstract<dist_t> {\n public:\n  explicit KLDivGenFast() {}\n  virtual ~KLDivGenFast() {}\n\n  virtual Object* InverseGradientFunction(const Object* object) const;\n  virtual std::string StrDesc() const { return \"Generalized Kullback-Leibler divergence (precomputed logs)\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t)/ 2; }\n  virtual Object* Mean(const ObjectVector& data) const;\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(KLDivGenFast);\n};\n\ntemplate <typename dist_t>\nclass ItakuraSaitoFast : public BregmanDiv<dist_t> {\n public:\n  explicit ItakuraSaitoFast() {}\n  virtual ~ItakuraSaitoFast() {}\n\n  virtual dist_t Function(const Object* object) const;\n  virtual Object* InverseGradientFunction(const Object* object) const;\n  virtual Object* GradientFunction(const Object* object) const;\n\n  virtual std::string StrDesc() const { return \"Itakura-Saito (precomputed logs)\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t)/ 2; }\n  virtual Object* Mean(const ObjectVector& data) const;\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(ItakuraSaitoFast);\n};\n\ntemplate <typename dist_t>\nclass KLDivGenFastRightQuery : public VectorSpace<dist_t> {\n public:\n  explicit KLDivGenFastRightQuery() {}\n  virtual ~KLDivGenFastRightQuery() {}\n\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\n\n  virtual std::string StrDesc() const { return \"Generalized Kullback-Leibler divergence, right queries (precomputed logs)\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t)/ 2; }\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(KLDivGenFastRightQuery);\n};\n\ntemplate <typename dist_t>\nclass KLDivFast: public VectorSpace<dist_t> {\n public:\n  explicit KLDivFast() {}\n  virtual ~KLDivFast() {}\n\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\n\n  virtual std::string StrDesc() const { return \"Kullback-Leibler divergence (precomputed logs)\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t)/ 2; }\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(KLDivFast);\n};\n\ntemplate <typename dist_t>\nclass KLDivFastRightQuery: public VectorSpace<dist_t> {\n public:\n  explicit KLDivFastRightQuery() {}\n  virtual ~KLDivFastRightQuery() {}\n\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\n\n  virtual std::string StrDesc() const { return \"Kullback-Leibler divergence, right queries (precomputed logs)\"; }\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const { return object->datalength()/ sizeof(dist_t)/ 2; }\n protected:\n  // Should not be directly accessible\n  virtual dist_t HiddenDistance(const Object* object1, const Object* object2) const;\n  DISABLE_COPY_AND_ASSIGN(KLDivFastRightQuery);\n};\n\n}  // namespace similarity\n\n#endif      // _METRIC_SPACE_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_dummy.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_DUMMY_H_\n#define _SPACE_DUMMY_H_\n\n#include <string>\n#include <limits>\n#include <map>\n#include <stdexcept>\n#include <sstream>\n\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n#include \"distcomp.h\"\n\n#define SPACE_DUMMY              \"dummy\"\n\nnamespace similarity {\n\n\n/*\n * This is a dummy, i.e., zero-functionality space,\n * which can be used as a template to create fully functional\n * space.\n */\n\ntemplate <typename dist_t>\nclass SpaceDummy : public Space<dist_t> {\n public:\n  // A constructor can have arbitrary params\n  explicit SpaceDummy(int param1, int param2) : param1_(param1), param2_(param2) {\n    LOG(LIB_INFO) << \"Created \" << StrDesc();\n  }\n  virtual ~SpaceDummy() {}\n\n  /* \n   * Space name: It will be used in result files.\n   * Consider, including all the parameters where you\n   * print the space name:\n   */\n  virtual std::string StrDesc() const {\n    stringstream  str;\n    str << \"DummySpace param1=\" << param1_ << \" param2=\" << param2_;\n    return str.str();\n  }\n\n  /** Standard functions to read/write/create objects */ \n  /*\n   * Create an object from a (possibly binary) string.\n   * If the input state pointer isn't null, we check\n   * if the new vector is consistent with previously read vectors.\n   * For example, when we start reading vectors,\n   * we don't know the number of elements. When, we see the first\n   * vector, we memorize dimensionality. If a subsequently read\n   * vector has a different dimensionality, an exception will be thrown.\n   */\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const;\n  // Create a string representation of an object\n  // The string representation may include external ID.\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId) const;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                              const string& outputFile) const;\n  /*\n   * Read a string representation of the next object in a file as well\n   * as its label. Return false, on EOF.\n   */\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /* \n   * Write a string representation of the next object to a file. We totally delegate\n   * this to a Space object, because it may package the string representation, by\n   * e.g., in the form of an XML fragment.\n   */\n  virtual void WriteNextObj(const Object& obj, const string& externId, DataFileOutputState &) const;\n  /** End of standard functions to read/write/create objects */ \n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const {\n    return true; // In an actual, non-dummy class, you should return the result\n                 // of an actual comparison. Here 'true' is used only to make it compile.\n  }\n\n  /*\n   * CreateDenseVectFromObj and GetElemQty() are only needed, if\n   * one wants to use methods with random projections.\n   */\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                   size_t nElem) const {\n    throw runtime_error(\"Cannot create vector for the space: \" + StrDesc());\n  }\n  virtual size_t GetElemQty(const Object* object) const {return 0;}\n protected:\n /*\n  * This function should always be protected.\n  * Only children and friends of the Space class\n  * should be able to access it.\n  */\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n private:\n \n  /* \n   * We typically use a trailing underscore to distinguish between\n   * class-member variables from non-member variables.\n   */\n  int param1_;\n  int param2_;\n  /*\n   * One should forbid making copies of the Space object\n   */\n  DISABLE_COPY_AND_ASSIGN(SpaceDummy);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_js.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_JS_H_\n#define _SPACE_JS_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n\n#define SPACE_JS_DIV_SLOW         \"jsdivslow\"\n#define SPACE_JS_DIV_FAST         \"jsdivfast\"\n#define SPACE_JS_DIV_FAST_APPROX  \"jsdivfastapprox\"\n\n#define SPACE_JS_METR_SLOW         \"jsmetrslow\"\n#define SPACE_JS_METR_FAST         \"jsmetrfast\"\n#define SPACE_JS_METR_FAST_APPROX  \"jsmetrfastapprox\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass SpaceJSBase : public VectorSpace<dist_t> {\n public:\n  enum JSType {kJSSlow, kJSFastPrecomp, kJSFastPrecompApprox};\n\n  explicit SpaceJSBase(JSType type) : type_(type) {}\n  virtual ~SpaceJSBase() {}\n\n  virtual std::string StrDesc() const = 0;\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n\n  virtual size_t GetElemQty(const Object* object) const {\n    size_t tmp = object->datalength()/ sizeof(dist_t);\n    return (type_ == kJSSlow) ? tmp : tmp / 2;\n  }\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n\n  }\n protected:\n  dist_t JensenShannonFunc(const Object* obj1, const Object* obj2) const;\n  JSType  GetType() const { return type_; }\n private:\n  JSType   type_;\n};\n\ntemplate <typename dist_t>\nclass SpaceJSDiv : public SpaceJSBase<dist_t> {\n public:\n  explicit SpaceJSDiv(typename SpaceJSBase<dist_t>::JSType type) : SpaceJSBase<dist_t>(type) {}\n  virtual ~SpaceJSDiv() {}\n\n  virtual std::string StrDesc() const {\n    std::stringstream stream;\n    stream << \"Jensen-Shannon divergence: type code = \" << SpaceJSBase<dist_t>::GetType();\n    return stream.str();\n  }\n\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const {\n    return SpaceJSBase<dist_t>::JensenShannonFunc(obj1, obj2);\n  }\n private:\n  DISABLE_COPY_AND_ASSIGN(SpaceJSDiv);\n};\n\ntemplate <typename dist_t>\nclass SpaceJSMetric : public SpaceJSBase<dist_t> {\n public:\n  explicit SpaceJSMetric(typename SpaceJSBase<dist_t>::JSType type) : SpaceJSBase<dist_t>(type) {}\n  virtual ~SpaceJSMetric() {}\n\n  virtual std::string StrDesc() const {\n    std::stringstream stream;\n    stream << \"Jensen-Shannon metric: type code = \" << SpaceJSBase<dist_t>::GetType();\n    return stream.str();\n  }\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const {\n    return sqrt(SpaceJSBase<dist_t>::JensenShannonFunc(obj1, obj2));\n  }\n private:\n  DISABLE_COPY_AND_ASSIGN(SpaceJSMetric);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_leven.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_LEVENSHTEIN_H_\n#define _SPACE_LEVENSHTEIN_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <algorithm>\n\n#include <string.h>\n#include \"distcomp.h\"\n#include \"space/space_string.h\"\n\nnamespace similarity {\n\n#define SPACE_LEVENSHTEIN       \"leven\"\n#define SPACE_LEVENSHTEIN_NORM  \"normleven\"\n\nclass SpaceLevenshtein : public StringSpace<int> {\n public:\n  explicit SpaceLevenshtein() {}\n  virtual ~SpaceLevenshtein() {}\n  virtual std::string StrDesc() const { return \"Levenshtein distance\"; }\n protected:\n  virtual int HiddenDistance(const Object* obj1, const Object* obj2) const {\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj2->datalength() > 0);\n    const char* x = reinterpret_cast<const char*>(obj1->data());\n    const char* y = reinterpret_cast<const char*>(obj2->data());\n    const size_t len1 = obj1->datalength() / sizeof(char);\n    const size_t len2 = obj2->datalength() / sizeof(char);\n\n    return levenshtein(x, len1, y, len2);\n  }\n  DISABLE_COPY_AND_ASSIGN(SpaceLevenshtein);\n};\n\nclass SpaceLevenshteinNormalized : public StringSpace<float> {\n public:\n  explicit SpaceLevenshteinNormalized() {}\n  virtual ~SpaceLevenshteinNormalized() {}\n  virtual std::string StrDesc() const { return \"Normalized Levenshtein distance\"; }\n protected:\n  virtual float HiddenDistance(const Object* obj1, const Object* obj2) const {\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj2->datalength() > 0);\n    const char* x = reinterpret_cast<const char*>(obj1->data());\n    const char* y = reinterpret_cast<const char*>(obj2->data());\n    const size_t len1 = obj1->datalength() / sizeof(char);\n    const size_t len2 = obj2->datalength() / sizeof(char);\n\n    if (0 == len1 && 0 == len2) return 0;\n    CHECK(len1 || len2);\n    return float(levenshtein(x, len1, y, len2))/std::max(len1, len2);\n  }\n  DISABLE_COPY_AND_ASSIGN(SpaceLevenshteinNormalized);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_lp.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_LP_H_\n#define _SPACE_LP_H_\n\n#include <string>\n#include <limits>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n#include \"distcomp.h\"\n\n#define SPACE_L     \"lp\"\n#define SPACE_LINF  \"linf\"\n#define SPACE_L1    \"l1\"\n#define SPACE_L2    \"l2\"\n\nnamespace similarity {\n\n\n\ntemplate <typename dist_t>\nclass SpaceLpDist {\npublic:\n  explicit SpaceLpDist(dist_t pf) : p_(static_cast<int>(pf)), pf_(pf), custom_(false) {\n    if (fabs(dist_t(p_) - pf_) < numeric_limits<dist_t>::min()) {\n      custom_ = p_ == -1 || p_ == 1 || p_ == 2;\n    }\n  }\n\n  dist_t operator()(const dist_t* x, const dist_t* y, size_t length) const {\n    CHECK(p_ >= 0 || -1 == p_);\n\n    if (custom_) {\n      if (p_ == -1) {\n        return LInfNormSIMD(x, y, length);\n      } else if (p_ == 1) {\n        return L1NormSIMD(x, y, length);\n      } else if (p_ == 2) {\n        return L2NormSIMD(x, y, length);\n      } \n    }\n\n    /* \n     * This one will be relatively efficient for integer-valued p_,\n     * but not if p_ is an arbitrary value.\n     */\n    return LPGenericDistanceOptim(x, y, length, dist_t(pf_));\n  }\n  dist_t getP() const { return pf_; }\n  bool getCustom() const { return custom_; }\nprivate:\n  int     p_;\n  dist_t  pf_; \n  bool    custom_; // Do we use a custom implementation for l=0,1,2?\n};\n\ntemplate <typename dist_t>\nclass SpaceLp : public VectorSpaceSimpleStorage<dist_t> {\n public:\n  explicit SpaceLp(dist_t p) : distObj_(p) {}\n  virtual ~SpaceLp() {}\n\n  virtual std::string StrDesc() const;\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n private:\n  SpaceLpDist<dist_t> distObj_;\n  DISABLE_COPY_AND_ASSIGN(SpaceLp);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_rank_correl.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _RANK_CORREL_SPACE_H_\n#define _RANK_CORREL_SPACE_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n#include \"permutation_type.h\"\n\nnamespace similarity {\n\ntemplate <PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nclass RankCorrelVectorSpace : public VectorSpace<PivotIdType> {\n public:\n  explicit RankCorrelVectorSpace() {}\n\n  virtual std::string StrDesc() const { return \"rank correlation vector space\"; }\n protected:\n  // Should not be directly accessible\n  virtual PivotIdType HiddenDistance(const Object* obj1, const Object* obj2) const {\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj1->datalength() == obj2->datalength());\n    const PivotIdType* x = reinterpret_cast<const PivotIdType*>(obj1->data());\n    const PivotIdType* y = reinterpret_cast<const PivotIdType*>(obj2->data());\n    const size_t length = obj1->datalength() / sizeof(size_t);\n\n    return RankCorrelDistFunc(x, y, length);\n  }\n  DISABLE_COPY_AND_ASSIGN(RankCorrelVectorSpace);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_scalar.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SCALAR_H_\n#define _SPACE_SCALAR_H_\n\n#include <string>\n#include <limits>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n#include \"distcomp.h\"\n\n\n#define SPACE_COSINE_SIMILARITY  \"cosinesimil\"\n#define SPACE_ANGULAR_DISTANCE   \"angulardist\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass SpaceCosineSimilarity : public VectorSpaceSimpleStorage<dist_t> {\npublic:\n  SpaceCosineSimilarity() {}\n  virtual std::string StrDesc() const {\n    return \"CosineSimilarity\";\n  }\nprotected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n  DISABLE_COPY_AND_ASSIGN(SpaceCosineSimilarity);\n};\n\ntemplate <typename dist_t>\nclass SpaceAngularDistance : public VectorSpaceSimpleStorage<dist_t> {\npublic:\n  SpaceAngularDistance() {}\n  virtual std::string StrDesc() const {\n    return \"AngularDistance\";\n  }\n  virtual size_t GetElemQty(const Object* object) const {\n    return object->datalength()/ sizeof(dist_t);\n  }\n  virtual void createVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    return VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\n\nprotected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n  DISABLE_COPY_AND_ASSIGN(SpaceAngularDistance);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sparse_lp.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SPARSE_LP_H_\n#define _SPACE_SPARSE_LP_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_lp.h\"\n#include \"space_sparse_vector.h\"\n\n#define SPACE_SPARSE_L     \"lp_sparse\"\n#define SPACE_SPARSE_LINF  \"linf_sparse\"\n#define SPACE_SPARSE_L1    \"l1_sparse\"\n#define SPACE_SPARSE_L2    \"l2_sparse\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass SpaceSparseLp : public SpaceSparseVectorSimpleStorage<dist_t> {\n public:\n  explicit SpaceSparseLp(dist_t p) : distObj_(p) {}\n  virtual ~SpaceSparseLp() {}\n\n  virtual std::string StrDesc() const;\n\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n private:\n  SpaceLpDist<dist_t> distObj_;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseLp);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sparse_scalar.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SPARSE_SCALAR_H_\n#define _SPACE_SPARSE_SCALAR_H_\n\n#include <string>\n#include <map>\n#include <cmath>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_sparse_vector.h\"\n#include \"distcomp.h\"\n\n#define SPACE_SPARSE_COSINE_SIMILARITY  \"cosinesimil_sparse\"\n#define SPACE_SPARSE_ANGULAR_DISTANCE   \"angulardist_sparse\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass SpaceSparseAngularDistance : public SpaceSparseVectorSimpleStorage<dist_t> {\n public:\n  explicit SpaceSparseAngularDistance() {}\n  virtual ~SpaceSparseAngularDistance() {}\n\n  virtual std::string StrDesc() const {\n    return \"AngularDistance\";\n  }\n\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const {\n    return SpaceSparseVectorSimpleStorage<dist_t>::\n                        ComputeDistanceHelper(obj1, obj2, distObjAngular_);\n  }\n private:\n  struct SpaceAngularDist {\n    dist_t operator()(const dist_t* x, const dist_t* y, size_t length) const {\n      dist_t val = AngularDistance(x, y, length);\n      // TODO: @leo shouldn't happen any more, but let's keep this check here for a while\n      if (std::isnan(val)) throw runtime_error(\"SpaceAngularDist Bug: NAN dist!!!!\");\n      return val;\n    }\n  };\n  SpaceAngularDist        distObjAngular_;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseAngularDistance);\n};\n\ntemplate <typename dist_t>\nclass SpaceSparseCosineSimilarity : public SpaceSparseVectorSimpleStorage<dist_t> {\n public:\n  explicit SpaceSparseCosineSimilarity() {}\n  virtual ~SpaceSparseCosineSimilarity() {}\n\n  virtual std::string StrDesc() const {\n    return \"CosineSimilarity\";\n  }\n\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const {\n    return SpaceSparseVectorSimpleStorage<dist_t>::\n                  ComputeDistanceHelper(obj1, obj2, distObjCosineSimilarity_);\n  }\n private:\n  struct SpaceCosineSimilarityDist {\n    dist_t operator()(const dist_t* x, const dist_t* y, size_t length) const {\n      dist_t val = CosineSimilarity(x, y, length);\n      // TODO: @leo shouldn't happen any more, but let's keep this check here for a while\n      if (std::isnan(val)) throw runtime_error(\"SpaceCosineSimilarityDist Bug: NAN dist!!!!\");\n      return val;\n    }\n  };\n  SpaceCosineSimilarityDist        distObjCosineSimilarity_;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseCosineSimilarity);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sparse_scalar_fast.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SPARSE_SCALAR_FAST_H_\n#define _SPACE_SPARSE_SCALAR_FAST_H_\n\n#include <string>\n#include <limits>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_sparse_vector_inter.h\"\n#include \"distcomp.h\"\n\n\n#define SPACE_SPARSE_COSINE_SIMILARITY_FAST  \"cosinesimil_sparse_fast\"\n#define SPACE_SPARSE_ANGULAR_DISTANCE_FAST   \"angulardist_sparse_fast\"\n\nnamespace similarity {\n\nclass SpaceSparseCosineSimilarityFast : public SpaceSparseVectorInter<float> {\npublic:\n  explicit SpaceSparseCosineSimilarityFast(){}\n  virtual std::string StrDesc() const {\n    return \"CosineSimilarity (fast)\";\n  }\nprotected:\n  virtual float HiddenDistance(const Object* obj1, const Object* obj2) const;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseCosineSimilarityFast);\n};\n\nclass SpaceSparseAngularDistanceFast : public SpaceSparseVectorInter<float> {\npublic:\n  explicit SpaceSparseAngularDistanceFast(){}\n  virtual std::string StrDesc() const {\n    return \"AngularDistance (fast)\";\n  }\nprotected:\n  virtual float HiddenDistance(const Object* obj1, const Object* obj2) const;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseAngularDistanceFast);\n};\n\n\n}  // namespace similarity\n\n#endif \n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sparse_vector.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SPARSE_VECTOR_H_\n#define _SPACE_SPARSE_VECTOR_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <algorithm>\n#include <ostream>\n#include <functional>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"distcomp.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::fill;\n\ntemplate <typename dist_t>\nstruct SparseVectElem {  \n  uint32_t  id_;\n  dist_t    val_;\n  SparseVectElem(uint32_t id = 0, dist_t val = 0) : id_(id), val_(val) {}\n  bool operator<(const SparseVectElem<dist_t>& that) const {\n    return id_ < that.id_;\n  }\n  bool operator==(const SparseVectElem<dist_t>& that) const {\n    return id_ == that.id_ && val_ == that.val_;\n  }\n  bool operator!=(const SparseVectElem<dist_t>& that) const {\n    return !operator==(that);\n  }\n};\n\ntemplate <typename dist_t>\nostream& operator<<(ostream& out, SparseVectElem<dist_t> e) {\n  return out << \"[\" << e.id_ << \": \" << e.val_ << \"]\";\n}\n\n/* \n * The maximum number of sparse elements that will be kept on the stack\n * by the function ComputeDistanceHelper. \n *\n * TODO:@leo If there are too many threads, we might run out stack memory.\n *           but it is probably extremely unlikely with the buffer of this size.\n *\n */\n#define MAX_BUFFER_QTY  8192\n\ntemplate <typename dist_t>\nclass SpaceSparseVector : public Space<dist_t> {\npublic:\n  typedef SparseVectElem<dist_t> ElemType;\n\n  explicit SpaceSparseVector() {}\n  virtual ~SpaceSparseVector() {}\n\n  /** Standard functions to read/write/create objects */ \n  // Create a string representation of an object.\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const;\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                              const string& outputFile) const;\n  /*\n   * Read a string representation of the next object in a file as well\n   * as its label. Return false, on EOF.\n   */\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /** End of standard functions to read/write/create objects */\n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const;\n\n  /* \n   * Different implementations of the sparse vector space will pack elements differently.\n   * Hence, they have to provide their own procedures to create an Object as\n   * well as extract elements from an Object.\n   */\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const vector<ElemType>& InpVect) const = 0;\n  // Sparse vectors have no fixed dimensionality\n  virtual size_t GetElemQty(const Object* object) const {return 0;}\n\n  virtual dist_t ScalarProduct(const Object* obj1, const Object* obj2) const = 0;\nprotected:\n  void ReadSparseVec(std::string line, size_t line_num, IdType& label, vector<ElemType>& v) const;\n  virtual void CreateVectFromObj(const Object* obj, vector<ElemType>& v) const  = 0;\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseVector);\n};\n\ntemplate <typename dist_t>\nclass SpaceSparseVectorSimpleStorage : public SpaceSparseVector<dist_t> {\npublic:\n  typedef SparseVectElem<dist_t> ElemType;\n\n  virtual ~SpaceSparseVectorSimpleStorage() {}\n  explicit SpaceSparseVectorSimpleStorage() {}\n\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                 size_t nElem) const {\n    static std::hash<size_t>   indexHash;\n    fill(pVect, pVect + nElem, static_cast<dist_t>(0));\n    const ElemType* beg = reinterpret_cast<const ElemType*>(obj->data());\n    const ElemType* const end =\n        reinterpret_cast<const ElemType*>(obj->data() + obj->datalength());\n    for (;beg < end;++beg) {\n      size_t idx = indexHash(beg->id_) % nElem;\n      pVect[idx] += beg->val_;\n    }\n  }\n\n  Object* CreateObjFromVect(IdType id, LabelType label, const vector<ElemType>& InpVect) const {\n    return new Object(id, label, InpVect.size() * sizeof(ElemType), &InpVect[0]);\n  };\n\n  virtual dist_t ScalarProduct(const Object* obj1, const Object* obj2) const {\n    SpaceNormScalarProduct distObjNormSP;\n    return SpaceSparseVectorSimpleStorage<dist_t>::\n                            ComputeDistanceHelper(obj1, obj2, distObjNormSP);\n  }\nprotected:\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseVectorSimpleStorage);\n\n  virtual void CreateVectFromObj(const Object* obj, vector<ElemType>& v) const {\n    const ElemType* beg = reinterpret_cast<const ElemType*>(obj->data());\n    const ElemType* const end =\n        reinterpret_cast<const ElemType*>(obj->data() + obj->datalength());\n    size_t qty = end - beg;\n    v.resize(qty);\n    for (size_t i = 0; i < qty; ++i) v[i] = beg[i];\n  }\n\n  struct SpaceNormScalarProduct {\n    dist_t operator()(const dist_t* x, const dist_t* y, size_t length) const {\n     return NormScalarProduct(x, y, length);\n    }\n  };\n\n  \n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n\n  /* \n   * This helper function converts a dense vector to a sparse one and then calls a generic distance function.\n   * It can be used only with simple-storage sparse vector spaces, not with\n   * children of SpaceSparseVectorInter.\n   */\n  template <typename DistObjType> \n  static dist_t ComputeDistanceHelper(const Object* obj1, const Object* obj2,  \n                               const DistObjType distObj, dist_t missingValue = 0) {\n    dist_t *mem1 = NULL, *mem2 = NULL;\n    dist_t buf1[MAX_BUFFER_QTY], buf2[MAX_BUFFER_QTY];\n    dist_t *vect1 = buf1;\n    dist_t *vect2 = buf2;\n\n    dist_t res = 0;\n\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj2->datalength() > 0);\n    const ElemType* beg1 = reinterpret_cast<const ElemType*>(obj1->data());\n    const ElemType* beg2 = reinterpret_cast<const ElemType*>(obj2->data());\n    const ElemType* end1 = reinterpret_cast<const ElemType*>(obj1->data() + obj1->datalength());\n    const ElemType* end2 = reinterpret_cast<const ElemType*>(obj2->data() + obj2->datalength());\n    const size_t qty1 = obj1->datalength() / sizeof(ElemType);\n    const size_t qty2 = obj2->datalength() / sizeof(ElemType);\n    const size_t maxQty = qty1 + qty2;\n\n    /* \n     * We hope not to allocate memory frequently, b/c memory allocation can be expensive\n     * TODO:@leo check how expensive are memory allocations, perhaps, this fear is not substantiated\n     */      \n    try {\n      if (maxQty > MAX_BUFFER_QTY) {\n        vect1 = mem1 = new dist_t[maxQty];\n        vect2 = mem2 = new dist_t[maxQty];\n      }\n\n      size_t qty = 0;\n   \n      const ElemType* it1 = beg1, *it2 = beg2; \n\n      while (it1 < end1 && it2 < end2) {\n        if (it1->id_ == it2->id_) {\n          vect1[qty] = it1->val_;\n          vect2[qty] = it2->val_;\n          ++it1;\n          ++it2;\n          ++qty; \n        } else if (it1->id_ < it2->id_) {\n          vect1[qty] = it1->val_;\n          vect2[qty] = missingValue;\n          ++qty;\n          ++it1;\n        } else {\n          vect1[qty] = missingValue;\n          vect2[qty] = it2->val_;\n          ++qty;\n          ++it2;\n        }\n      }\n      \n      while (it1 < end1) {\n        vect1[qty] = it1->val_;\n        vect2[qty] = missingValue;\n        ++qty;\n        ++it1;\n      }\n      \n      while (it2 < end2) {\n        vect1[qty] = missingValue;\n        vect2[qty] = it2->val_;\n        ++qty;\n        ++it2;\n      }\n\n      if (qty > maxQty) {\n        LOG(LIB_ERROR) << qty1;\n        LOG(LIB_ERROR) << qty2;\n        LOG(LIB_ERROR) << qty;\n      }\n      CHECK(qty <= maxQty);\n\n      res = distObj(vect1, vect2, qty);\n\n    } catch (...) {\n      delete [] mem1;\n      delete [] mem2;\n    }\n\n    delete [] mem1;\n    delete [] mem2;\n\n    return res;\n  }\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sparse_vector_inter.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SPARSE_VECTOR_INTER_H_\n#define _SPACE_SPARSE_VECTOR_INTER_H_\n\n#include <cstdint>\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <algorithm>\n#include <limits>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"distcomp.h\"\n#include \"space_sparse_vector.h\"\n\nnamespace similarity {\n\nusing std::vector;\n\n/*\n *\n * This helper base class is different from the SpaceSparseVectorSimpleStorage class\n * in that it stores sparse vectors in a special format (divided into blocks).\n *\n * This makes it possible to quickly compute distances, \n * where computations involves elements present in both vectors.\n *\n * One example is the scalar product.\n *\n */\ntemplate <typename dist_t>\nclass SpaceSparseVectorInter : public SpaceSparseVector<dist_t> {\n public:\n  explicit SpaceSparseVectorInter(){}\n  typedef SparseVectElem<dist_t> ElemType;\n\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                     size_t nElem) const;\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const vector<ElemType>& InpVect) const;\n  virtual void CreateVectFromObj(const Object* obj, vector<ElemType>& v) const ;\n  /*\n   * Overriding the function from the base class\n   */\n  virtual dist_t ScalarProduct(const Object* obj1, const Object* obj2) const {\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj2->datalength() > 0);\n\n    return ScalarProductFast(obj1->data(), obj1->datalength(),\n                             obj2->data(), obj2->datalength());\n  }\n protected:\n  DISABLE_COPY_AND_ASSIGN(SpaceSparseVectorInter);\n\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n};\n\n/* \n *\n * Modifying ids, so we don't have ids for which id % 65536 == 0\n *\n * The SIMD intersection algorithm won't be able to handle such ids, \n * because a faster version of _mm_cmpistrm requires that all ids \n * are non-zero.\n *\n */\ninline  size_t removeBlockZeros(size_t id) {\n  // This way we don't have ids for which id % 65536 == 0\n  return (id / 65535) * 65536 + (id % 65535) + 1;\n};\n\n/* \n * A conversion that reverts removeBlockZeros\n * It works only for the numbers where id % 65536 != 0,\n * which makes sense as removeBlockZeros can't produce a multiple of 65536.\n *\n *\n * One may doubt if this reverse conversion actually works (we \n * do have a unit test to verify this). However, it's not \n * hard to see why the conversion is correct using basic\n * modulo and integer division arithmetic (see below).\n *\n * Note 1:\n * One way to represent id produced by removeBlockZeros(origId):\n * id = (origId / 65535) * 65536 + term_smaller_than_65536\n * Therefore: origId / 65536 is equal to  id / 65536\n * This deletion clearly \"removes\" the term smaller than 65536.\n * \n * Note 2:\n * Another way to represent id obtained as removeBlockZeros(origId):\n * id = a_multiple_of_65536 + (origId % 65535) + 1\n * Note that the sum of second and the third terms is smaller than 65536.\n * Therefore id % 65536 = (origId % 65535) + 1\n *\n * Combining Note 1 & 2, we obtain that:\n * addBlockZeros(id) = (origId / 65535) + origId % 65535 = origId\n * \n * Q.E.D.\n */\ninline size_t addBlockZeros(size_t id) {\n  return (id / 65536) * 65535 + (id % 65536) - 1;\n}\n\ntemplate <typename dist_t>\ninline  void ParseSparseElementHeader(const char*     pBuff, \n                                      size_t&         rBlockQty,\n                                      dist_t&         rSqSum,\n                                      const size_t*&  rpBlockQtys,\n                                      const size_t*&  rpBlockOffs, \n                                      const char*&    rpBlockBegin) {\n  const size_t*   pQty = reinterpret_cast<const size_t*>(pBuff);\n  rBlockQty = *pQty;\n  const dist_t*   pSqSum = reinterpret_cast<const dist_t*>(pQty + 1);\n  rSqSum = *pSqSum;\n  rpBlockQtys = reinterpret_cast<const size_t*>(pSqSum + 1);\n  rpBlockOffs = rpBlockQtys + rBlockQty;\n\n  rpBlockBegin = reinterpret_cast<const char*>(rpBlockOffs + rBlockQty);\n}  \n\ntemplate <typename dist_t>\ninline  void UnpackSparseElements(const char* pBuff, size_t dataLen,\n                                  vector<SparseVectElem<dist_t>>& OutVect)\n{\n  typedef SparseVectElem<dist_t> ElemType;\n\n  size_t            blockQty = 0;\n  dist_t            SqSum = 0;\n  const size_t*     pBlockQty = NULL;\n  const size_t*     pBlockOff = NULL;\n\n  const char* pBlockBegin = NULL;\n\n  ParseSparseElementHeader(pBuff, blockQty, SqSum, \n                           pBlockQty, \n                           pBlockOff, \n                           pBlockBegin);\n\n  size_t elemSize = 2 + sizeof(dist_t);\n\n  for (size_t i = 0; i < blockQty; ++i) {\n    size_t qty    = pBlockQty[i];\n    size_t offset = pBlockOff[i];\n\n    const uint16_t* pBlockIds = reinterpret_cast<const uint16_t*>(pBlockBegin);\n    const dist_t* pValBegin = reinterpret_cast<const dist_t*>(pBlockIds + qty);\n\n    for (size_t k = 0; k < qty; ++k) {\n      OutVect.push_back(ElemType(addBlockZeros(pBlockIds[k] + offset), pValBegin[k]));\n    }\n\n    pBlockBegin += elemSize * qty;\n  }\n\n  CHECK(pBlockBegin - pBuff == (ssize_t)dataLen);\n}\n\ntemplate <typename dist_t>\ninline  void PackSparseElements(const vector<SparseVectElem<dist_t>>& InpVect, \n                                char*& prBuff, size_t& dataSize) {\n  typedef SparseVectElem<dist_t> ElemType;\n\n  vector<vector<ElemType>>    blocks;\n  vector<size_t>              blockOffsets;\n\n  uint32_t  prevBlockId = numeric_limits<uint32_t>::max();\n\n  vector<ElemType> currBlock;\n\n  size_t totQty = 0;\n  dist_t sqSum = 0;\n\n  for (size_t i = 0; i < InpVect.size(); ++i) {\n\t  uint32_t id = static_cast<uint32_t> // Blocks are never too large\n\t\t\t\t\t\t(removeBlockZeros(InpVect[i].id_));\n\n\t\n    uint32_t blockId = static_cast<uint32_t> // Blocks are never too large\n\t\t\t\t\t\t(id / 65536);\n\n    id &= 65535; // in-block id will contain only the last two bytes\n\n    if (blockId != prevBlockId && !currBlock.empty()) {\n      blocks.push_back(currBlock);\n      blockOffsets.push_back(prevBlockId * 65536);\n      currBlock.clear();\n    }\n\n    prevBlockId = blockId;\n    currBlock.push_back(ElemType(id, InpVect[i].val_));\n    sqSum += InpVect[i].val_ * InpVect[i].val_;\n    ++totQty;\n  }\n  blocks.push_back(currBlock);\n  blockOffsets.push_back(prevBlockId * 65536);\n\n  CHECK(InpVect.size() == totQty);\n\n  /* \n   * How much memory do we need?\n   *\n   * i)   A header will store the number of blocks. \n   * ii)  For each block we keep the # of elements\n   * iii) The sum of squared element values.\n   * iv)  Each element has a 2-byte id and a sizeof(dist_t) value\n   *\n   */\n  size_t elemSize = 2 + sizeof(dist_t);\n  dataSize = sizeof(size_t) + // number of blocks\n              sizeof(dist_t) + // sum of squared elements\n              2 * sizeof(size_t) * (blocks.size()) + // block qtys & offsets\n              elemSize * InpVect.size();  \n\n  prBuff = new char[dataSize]; \n\n  size_t*   pQty = reinterpret_cast<size_t*>(prBuff);\n\n  /*\n   * Store meta information.\n   */\n  *pQty = blocks.size(); \n\n  dist_t*   pSqSum = reinterpret_cast<dist_t*>(pQty + 1);\n  *pSqSum = sqSum;\n  size_t*   pBlockQtyOff = reinterpret_cast<size_t*>(pSqSum + 1);\n\n  for (size_t i = 0; i < blocks.size(); ++i) {\n    *pBlockQtyOff++ = blocks[i].size(); // qty\n  }\n  for (size_t i = 0; i < blocks.size(); ++i) {\n    *pBlockQtyOff++ = blockOffsets[i]; // offset\n  }\n  /*\n   * Store block data.\n   */\n  uint16_t* pBlockIds = reinterpret_cast<uint16_t*>(pBlockQtyOff);\n\n  for (size_t i = 0; i < blocks.size(); ++i) {\n    dist_t* pBlockVals = reinterpret_cast<dist_t*>(pBlockIds + blocks[i].size());\n\n    for (size_t k = 0; k < blocks[i].size(); ++k) {\n      *pBlockIds++ = blocks[i][k].id_;\n      *pBlockVals++ = blocks[i][k].val_;\n    }\n\n    pBlockIds = reinterpret_cast<uint16_t*>(pBlockVals);\n  }\n\n  CHECK(reinterpret_cast<char*>(pBlockIds) - prBuff == (ssize_t)dataSize); \n}\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_sqfd.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_SQFD_H_\n#define _SPACE_SQFD_H_\n\n// Don't use on windows\n#if !defined(_MSC_VER)\n\n#include <string>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"distcomp.h\"\n\n#define SPACE_SQFD_HEURISTIC_FUNC \"sqfd_heuristic_func\"\n#define SPACE_SQFD_MINUS_FUNC     \"sqfd_minus_func\"\n#define SPACE_SQFD_GAUSSIAN_FUNC  \"sqfd_gaussian_func\"\n\n#define FAKE_FILE_NAME            \"fake_file\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nclass SqfdFunction {\n public:\n  virtual ~SqfdFunction() {}\n  virtual dist_t f(const dist_t* p1, const dist_t* p2, const int sz) const = 0;\n  virtual std::string StrDesc() const = 0;\n  virtual SqfdFunction<dist_t>* Clone() const = 0;\n};\n\ntemplate <typename dist_t>\nclass SqfdMinusFunction : public SqfdFunction<dist_t> {\n public:\n  dist_t f(const dist_t* p1, const dist_t* p2, const int sz) const {\n    return -L2NormSIMD(p1, p2, sz);\n  }\n  std::string StrDesc() const {\n    return \"minus function\";\n  }\n  virtual SqfdFunction<dist_t>* Clone() const {\n    return new SqfdMinusFunction<dist_t>(); // No parameters!!!!\n  }\n};\n\ntemplate <typename dist_t>\nclass SqfdHeuristicFunction : public SqfdFunction<dist_t> {\n public:\n  SqfdHeuristicFunction(float alpha) : alpha_(alpha) {}\n  dist_t f(const dist_t* p1, const dist_t* p2, const int sz) const {\n    return 1.0 / (alpha_ + L2NormSIMD(p1, p2, sz));\n  }\n  std::string StrDesc() const {\n    std::stringstream stream;\n    stream << \"heuristic function alpha=\" << alpha_;\n    return stream.str();\n  }\n  virtual SqfdFunction<dist_t>* Clone() const {\n    return new SqfdHeuristicFunction<dist_t>(alpha_);\n  }\n private:\n  float alpha_;\n};\n\ntemplate <typename dist_t>\nclass SqfdGaussianFunction : public SqfdFunction<dist_t> {\n public:\n  SqfdGaussianFunction(float alpha) : alpha_(alpha) {}\n  dist_t f(const dist_t* p1, const dist_t* p2, const int sz) const {\n    const dist_t d = L2NormSIMD(p1, p2, sz);\n    return exp(-alpha_ * d * d);\n  }\n  std::string StrDesc() const {\n    std::stringstream stream;\n    stream << \"gaussian function alpha=\" << alpha_;\n    return stream.str();\n  }\n  virtual SqfdFunction<dist_t>* Clone() const {\n    return new SqfdGaussianFunction<dist_t>(alpha_);\n  }\n private:\n  float alpha_;\n};\n\ntemplate <typename dist_t>\nclass SpaceSqfd : public Space<dist_t> {\n public:\n  SpaceSqfd(SqfdFunction<dist_t>* func);\n  virtual ~SpaceSqfd();\n\n  std::string StrDesc() const;\n\n  /** Standard functions to read/write/create objects */ \n  /*\n   * Create an object from string representation.\n   * If the input state pointer isn't null, we check\n   * if the new vector is consistent with previous output.\n   * If now previous output was seen, the state vector may be\n   * updated. For example, when we start reading vectors,\n   * we don't know the number of elements. When, we see the first\n   * vector, we memorize dimensionality. If a subsequently read\n   * vector has a different dimensionality, an exception will be thrown.\n   */\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const;\n  // Create a string representation of an object.\n  // It doesn't recreate the file name, b/c we don't memorize it.\n  // Instead it prints a fake entry.\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                              const string& outputFile) const;\n  /*\n   * Read a string representation of the next object in a file as well\n   * as its label. Return false, on EOF.\n   */\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /** End of standard functions to read/write/create objects */\n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const;\n\n  /*\n   * CreateDenseVectFromObj and GetElemQty() are only needed, if\n   * one wants to use methods with random projections.\n   */\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                   size_t nElem) const {\n    throw runtime_error(\"Cannot create vector for the space: \" + StrDesc());\n  }\n  virtual size_t GetElemQty(const Object* object) const {return 0;}\n protected:\n  DISABLE_COPY_AND_ASSIGN(SpaceSqfd);\n\n  dist_t HiddenDistance(\n      const Object* obj1,\n      const Object* obj2) const;\n private:\n  SqfdFunction<dist_t>* func_;\n};\n\n}  // namespace similarity\n\n#endif\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_string.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_STRING_H_\n#define _SPACE_STRING_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n\nnamespace similarity {\n\nusing std::string;\n\n/*\n * TODO: @leo/@bileg Currently we support only char, but need to support char32_t and UTF-8 as well. \n */\ntemplate <typename dist_t>\nclass StringSpace : public Space<dist_t> {\n public:\n  explicit StringSpace() {}\n  virtual ~StringSpace() {}\n\n  /** Standard functions to read/write/create objects */ \n  // Create an object from string representation.\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const {\n    // TODO double-check that sizeof(char) should always be 1 as guaranteed by the C++ standard\n    // then sizeof can be removed\n    return unique_ptr<Object>(new Object(id, label, s.size() * sizeof(char), s.c_str()));\n  }\n  // Create a string representation of an object.\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const ;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                              const string& outputFile) const ;\n  // Read a string representation of the next object in a file\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  // Write a string representation of the next object to a file\n  virtual void WriteNextObj(const Object& obj, const string& externId, DataFileOutputState &) const;\n  /** End of standard functions to read/write/create objects */ \n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const;\n\n  virtual string StrDesc() const = 0;\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                 size_t nElem) const {\n    throw runtime_error(\"Cannot create vector for the space: \" + StrDesc());\n  }\n  virtual size_t GetElemQty(const Object* object) const {return 0;}\n protected:\n  DISABLE_COPY_AND_ASSIGN(StringSpace);\n\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n  void ReadStr(std::string line, LabelType& label, std::string& str, size_t* pLineNum) const;\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_vector.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_VECTOR_H_\n#define _SPACE_VECTOR_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <sstream>\n#include <memory>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nclass VectorSpace : public Space<dist_t> {\n public:\n  explicit VectorSpace() {}\n  virtual ~VectorSpace() {}\n\n  /** Standard functions to read/write/create objects */ \n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                                DataFileInputState* pInpState) const;\n    // Create a string representation of an object.\n    virtual string CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const;\n    // Open a file for reading, fetch a header (if there is any) and memorize an input state\n    virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const;\n    // Open a file for writing, write a header (if there is any) and memorize an output state\n    virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                const string& outputFile) const;\n    /*\n     * Read a string representation of the next object in a file as well\n     * as its label. Return false, on EOF.\n     */\n    virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /** End of standard functions to read/write/create objects */ \n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const;\n\n  virtual Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const;\n  virtual size_t GetElemQty(const Object* object) const = 0;\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                 size_t nElem) const = 0;\n\n  static void ReadVec(std::string line, LabelType& label, std::vector<dist_t>& v);\n\nprotected:\n  DISABLE_COPY_AND_ASSIGN(VectorSpace);\n\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n\n  void CreateVectFromObjSimpleStorage(const char *pFuncName,\n                                 const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    const dist_t* pSrcVec = reinterpret_cast<const dist_t*>(obj->data());\n    const size_t len = GetElemQty(obj);\n    if (nElem > len) {\n      std::stringstream err;\n      err << pFuncName << \" The number of requested elements \"\n          << nElem << \" is larger than the actual number of elements \" << len;\n      throw runtime_error(err.str());\n    }\n    for (size_t i = 0; i < nElem; ++i) pDstVect[i]=pSrcVec[i];\n  }\n};\n\ntemplate <typename dist_t>\nclass VectorSpaceSimpleStorage : public VectorSpace<dist_t> {\n public:\n  virtual ~VectorSpaceSimpleStorage() {}\n  explicit VectorSpaceSimpleStorage() {}\n  virtual size_t GetElemQty(const Object* object) const {\n    return object->datalength()/ sizeof(dist_t);\n  }\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pDstVect,\n                                 size_t nElem) const {\n    VectorSpace<dist_t>::\n                CreateVectFromObjSimpleStorage(__func__, obj, pDstVect, nElem);\n  }\nprivate:\n  DISABLE_COPY_AND_ASSIGN(VectorSpaceSimpleStorage);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_vector_gen.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _SPACE_VECTOR_GEN_H_\n#define _SPACE_VECTOR_GEN_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n\n#include <space/space_vector.h>\n\nnamespace similarity {\n\n/*\n * A generic vector space: can be used with\n * an arbitrary distance function.\n */ \ntemplate <typename dist_t, typename DistObjType>\nclass VectorSpaceGen : public VectorSpaceSimpleStorage<dist_t> {\n public:\n  virtual ~VectorSpaceGen() {}\n  explicit VectorSpaceGen() {}\n\n  virtual void CreateDataset(ObjectVector& dataset, \n                            const vector<vector<dist_t>>& sourceData) {\n    fillDataSet(dataset, sourceData, NULL);\n  }\n\n  virtual void CreateDataset(ObjectVector& dataset, \n                            const vector<vector<dist_t>>& sourceData,\n                            const vector<LabelType>& labels) {\n    fillDataSet(dataset, sourceData, &labels);\n  }\n  virtual std::string StrDesc() const {\n    return \"custom space\";\n  }\n  Object* CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n    return VectorSpace<dist_t>::CreateObjFromVect(id, label, InpVect);\n  };\n protected:\n  DISABLE_COPY_AND_ASSIGN(VectorSpaceGen);\n\n  DistObjType      distObj_;\n\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const {\n    CHECK(obj1->datalength() > 0);\n    CHECK(obj1->datalength() == obj2->datalength());\n    const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n    const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n    const size_t length = obj1->datalength() / sizeof(dist_t);\n\n    return distObj_(x, y, length);\n  }\n  \n  void fillDataSet(ObjectVector& dataset, \n                   const vector<vector<dist_t>>& sourceData,\n                   const vector<LabelType>* pLabels) {\n    size_t dim = 0;\n\n    for (size_t index = 0; index < sourceData.size(); ++index) {\n      const vector<dist_t>& oneElem = sourceData[index];\n\n      size_t currDim = oneElem.size();\n\n      if (!dim) dim = currDim;\n      else {\n        if (dim != currDim) {\n          PREPARE_RUNTIME_ERR(err) << \"The # of vector elements (\" << currDim << \")\" <<\n                      \" doesn't match the # of elements in previous lines. (\" << dim << \" )\" <<\n                      \"Found mismatch, index : \" << (index + 1);\n          THROW_RUNTIME_ERR(err);\n        }\n      }\n      LabelType label = pLabels ? (*pLabels)[index] :  -1 ;\n      dataset.push_back(CreateObjFromVect(index, label, oneElem));\n    }\n  }\n\n};\n\n}  // namespace similarity\n\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space/space_word_embed.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _SPACE_WORD_EMBED_H_\n#define _SPACE_WORD_EMBED_H_\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <sstream>\n#include <memory>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"space_vector.h\"\n\n#define SPACE_WORD_EMBED              \"word_embed\"\n#define SPACE_WORD_EMBED_DIST_L2      \"l2\"\n#define SPACE_WORD_EMBED_DIST_COSINE  \"cosine\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::unique_ptr;\n\nenum EmbedDistSpace { kEmbedDistL2 = 0, kEmbedDistCosine = 1};\n\ntemplate <typename dist_t>\nclass WordEmbedSpace : public VectorSpaceSimpleStorage<dist_t> {\n public:\n  explicit WordEmbedSpace(EmbedDistSpace distType) : distType_(distType) {}\n  virtual ~WordEmbedSpace() {}\n\n  /** Standard functions to read/write/create objects */ \n    // Create a string representation of an object.\n    virtual string CreateStrFromObj(const Object* pObj, const string& externId) const;\n    /*\n     * Read a string representation of the next object in a file as well\n     * as its label. Return false, on EOF.\n     */\n    virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const;\n  /** End of standard functions to read/write/create objects */ \n  virtual string StrDesc() const;\n protected:\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const;\n  EmbedDistSpace distType_;\n\n  DISABLE_COPY_AND_ASSIGN(WordEmbedSpace);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/space.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef SPACE_H\n#define SPACE_H\n\n#include <string>\n#include <map>\n#include <stdexcept>\n#include <iostream>\n#include <cmath>\n#include <memory>\n#include <limits>\n#include <vector>\n\n#include <string.h>\n#include \"global.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"logging.h\"\n#include \"permutation_type.h\"\n\n#define LABEL_PREFIX \"label:\"\n\n#define DIST_TYPE_INT      \"int\"\n#define DIST_TYPE_FLOAT    \"float\"\n#define DIST_TYPE_DOUBLE   \"double\"\n\nnamespace similarity {\n\nusing std::map;\nusing std::string;\nusing std::ifstream;\nusing std::ofstream;\nusing std::pair;\nusing std::make_pair;\nusing std::runtime_error;\nusing std::hash;\n\ntemplate <typename dist_t>\nclass ExperimentConfig;\n\ntemplate <typename dist_t>\nconst char* DistTypeName();\n\ntemplate <> inline const char* DistTypeName<float>() { return \"FLOAT\"; }\ntemplate <> inline const char* DistTypeName<double>() { return \"DOUBLE\"; }\ntemplate <> inline const char* DistTypeName<int>() { return \"INT\"; }\ntemplate <typename dist_t> inline const char* DistTypeName() { return typeid(dist_t).name(); }\n\ntemplate <typename dist_t>\nclass Query;\n\ntemplate <typename dist_t>\nclass KNNQuery;\n\ntemplate <typename dist_t>\nclass RangeQuery;\n\ntemplate <typename dist_t>\nclass Experiments;\n\nstruct DataFileInputState {\n  virtual void Close() {};\n  virtual ~DataFileInputState(){};\n};\n\nstruct DataFileInputStateOneFile : public DataFileInputState {\n  virtual void Close() { inp_file_.close(); }\n  DataFileInputStateOneFile(const string& inpFileName) :\n                                          inp_file_(inpFileName.c_str()), line_num_(0) {\n\n    if (!inp_file_) {\n      PREPARE_RUNTIME_ERR(err) << \"Cannot open file: \" << inpFileName << \" for reading\";\n      THROW_RUNTIME_ERR(err);\n    }\n\n    inp_file_.exceptions(ios::badbit);\n  }\n  virtual ~DataFileInputStateOneFile(){};\n  ifstream        inp_file_;\n  size_t          line_num_;\n};\n\nstruct DataFileInputStateVec : public DataFileInputStateOneFile {\n  DataFileInputStateVec(const string& inpFileName) : DataFileInputStateOneFile(inpFileName), dim_(0) { } \n  unsigned        dim_;\n};\n\nstruct DataFileOutputState {\n  DataFileOutputState(const string& outputFile) : out_file_(outputFile.c_str()) {\n    out_file_.exceptions(std::ios::badbit | std::ios::failbit);\n  }\n  virtual void Close() { out_file_.close(); }\n  virtual ~DataFileOutputState(){};\n  ofstream out_file_;\n};\n\ntemplate <typename dist_t>\nclass Space {\n public:\n  explicit Space() {}\n  virtual ~Space() {}\n  // This function is public and it is not supposed to be used in the query-mode\n  dist_t IndexTimeDistance(const Object* obj1, const Object* obj2) const {\n    if (!bIndexPhase) {\n      throw runtime_error(string(\"The public function \") + __func__ + \n                                 \" function is accessible only during the indexing phase!\");\n    }\n    return HiddenDistance(obj1, obj2);\n  }\n\n  virtual dist_t ProxyDistance(const Object* obj1, const Object* obj2) const {\n    throw runtime_error(\"Not supported!\");\n  }\n\n  virtual string StrDesc() const = 0;\n\n  /** Standard functions to read/write/create objects */ \n  /*\n   * Create an object from string representation.\n   * If the input state pointer isn't null, we check\n   * if the new vector is consistent with previous output.\n   * If now previous output was seen, the state vector may be\n   * updated. For example, when we start reading vectors,\n   * we don't know the number of elements. When, we see the first\n   * vector, we memorize dimensionality. If a subsequently read\n   * vector has a different dimensionality, an exception will be thrown.\n   */\n  virtual unique_ptr<Object> CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                              DataFileInputState* pInpState) const = 0;\n  // Create a string representation of an object.\n  virtual string CreateStrFromObj(const Object* pObj, const string& externId) const = 0;\n  // Open a file for reading, fetch a header (if there is any) and memorize an input state\n  virtual unique_ptr<DataFileInputState> OpenReadFileHeader(const string& inputFile) const = 0;\n  // Open a file for writing, write a header (if there is any) and memorize an output state\n  virtual unique_ptr<DataFileOutputState> OpenWriteFileHeader(const ObjectVector& dataset, \n                                                              const string& outputFile) const = 0;\n  /*\n   * Read a string representation of the next object in a file as well\n   * as its label. Return false, on EOF.\n   */\n  virtual bool ReadNextObjStr(DataFileInputState &, string& strObj, LabelType& label, string& externId) const = 0;\n  /* \n   * Write a string representation of the next object to a file. We totally delegate\n   * this to a Space object, because it may package the string representation, by\n   * e.g., in the form of an XML fragment.\n   */\n  virtual void WriteNextObj(const Object& obj, const string& externId, DataFileOutputState &outState) const {\n    outState.out_file_ << CreateStrFromObj(&obj, externId) << endl;\n  }\n  /*\n   * This function allows setting space parameters (and creating additional parameter-dependent data structures)\n   * based on the content of the input file.\n   */\n  virtual void UpdateParamsFromFile(DataFileInputState& inpState) {}\n  /** End of standard functions to read/write/create objects as well as update state parameters */ \n\n  /*\n   * Used only for testing/debugging: compares objects approximately. Floating point numbers\n   * should be nearly equal. Integers and strings should coincide exactly.\n   */\n  virtual bool ApproxEqual(const Object& obj1, const Object& obj2) const = 0;\n\n  unique_ptr<DataFileInputState>  ReadDataset(ObjectVector& dataset,\n                   vector<string>& vExternIds,\n                   const string& inputFile,\n                   const IdTypeUnsign MaxNumObjects = MAX_DATASET_QTY) const;\n  void WriteDataset(const ObjectVector& dataset,\n                   const vector<string>& vExternIds,\n                   const string& inputFile,\n                   const IdTypeUnsign MaxNumObjects = MAX_DATASET_QTY) const;\n\n  /*\n   * For some real-valued or integer-valued *DENSE* vector spaces this function\n   * returns the number of vector elements. For all other spaces, it returns\n   * 0.\n   *\n   * TODO: @leo This seems to be related to issue #7\n   * https://github.com/searchivarius/NonMetricSpaceLib/issues/7\n   *\n   * With a proper hierarchy of Object classes, getDimension() would\n   * be a function of an object, not of a space. At some point Object\n   * must become smarter. Now it's a dumb container, while all the heavy\n   * lifting is done by a Space object.\n   *\n   */\n  virtual size_t GetElemQty(const Object* obj) const = 0;\n  /*\n   * For some dense vector spaces this function extracts the first nElem\n   * elements from the object. If nElem > getElemQty(), an exception\n   * will be thrown. For sparse vector spaces, the algorithm may \"hash\"\n   * several elements together by summing up their values.\n   *\n   * Non-vector spaces don't have to support this function, they may\n   * throw an exception.\n   */\n  virtual void CreateDenseVectFromObj(const Object* obj, dist_t* pVect,\n                                 size_t nElem) const = 0;\n protected:\n  void SetIndexPhase() const { bIndexPhase = true; }\n  void SetQueryPhase() const { bIndexPhase = false; }\n\n  friend class Query<dist_t>;\n  friend class RangeQuery<dist_t>;\n  friend class KNNQuery<dist_t>;\n  friend class Experiments<dist_t>;\n  /* \n   * This function is private, but it will be accessible by the friend class Query\n   * IndexTimeDistance access can be disable/enabled only by function friends \n   */\n  virtual dist_t HiddenDistance(const Object* obj1, const Object* obj2) const = 0;\n private:\n  bool mutable bIndexPhase = true;\n  \n  DISABLE_COPY_AND_ASSIGN(Space);\n};\n\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/spacefactory.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef SPACE_FACTORY_H\n#define SPACE_FACTORY_H\n\n#include <string>\n\n#include \"space.h\"\n#include \"space/space_lp.h\"\n#include \"space/space_bregman.h\"\n#include \"params.h\"\n\nnamespace similarity {\n\n#define REGISTER_SPACE_CREATOR(type, name, func)\\\n      SpaceFactoryRegistry<type>::Instance().Register(name, func);\n \n\ntemplate <typename dist_t>\nclass SpaceFactoryRegistry {\npublic:\n  typedef Space<dist_t>* (*CreateFuncPtr)(const AnyParams&);\n  static SpaceFactoryRegistry& Instance() {\n    static SpaceFactoryRegistry elem;\n\n    return elem;\n  }\n\n  void Register(const string& SpaceType, CreateFuncPtr func) {\n    LOG(LIB_INFO) << \"Registering at the factory, space: \" << SpaceType << \" distance type: \" << DistTypeName<dist_t>();\n    Creators_[SpaceType] = func;\n  }\n\n  Space<dist_t>* CreateSpace(const string& SpaceType, const AnyParams& SpaceParams) {\n    if (Creators_.count(SpaceType)) {\n      return Creators_[SpaceType](SpaceParams);\n    } else {\n      PREPARE_RUNTIME_ERR(err) << \"It looks like the space \" << SpaceType << \n                                  \" is not defined for the distance type : \" << DistTypeName<dist_t>();\n      THROW_RUNTIME_ERR(err);\n    }\n    return NULL;\n  }\nprivate:\n  map<string, CreateFuncPtr>  Creators_;\n};\n\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/tune.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef TUNE_H\n#define TUNE_H\n\n#include <vector>\n#include <map>\n#include <utility>\n#include <memory>\n#include <string>\n#include <sstream>\n#include <thread>\n\n#include \"experimentconf.h\"\n#include \"searchoracle.h\"\n#include \"logging.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"index.h\"\n\n//#define DETAILED_PRINT_INFO\n\nnamespace similarity {\n\nusing std::vector;\nusing std::map;\nusing std::make_pair;\nusing std::string;\nusing std::cout;\nusing std::end;\nusing std::stringstream;\n\ntemplate <typename dist_t>\nvoid GetOptimalAlphas(bool bPrintProgres,\n                      ExperimentConfig<dist_t>&     config, \n                      OptimMetric                   metric, \n                      float desiredRecall,\n                      const string&                 SpaceType,\n                      const string&                 methodName,\n                      const AnyParams&              IndexParams, \n                      AnyParams                     QueryTimeParams, \n                      float                         StepFactor, \n                      float                         alpha_left_base,\n                      float                         alpha_right_base,\n                      vector<shared_ptr<GoldStandardManager<dist_t>>>&  \n                                                    vManagerGS,\n                      vector<shared_ptr<Index<dist_t>>>&\n                                                    vIndexForAllSetsPtrs,\n                      float& recall, float& time_best, float& impr_best,\n                      float& alpha_left_best, unsigned exp_left,\n                      float& alpha_right_best, unsigned exp_right,\n                      unsigned MaxIter,\n                      unsigned MaxRecDepth,\n                      int StepN,\n                      float    maxCacheGSRelativeQty,\n                      unsigned recLevel) {\n  if (recLevel >= MaxRecDepth) {\n    if (bPrintProgres) {\n      cout << \"Reached the maximum recursion level: \" << recLevel << endl;\n    }\n    return;\n  }\n\n  size_t ThreadTestQty = thread::hardware_concurrency();\n\n  if (bPrintProgres) {\n    cout << \"================================================================\" << endl;\n    cout << ALPHA_LEFT_PARAM << \": \" << alpha_left_base << \" \" << ALPHA_RIGHT_PARAM << \": \" << alpha_right_base << endl;\n    cout << EXP_LEFT_PARAM << \": \" << exp_left << \" \" << EXP_RIGHT_PARAM \": \" << exp_right << endl;\n    cout << \"================================================================\" << endl;\n  }\n\n  QueryTimeParams.AddChangeParam(EXP_LEFT_PARAM, exp_left);\n  QueryTimeParams.AddChangeParam(EXP_RIGHT_PARAM, exp_right);\n\n  for (unsigned iter = 0; iter < MaxIter; ++iter) {\n    if (bPrintProgres) {\n      cout << \"Iteration: \" << iter << \" Level: \" << recLevel << \" StepFactor: \" << StepFactor << endl;\n    }\n    double MinRecall = 1.0;\n    double MaxRecall = 0;\n      \n    for (int left = -StepN; left < StepN; ++left) {\n      for (int right = -StepN; right < StepN; ++right) {\n        float alphaLeftCurr = alpha_left_base * pow(StepFactor, left);\n        float alphaRightCurr = alpha_right_base * pow(StepFactor, right);\n        QueryTimeParams.AddChangeParam(ALPHA_LEFT_PARAM, alphaLeftCurr);\n        QueryTimeParams.AddChangeParam(ALPHA_RIGHT_PARAM, alphaRightCurr);\n\n#ifdef DETAILED_PRINT_INFO\n        if (bPrintProgres) {\n          cout << \"left: \" << left << \" right: \" << right << endl;\n        }\n#endif\n\n        vector<vector<MetaAnalysis*>> ExpResRange(config.GetRange().size(),\n                                                vector<MetaAnalysis*>(1));\n        vector<vector<MetaAnalysis*>> ExpResKNN(config.GetKNN().size(),\n                                              vector<MetaAnalysis*>(1));\n\n        MetaAnalysis    Stat(config.GetTestSetToRunQty());\n\n        // Stat is used exactly only once: for one GetRange() or one GetKNN() (but not both)\n        for (size_t i = 0; i < config.GetRange().size(); ++i) {\n          ExpResRange[i][0] = &Stat;\n        }\n        for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n          ExpResKNN[i][0] = &Stat;\n        }\n        for (int TestSetId = 0; TestSetId < config.GetTestSetToRunQty(); ++TestSetId) {\n          config.SelectTestSet(TestSetId);\n#ifdef DETAILED_PRINT_INFO\n          if (bPrintProgres) {\n            cout << \"****************************************************\" << endl;\n            cout << \"*** Test set id: \" << TestSetId << \n                            \" (set qty: \" << config.GetTestSetToRunQty() << \")\" << \" iteration: \" << iter << \"\\t***\" << endl;\n            cout << \"****************************************************\" << endl;\n          }\n#endif\n          if (!vManagerGS[TestSetId].get()) {\n            vManagerGS[TestSetId].reset(new GoldStandardManager<dist_t>(config));\n            vManagerGS[TestSetId]->Compute(ThreadTestQty, maxCacheGSRelativeQty);\n          } else {\n#ifdef DETAILED_PRINT_INFO\n            if (bPrintProgres) {\n              cout << \"Using existing GS for test set id: \" << TestSetId << endl;\n            }\n#endif\n          }\n\n          std::shared_ptr<Index<dist_t>> MethodPtr = vIndexForAllSetsPtrs[TestSetId];\n          \n          if (!MethodPtr.get()) {\n            if (bPrintProgres) {\n              cout << \"Creating a new index, params: \" << IndexParams.ToString() << endl;\n            }\n            MethodPtr.reset(MethodFactoryRegistry<dist_t>::Instance().\n                                           CreateMethod(false, /* don't print the progress info, it's gonna be quick */\n                                                        methodName,\n                                                        SpaceType, config.GetSpace(), \n                                                        config.GetDataObjects()));\n            MethodPtr->CreateIndex(IndexParams);\n            vIndexForAllSetsPtrs[TestSetId] = MethodPtr;\n          } else {\n#ifdef DETAILED_PRINT_INFO\n            if (bPrintProgres) {\n              cout << \"Reusing an existing index, only reseting params\" << endl;\n            }\n#endif\n          }\n\n          vector<shared_ptr<AnyParams>> vQueryTimeParams;\n          vQueryTimeParams.push_back(shared_ptr<AnyParams>(new AnyParams(QueryTimeParams)));\n\n          Experiments<dist_t>::RunAll(false /* don't print info */, \n                                      ThreadTestQty,\n                                      TestSetId,\n                                      *vManagerGS[TestSetId],\n                                      ExpResRange, ExpResKNN,\n                                      config, \n                                      *MethodPtr,\n                                      vQueryTimeParams);\n        }\n        Stat.ComputeAll();\n        double impr_val = (metric == IMPR_DIST_COMP) ? Stat.GetImprDistCompAvg() : Stat.GetImprEfficiencyAvg();\n        if (Stat.GetRecallAvg() >= desiredRecall &&\n          impr_val > impr_best) {\n          recall =    Stat.GetRecallAvg();\n          time_best = Stat.GetQueryTimeAvg();\n          impr_best = impr_val;\n          alpha_left_best  = alphaLeftCurr; \n          alpha_right_best = alphaRightCurr; \n\n          if (bPrintProgres) {\n            cout << \" ************* BETTER EFFICIENCY POINT ******************* \" << endl;\n            cout << \"iteration: \" << iter << \" out of \" << MaxIter << endl;\n            cout << ALPHA_LEFT_PARAM  << \"=\" << alpha_left_best  << \" \" << EXP_LEFT_PARAM  << \"=\" << exp_left << \" \"\n                            ALPHA_RIGHT_PARAM << \"=\" << alpha_right_best << \" \" << EXP_RIGHT_PARAM << \"=\" << exp_right << endl;\n            cout << \"Recall: \" << Stat.GetRecallAvg() << endl;\n            cout << \"Query time: \" << Stat.GetQueryTimeAvg() << endl;\n            cout << \"Improvement metric value:  \" << impr_val << \" (\" << getOptimMetricName(metric) << \")\" << endl;\n            cout << \"Impr. in efficiency     : \" << Stat.GetImprEfficiencyAvg() << endl;\n            cout << \"Impr. in dist comp      :  \" << Stat.GetImprDistCompAvg() << endl;\n            cout << \" ********************************************************** \" << endl;\n          }\n        }\n        MinRecall = std::min(MinRecall, Stat.GetRecallAvg());\n        MaxRecall = std::max(MaxRecall, Stat.GetRecallAvg());\n      }\n    }\n\n    if (bPrintProgres) {\n      cout << \" ********** After iteration statistics ******************** \" << endl;\n      cout << \" Local: MinRecall: \" << MinRecall << \" MaxRecall: \" << MaxRecall << \" Desired: \" << desiredRecall << endl;\n\n      cout << \" Global: best improvement. \" << impr_best << \" Corresp. time: \"<< time_best << \" Corresp. Recall: \" << recall << endl;\n      cout << \" Using: \" << ALPHA_LEFT_PARAM  << \"=\" << alpha_left_best  << \" \" << EXP_LEFT_PARAM  << \"=\" << exp_left << \" \"\n                                  << ALPHA_RIGHT_PARAM << \"=\" << alpha_right_best << \" \" << EXP_RIGHT_PARAM << \"=\" << exp_right << endl;\n    }\n\n    // Now let's see, if we need to increase/decrease base alpha levels\n    if (MaxRecall < desiredRecall) {\n      // Two situations are possible\n      if (recall < desiredRecall) { \n        // we never got a required recall (including previous iterations), let's decrease existing alphas\n        // so that recall will go up.\n        alpha_left_base  = alpha_left_base / StepFactor;\n        alpha_right_base = alpha_right_base / StepFactor;\n\n        if (bPrintProgres) {\n          cout << \"[CHANGE] max recall < desired recall, setting alpha_left_base=\" << alpha_left_base << \" alpha_right_base=\" << alpha_right_base << endl;\n        }\n      } else {\n        // we encountered the required recall before, but we somehow managed to select\n        // large alphas, so that in THIS ITERATION even the maximum recall is below desiredRecall.\n        // If this is the case, let's return to the previously know good point,\n        // with a decreased step factor.\n        if (bPrintProgres) {\n          cout << \"[CHANGE] max recall < desired recall, setting alpha_left_base=\" << alpha_left_base << \" alpha_right_base=\" << alpha_right_base << endl;\n        }\n\n        GetOptimalAlphas(bPrintProgres,\n                   config, \n                   metric, desiredRecall,\n                   SpaceType, methodName,\n                   IndexParams, QueryTimeParams,\n                   sqrt(StepFactor), alpha_left_best, alpha_right_best,\n                   vManagerGS, vIndexForAllSetsPtrs,\n                   recall, time_best, impr_best,\n                   alpha_left_best, exp_left,\n                   alpha_right_best, exp_right,\n                   MaxIter, MaxRecDepth, StepN, maxCacheGSRelativeQty,\n                   recLevel + 1);\n        return;\n      }\n    } else if (MinRecall > desiredRecall) {\n    /* \n     * If we are above the minimum recall, this means we chose alphas two pessimistically.\n     * Let's multiply our best values so far by StepFactor.\n     */\n      alpha_left_base  = alpha_left_best * StepFactor;\n      alpha_right_base = alpha_right_best * StepFactor;\n      if (bPrintProgres) {\n        cout << \"[CHANGE] max recall > desired recall, setting alpha_left_base=\" << alpha_left_base << \" alpha_right_base=\" << alpha_right_base << endl;\n      }\n    } else {\n      CHECK(MaxRecall >= desiredRecall && MinRecall <= desiredRecall); \n        // Let's return to the previously know good point,\n        // with a decreased step factor.\n\n      if (bPrintProgres) {\n        cout << \"[CHANGE] desired recall is between min and max recall, decreasing factor, setting alpha_left_base=\" << alpha_left_best << \" alpha_right_base=\" << alpha_right_best << endl;\n      }\n\n      GetOptimalAlphas(bPrintProgres,\n                   config, \n                   metric, desiredRecall,\n                   SpaceType, methodName,\n                   IndexParams, QueryTimeParams,\n                   sqrt(StepFactor), alpha_left_best, alpha_right_best,\n                   vManagerGS, vIndexForAllSetsPtrs,\n                   recall, time_best, impr_best,\n                   alpha_left_best, exp_right,\n                   alpha_right_best, exp_right,\n                   MaxIter, MaxRecDepth, StepN, maxCacheGSRelativeQty,\n                   recLevel + 1);\n      return;\n    }\n  }\n\n  if (bPrintProgres) {\n    cout << \"Exhausted \" << MaxIter << \" iterations\" << endl;\n  }\n}\n\ntemplate <typename dist_t>\nvoid GetOptimalAlphas(bool bPrintProgres,\n                      ExperimentConfig<dist_t>& config, \n                      OptimMetric               metric, \n                      float                     desiredRecall,\n                      const string&             SpaceType,\n                      const string&             methodName,\n                      const AnyParams           IndexParams, \n                      AnyParams                 QueryTimeParams, \n                      float& recall, float& time_best, float& impr_best,\n                      float& alpha_left_best,  unsigned exp_left,\n                      float& alpha_right_best, unsigned exp_right,\n                      unsigned               MaxIter,\n                      unsigned               MaxRecDepth,\n                      unsigned               StepN,\n                      float                  FullFactor,\n                      float                  maxCacheGSRelativeQty) {\n  time_best = std::numeric_limits<float>::max();\n  impr_best = 0;\n  recall = 0;\n\n  if (bPrintProgres) {\n    cout << EXP_LEFT_PARAM << \": \" << exp_left << \" \" << EXP_RIGHT_PARAM \": \" << exp_right << endl;\n  }\n\n  if (bPrintProgres) {\n    cout << \"Method index parameters:      \" << IndexParams.ToString() << endl;\n    cout << \"Method query-time parameters: \" << QueryTimeParams.ToString() << endl;\n  }\n\n  vector<shared_ptr<GoldStandardManager<dist_t>>>  vManagerGS(config.GetTestSetToRunQty());\n  vector<shared_ptr<Index<dist_t>>>                vIndexForAllSetsPtrs(config.GetTestSetToRunQty());\n\n  GetOptimalAlphas(bPrintProgres, \n                   config, \n                   metric, desiredRecall,\n                   SpaceType, methodName,\n                   IndexParams, QueryTimeParams,\n                   pow(FullFactor, 1.0/StepN), alpha_left_best, alpha_right_best,\n                   vManagerGS, vIndexForAllSetsPtrs,\n                   recall, time_best, impr_best,\n                   alpha_left_best, exp_right,\n                   alpha_right_best, exp_right,\n                   MaxIter, MaxRecDepth, StepN, maxCacheGSRelativeQty,\n                   0 /* recLevel */);\n}\n\n}\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/utils.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _UTILS_H_\n#define _UTILS_H_\n\n#include <cctype>\n#include <cstddef>\n#include <cmath>\n#include <cstdint>\n#include <algorithm>\n#include <sstream>\n#include <string>\n#include <vector>\n#include <cstring>\n#include <cctype>\n#include <map>\n#include <typeinfo>\n#include <random>\n#include <climits>\n#include <stdexcept>\n\n#include \"idtype.h\"\n\n// compiler_warning.h\n#define STRINGISE_IMPL(x) #x\n#define STRINGISE(x) STRINGISE_IMPL(x)\n\n/*\n * This solution for generating\n * cross-platform warnings\n * is taken from http://stackoverflow.com/a/1911632/2120401\n * Use: #pragma message WARN(\"My message\")\n *\n * Note: We may need other other definitions for other compilers,\n *       but so far it worked for MSVS, GCC, CLang, and Intel.\n */\n#   define FILE_LINE_LINK __FILE__ \"(\" STRINGISE(__LINE__) \") : \"\n#   define WARN(exp) (FILE_LINE_LINK \"WARNING: \" exp)\n\n#ifdef _MSC_VER\n#define PATH_SEPARATOR \"\\\\\"\n#else \n#define PATH_SEPARATOR \"/\"\n#endif\n\n\n#ifdef _MSC_VER\n#define ISNAN _isnan\n#define __func__ __FUNCTION__ \n#else\n#define ISNAN std::isnan\n#endif\n\n#if defined(_MSC_VER)\n#include <BaseTsd.h>\ntypedef SSIZE_T ssize_t;\n#endif\n\n#define FIELD_DELIMITER ':'\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::stringstream;\nusing std::random_device;\nusing std::mt19937;\n\nusing namespace std;\n\n\nconst char* GetFileName(const char* fullpath);\n\nbool CreateDir(const char* name, int mode = 0777);\n\nbool DoesFileExist(const char *filename);\n\ninline bool DoesFileExist(const string &filename) { return DoesFileExist(filename.c_str()); }\n\ninline int RandomInt() {\n    // Static is thread-safe in C++ 11\n    static random_device rdev;\n    static mt19937 gen(rdev());\n    static std::uniform_int_distribution<int> distr(0, std::numeric_limits<int>::max());\n   \n    return distr(gen); \n}\n\ntemplate <class T>\ninline T RandomReal() {\n    // Static is thread-safe in C++ 11\n    static random_device rdev;\n    static mt19937 gen(rdev());\n    static std::uniform_real_distribution<T> distr(0, 1);\n\n    return distr(gen); \n}\n\nvoid RStrip(char* str);\n\ndouble Mean(const double* array, const unsigned size);\n\ndouble Variance(const double* array, const unsigned size);\n\ndouble Variance(const double* array, const unsigned size, const double mean);\n\ndouble StdDev(const double* array, const unsigned size);\n\n/*\n * A maximum number of random operations (e.g. while searching\n * for a pivot with given properties) before giving up and firing\n * an exception.\n */\n#define MAX_RAND_ITER_BEFORE_GIVE_UP 100000\n\n/*\n * We want to avoid an overflow in the case when the distance is an integer type.\n */\ntemplate <typename dist_t>\ninline dist_t DistMax() {\n  return std::numeric_limits<dist_t>::max() / 2;\n}\n\n/* \n * 1. For floating-point numbers let's consider numbers to be \n * equal if they are within 4 units in the last place (ULPs)\n * Or, if the numbers are smaller than 2*numeric_limits<T>::epsilon()\n * 2. For integral types an approximate equality is the same as an exact equality.\n */\n#define MAX_ULPS 4\n\ntemplate <typename T>\nbool ApproxEqual(const T& x, const T& y, unsigned maxUlps = MAX_ULPS);\n\ninline double round1(double x) { return round(x*10.0)/10.0; }\ninline double round2(double x) { return round(x*100.0)/100.0; }\ninline double round3(double x) { return round(x*1000.0)/1000.0; }\ninline double round6(double x) { return round(x*1000000.0)/1000000.0; }\n/*\n * This function will only work for strings without spaces and commas\n * TODO(@leo) replace, perhaps, it with a more generic version.\n * In particular, we want to be able to escape both spaces and commas.\n */\ntemplate <typename ElemType>\ninline bool SplitStr(const std::string& str_, vector<ElemType>& res, const char SplitChar) {\n  res.clear();\n\n  if (str_.empty()) return true;\n\n  std::string str = str_;\n\n  for (auto it = str.begin(); it != str.end(); ++it) {\n    if (*it == SplitChar) *it = ' ';\n  }\n  std::stringstream inp(str);\n\n  while (!inp.eof()) {\n    ElemType token;\n    if (!(inp >> token)) {\n      return false;\n    }\n    res.push_back(token);\n  }\n\n  return true;\n}\n\ntemplate <typename ElemType>\ninline std::string MergeIntoStr(const std::vector<ElemType>& ve, char MergeChar) {\n  std::stringstream res;\n\n  for (size_t i = 0; i < ve.size(); ++i) {\n    if (i) res << MergeChar;\n    res << ve[i];\n  }\n\n  return res.str();\n}\n\ntemplate <typename obj_type>\ninline string ConvertToString(const obj_type& o) {\n  std::stringstream str;\n  str << o;\n  return str.str();\n}\n\ntemplate <>\ninline string ConvertToString<string>(const string& o) {\n  return o;\n}\n\ntemplate <typename obj_type>\ninline void ConvertFromString(const string& s, obj_type& o) {\n  std::stringstream str(s);\n  if (!(str >> o) || !str.eof()) {\n    throw runtime_error(\"Cannot convert '\" + s +\n                        \"' to the type:\" + string(typeid(obj_type).name()));\n  }\n}\n\ntemplate <>\ninline void ConvertFromString<string>(const string& s, string& o) {\n  o = s;\n}\n\n/*\n * \"fields\" each occupy a single line, they are in the format:\n * fieldName:fieldValue.\n */\n\ntemplate <typename FieldType>\ninline void ReadField(istream &in, const string& fieldName, FieldType& fieldValue) {\n  string s;\n  if (!getline(in, s)) throw runtime_error(\"Error reading a field value\");\n  if (s.empty()) {\n    throw runtime_error(\"Empty field!\");\n  }\n  string::size_type p = s.find(FIELD_DELIMITER);\n  if (string::npos == p)\n    throw runtime_error(\"Wrong field format, no delimiter: '\" + s + \"'\");\n  string gotFieldName = s.substr(0, p);\n  if (gotFieldName != fieldName) {\n    throw runtime_error(\"Expected field '\" + fieldName + \"' but got: '\"\n                        + gotFieldName + \"'\");\n  }\n  ConvertFromString(s.substr(p + 1), fieldValue);\n}\n\ntemplate <typename FieldType>\ninline void WriteField(ostream& out, const string& fieldName, const FieldType& fieldValue) {\n  if (!(out << fieldName << \":\" << fieldValue << std::endl)) {\n    throw\n        runtime_error(\"Error writing to an output stream, field name: \" + fieldName);\n  }\n}\n\ninline void ToLower(string &s) {\n  for (size_t i = 0; i < s.size(); ++i) s[i] = std::tolower(s[i]);\n}\n\ninline bool StartsWith(const std::string& str, const std::string& prefix) {\n  return str.length() >= prefix.length() &&\n         str.substr(0, prefix.length()) == prefix;\n}\n\ninline bool HasWhiteSpace(const string& s) {\n  for (char c: s)\n  if (std::isspace(c)) return true;\n  return false;\n}\n\n// Don't remove period here\ninline void ReplaceSomePunct(string &s) {\n  for (size_t i = 0; i < s.size(); ++i)\n    if (s[i] == ',' || s[i] == FIELD_DELIMITER) s[i] = ' ';\n}\n\ntemplate <class T>\nstruct AutoVectDel {\n  AutoVectDel(typename std::vector<T *>& Vector) : mVector(Vector) {}\n  ~AutoVectDel() {\n    for (auto i: mVector) { delete i; }\n  }\n  std::vector<T *>& mVector;\n};\n\ntemplate <class U, class V>\nstruct AutoMapDel {\n  AutoMapDel(typename std::map<U, V*>& Map) : mMap(Map) {}\n  ~AutoMapDel() {\n    for (auto i: mMap) { delete i.second; }\n  }\n    typename std::map<U, V*>& mMap;\n};\n\ntemplate <class U, class V>\nstruct AutoMultiMapDel {\n  AutoMultiMapDel(typename std::multimap<U, V*>& Map) : mMap(Map) {}\n  ~AutoMultiMapDel() {\n    for (auto i: mMap) { delete i.second; }\n  }\n    typename std::multimap<U, V*>& mMap;\n};\n\n}  // namespace similarity\n\n#endif   // _UTILS_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/utils.h~",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _UTILS_H_\n#define _UTILS_H_\n\n#include <cctype>\n#include <cstddef>\n#include <cmath>\n#include <cstdint>\n#include <algorithm>\n#include <sstream>\n#include <string>\n#include <vector>\n#include <cstring>\n#include <cctype>\n#include <map>\n#include <typeinfo>\n#include <random>\n#include <climits>\n#include <stdexcept>\n\n#include \"idtype.h\"\n\n// compiler_warning.h\n#define STRINGISE_IMPL(x) #x\n#define STRINGISE(x) STRINGISE_IMPL(x)\n\n/*\n * This solution for generating\n * cross-platform warnings\n * is taken from http://stackoverflow.com/a/1911632/2120401\n * Use: #pragma message WARN(\"My message\")\n *\n * Note: We may need other other definitions for other compilers,\n *       but so far it worked for MSVS, GCC, CLang, and Intel.\n */\n#   define FILE_LINE_LINK __FILE__ \"(\" STRINGISE(__LINE__) \") : \"\n#   define WARN(exp) (FILE_LINE_LINK \"WARNING: \" exp)\n\n#ifdef _MSC_VER\n#define PATH_SEPARATOR \"\\\\\"\n#else \n#define PATH_SEPARATOR \"/\"\n#endif\n\n\n#ifdef _MSC_VER\n#define ISNAN _isnan\n#define __func__ __FUNCTION__ \n#else\n#define ISNAN std::isnan\n#endif\n\n#if defined(_MSC_VER)\n#include <BaseTsd.h>\ntypedef SSIZE_T ssize_t;\n#endif\n\n#define FIELD_DELIMITER ':'\n\nnamespace similarity {\n\nusing std::string;\nusing std::vector;\nusing std::stringstream;\nusing std::random_device;\nusing std::mt19937;\n\nusing namespace std;\n\n\nconst char* GetFileName(const char* fullpath);\n\nbool CreateDir(const char* name, int mode = 0777);\n\nbool DoesFileExist(const char *filename);\n\ninline bool DoesFileExist(const string &filename) { return DoesFileExist(filename.c_str()); }\n\ninline int RandomInt() {\n    // Static is thread-safe in C++ 11\n    static random_device rdev;\n    static mt19937 gen(rdev());\n    static std::uniform_int_distribution<int> distr(0, std::numeric_limits<int>::max());\n   \n    return distr(gen); \n}\n\ntemplate <class T>\ninline T RandomReal() {\n    // Static is thread-safe in C++ 11\n    static random_device rdev;\n    static mt19937 gen(rdev());\n    static std::uniform_real_distribution<T> distr(0, 1);\n\n    return distr(gen); \n}\n\nvoid RStrip(char* str);\n\ndouble Mean(const double* array, const unsigned size);\n\ndouble Variance(const double* array, const unsigned size);\n\ndouble Variance(const double* array, const unsigned size, const double mean);\n\ndouble StdDev(const double* array, const unsigned size);\n\n/*\n * A maximum number of random operations (e.g. while searching\n * for a pivot with given properties) before giving up and firing\n * an exception.\n */\n#define MAX_RAND_ITER_BEFORE_GIVE_UP 100000\n\n/*\n * We want to avoid an overflow in the case when the distance is an integer type.\n */\ntemplate <typename dist_t>\ninline dist_t DistMax() {\n  return std::numeric_limits<dist_t>::max() / 2;\n}\n\n/* \n * 1. For floating-point numbers let's consider numbers to be \n * equal if they are within 4 units in the last place (ULPs)\n * Or, if the numbers are smaller than 2*numeric_limits<T>::epsilon()\n * 2. For integral types an approximate equality is the same as an exact equality.\n */\n#define MAX_ULPS 4\n\ntemplate <typename T>\nbool ApproxEqual(const T& x, const T& y, unsigned maxUlps = MAX_ULPS);\n\ninline double round1(double x) { return round(x*10.0)/10.0; }\ninline double round2(double x) { return round(x*100.0)/100.0; }\ninline double round3(double x) { return round(x*1000.0)/1000.0; }\n\n/*\n * This function will only work for strings without spaces and commas\n * TODO(@leo) replace, perhaps, it with a more generic version.\n * In particular, we want to be able to escape both spaces and commas.\n */\ntemplate <typename ElemType>\ninline bool SplitStr(const std::string& str_, vector<ElemType>& res, const char SplitChar) {\n  res.clear();\n\n  if (str_.empty()) return true;\n\n  std::string str = str_;\n\n  for (auto it = str.begin(); it != str.end(); ++it) {\n    if (*it == SplitChar) *it = ' ';\n  }\n  std::stringstream inp(str);\n\n  while (!inp.eof()) {\n    ElemType token;\n    if (!(inp >> token)) {\n      return false;\n    }\n    res.push_back(token);\n  }\n\n  return true;\n}\n\ntemplate <typename ElemType>\ninline std::string MergeIntoStr(const std::vector<ElemType>& ve, char MergeChar) {\n  std::stringstream res;\n\n  for (size_t i = 0; i < ve.size(); ++i) {\n    if (i) res << MergeChar;\n    res << ve[i];\n  }\n\n  return res.str();\n}\n\ntemplate <typename obj_type>\ninline string ConvertToString(const obj_type& o) {\n  std::stringstream str;\n  str << o;\n  return str.str();\n}\n\ntemplate <>\ninline string ConvertToString<string>(const string& o) {\n  return o;\n}\n\ntemplate <typename obj_type>\ninline void ConvertFromString(const string& s, obj_type& o) {\n  std::stringstream str(s);\n  if (!(str >> o) || !str.eof()) {\n    throw runtime_error(\"Cannot convert '\" + s +\n                        \"' to the type:\" + string(typeid(obj_type).name()));\n  }\n}\n\ntemplate <>\ninline void ConvertFromString<string>(const string& s, string& o) {\n  o = s;\n}\n\n/*\n * \"fields\" each occupy a single line, they are in the format:\n * fieldName:fieldValue.\n */\n\ntemplate <typename FieldType>\ninline void ReadField(istream &in, const string& fieldName, FieldType& fieldValue) {\n  string s;\n  if (!getline(in, s)) throw runtime_error(\"Error reading a field value\");\n  if (s.empty()) {\n    throw runtime_error(\"Empty field!\");\n  }\n  string::size_type p = s.find(FIELD_DELIMITER);\n  if (string::npos == p)\n    throw runtime_error(\"Wrong field format, no delimiter: '\" + s + \"'\");\n  string gotFieldName = s.substr(0, p);\n  if (gotFieldName != fieldName) {\n    throw runtime_error(\"Expected field '\" + fieldName + \"' but got: '\"\n                        + gotFieldName + \"'\");\n  }\n  ConvertFromString(s.substr(p + 1), fieldValue);\n}\n\ntemplate <typename FieldType>\ninline void WriteField(ostream& out, const string& fieldName, const FieldType& fieldValue) {\n  if (!(out << fieldName << \":\" << fieldValue << std::endl)) {\n    throw\n        runtime_error(\"Error writing to an output stream, field name: \" + fieldName);\n  }\n}\n\ninline void ToLower(string &s) {\n  for (size_t i = 0; i < s.size(); ++i) s[i] = std::tolower(s[i]);\n}\n\ninline bool StartsWith(const std::string& str, const std::string& prefix) {\n  return str.length() >= prefix.length() &&\n         str.substr(0, prefix.length()) == prefix;\n}\n\ninline bool HasWhiteSpace(const string& s) {\n  for (char c: s)\n  if (std::isspace(c)) return true;\n  return false;\n}\n\n// Don't remove period here\ninline void ReplaceSomePunct(string &s) {\n  for (size_t i = 0; i < s.size(); ++i)\n    if (s[i] == ',' || s[i] == FIELD_DELIMITER) s[i] = ' ';\n}\n\ntemplate <class T>\nstruct AutoVectDel {\n  AutoVectDel(typename std::vector<T *>& Vector) : mVector(Vector) {}\n  ~AutoVectDel() {\n    for (auto i: mVector) { delete i; }\n  }\n  std::vector<T *>& mVector;\n};\n\ntemplate <class U, class V>\nstruct AutoMapDel {\n  AutoMapDel(typename std::map<U, V*>& Map) : mMap(Map) {}\n  ~AutoMapDel() {\n    for (auto i: mMap) { delete i.second; }\n  }\n    typename std::map<U, V*>& mMap;\n};\n\ntemplate <class U, class V>\nstruct AutoMultiMapDel {\n  AutoMultiMapDel(typename std::multimap<U, V*>& Map) : mMap(Map) {}\n  ~AutoMultiMapDel() {\n    for (auto i: mMap) { delete i.second; }\n  }\n    typename std::multimap<U, V*>& mMap;\n};\n\n}  // namespace similarity\n\n#endif   // _UTILS_H_\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/include/ztimer.h",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib\n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n#ifndef _CHRONO_TIMER_H_\n#define _CHRONO_TIMER_H_\n\n#include <chrono>\n#include <cstdint>\n#include <cmath>\n\nusing namespace std::chrono;\nusing std::round;\n\nclass WallClockTimer {\npublic:\n  high_resolution_clock::time_point t1, t2;\n\n  WallClockTimer() {\n    reset();\n  }\n\n  void reset() {\n    t1 = high_resolution_clock::now();\n    t2 = t1;\n  }\n\n  uint64_t elapsed() {\n    duration<double> elapsed_seconds = t2 - t1;\n    return static_cast<uint64_t>(round(1e6 * elapsed_seconds.count()));\n  }\n\n  uint64_t split() {\n    t2 = high_resolution_clock::now();\n    return elapsed();\n  }\n};\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/launches/sample.launch",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<launchConfiguration type=\"org.eclipse.cdt.launch.applicationLaunchType\">\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.AUTO_SOLIB\" value=\"true\"/>\n<listAttribute key=\"org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST\"/>\n<stringAttribute key=\"org.eclipse.cdt.dsf.gdb.DEBUG_NAME\" value=\"gdb\"/>\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK\" value=\"false\"/>\n<stringAttribute key=\"org.eclipse.cdt.dsf.gdb.GDB_INIT\" value=\".gdbinit\"/>\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.NON_STOP\" value=\"false\"/>\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.REVERSE\" value=\"false\"/>\n<listAttribute key=\"org.eclipse.cdt.dsf.gdb.SOLIB_PATH\"/>\n<stringAttribute key=\"org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE\" value=\"TP_NORMAL_ONLY\"/>\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND\" value=\"false\"/>\n<booleanAttribute key=\"org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab.DEFAULTS_SET\" value=\"true\"/>\n<intAttribute key=\"org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR\" value=\"1\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.COREFILE_PATH\" value=\"\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.DEBUGGER_ID\" value=\"gdb\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS\" value=\"\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.DEBUGGER_START_MODE\" value=\"run\"/>\n<booleanAttribute key=\"org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN\" value=\"false\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL\" value=\"main\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.PROGRAM_ARGUMENTS\" value=\"-s cosinesimil_sparse_fast -i /home/leo/TextCollect/Reuters/reuters.txt  -g gs_cache/reuters -b 1 -Q 500  -m sw-graph -c NN=10,efConstruction=400,initIndexAttempts=1  -t efSearch=25,initSearchAttempts=1   -k 10    -L sw-graph-reuters-NN=10,efConstruction=400,initIndexAttempts=1\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.PROGRAM_NAME\" value=\"/home/leo/SourceTreeGit/NonMetricSpaceLib.pserv/similarity_search/debug/experiment\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.PROJECT_ATTR\" value=\"Non-Metric-Space-Library\"/>\n<booleanAttribute key=\"org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR\" value=\"false\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR\" value=\"0.719730696\"/>\n<stringAttribute key=\"org.eclipse.cdt.launch.WORKING_DIRECTORY\" value=\"/home/leo/SourceTreeGit/NonMetricSpaceLib.pserv/similarity_search\"/>\n<listAttribute key=\"org.eclipse.debug.core.MAPPED_RESOURCE_PATHS\">\n<listEntry value=\"/Non-Metric-Space-Library\"/>\n</listAttribute>\n<listAttribute key=\"org.eclipse.debug.core.MAPPED_RESOURCE_TYPES\">\n<listEntry value=\"4\"/>\n</listAttribute>\n<stringAttribute key=\"org.eclipse.dsf.launch.MEMORY_BLOCKS\" value=\"&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#10;\"/>\n<stringAttribute key=\"process_factory_id\" value=\"org.eclipse.cdt.dsf.gdb.GdbProcessFactory\"/>\n</launchConfiguration>\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\ncstddef\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/detail/workaround.hpp\nboost/type_traits/alignment_of.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/alignment_of.hpp\nboost/type_traits/type_with_alignment.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/type_with_alignment.hpp\nboost/type_traits/is_pod.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/is_pod.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/mpl/eval_if.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/mpl/identity.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/bool_trait_undef.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nboost/atomic/atomic.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nboost/atomic/capabilities.hpp\n-\nboost/atomic/fences.hpp\n-\nboost/atomic/atomic_flag.hpp\n-\nboost/atomic/detail/atomic_template.hpp\n-\nboost/atomic/detail/operations.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nboost/atomic/capabilities.hpp\n-\nboost/atomic/detail/operations.hpp\n-\nboost/atomic/detail/atomic_flag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/platform.hpp\n-\nboost/atomic/detail/int_sizes.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nboost/assert.hpp\n-\nboost/memory_order.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/operations_lockfree.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\ncstddef\n-\nboost/cstdint.hpp\n-\nboost/assert.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/casts.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\ncstring\n-\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nboost/atomic/detail/config.hpp\n-\nlimits.h\n-\nboost/cstdint.hpp\n-\nwchar.h\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nboost/atomic/detail/config.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nboost/atomic/detail/operations_lockfree.hpp\n-\nboost/atomic/detail/ops_emulated.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/platform.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nboost/memory_order.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/storage_type.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\nboost/atomic/detail/lockpool.hpp\n-\nboost/atomic/capabilities.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\ncstring\n-\nboost/cstdint.hpp\n-\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nboost/memory_order.hpp\n-\nboost/atomic/capabilities.hpp\n-\nboost/atomic/detail/operations.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/call_traits.hpp\nboost/config.hpp\n-\nboost/detail/call_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/call_traits.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nmemory\n-\ncstddef\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/mpl/bool.hpp\nboost/type_traits/has_nothrow_copy.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/type_traits/has_nothrow_copy.hpp\nboost/mpl/void.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/mpl/void.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nboost/dynamic_bitset/dynamic_bitset.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/dynamic_bitset/dynamic_bitset.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nassert.h\n-\nstring\n-\nstdexcept\n-\nalgorithm\n-\nvector\n-\nclimits\n-\nboost/dynamic_bitset/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/dynamic_bitset/config.hpp\nlocale\n-\niostream.h\n-\nctype.h\n-\nistream\n-\nostream\n-\nboost/dynamic_bitset_fwd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/dynamic_bitset_fwd.hpp\nboost/detail/dynamic_bitset.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/dynamic_bitset.hpp\nboost/detail/iterator.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/iterator.hpp\nboost/move/move.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/move/move.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/limits.hpp\nboost/pending/lowest_bit.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/pending/lowest_bit.hpp\nboost/static_assert.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/static_assert.hpp\nboost/utility/addressof.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/utility/addressof.hpp\nboost/detail/no_exceptions_support.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/no_exceptions_support.hpp\nboost/throw_exception.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/throw_exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\ncstddef\n-\nutility\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/noncopyable.hpp\n-\nboost/range/end.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/rend.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/reverse_iterator.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/foreach_fwd.hpp\n-\nnew\n-\nboost/aligned_storage.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nvector\n-\nstring\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nlocale\n-\nboost/format/detail/compat_workarounds.hpp\n-\ncctype\n-\nboost/format/format_fwd.hpp\n-\nboost/format/internals_fwd.hpp\n-\nboost/format/internals.hpp\n-\nboost/format/format_class.hpp\n-\nboost/format/exceptions.hpp\n-\nboost/format/format_implementation.hpp\n-\nboost/format/group.hpp\n-\nboost/format/feed_args.hpp\n-\nboost/format/parsing.hpp\n-\nboost/format/free_funcs.hpp\n-\nboost/format/detail/unset_macros.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nstring\n-\nboost/format/detail/compat_workarounds.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/assert.hpp\n-\nboost/format/alt_sstream_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nboost/format/detail/config_macros.hpp\n-\nstreambuf\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/format/detail/workarounds_gcc-2_95.hpp\n-\nboost/format/detail/workarounds_stlport.hpp\n-\nlocale\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nboost/format/group.hpp\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\niostream\n-\nstreambuf.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nstdexcept\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nboost/config.hpp\n-\nboost/assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/format/format_class.hpp\n-\nboost/format/group.hpp\n-\nboost/format/detail/msvc_disambiguater.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nvector\n-\nstring\n-\nboost/optional.hpp\n-\nboost/format/format_fwd.hpp\n-\nboost/format/internals_fwd.hpp\n-\nboost/format/internals.hpp\n-\nboost/format/alt_sstream.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nstring\n-\niosfwd\n-\nboost/format/detail/compat_workarounds.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nboost/config.hpp\n-\nboost/throw_exception.hpp\n-\nboost/assert.hpp\n-\nboost/format/format_class.hpp\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nboost/format/format_class.hpp\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nstring\n-\nboost/assert.hpp\n-\nboost/optional.hpp\n-\nboost/limits.hpp\n-\nboost/format/detail/compat_workarounds.hpp\n-\nboost/format/alt_sstream.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nboost/format/format_fwd.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nboost/format/format_class.hpp\n-\nboost/format/exceptions.hpp\n-\nboost/throw_exception.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional.hpp\nboost/config.hpp\n-\nboost/call_traits.hpp\n-\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/mpl/begin.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/mpl/end.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/mpl_iterator_category.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/prior.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/distance.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/struct/adapt_struct.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/preprocessor/comparison/equal.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/adapted/struct/detail/extension.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_base.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n-\nboost/fusion/adapted/struct/detail/at_impl.hpp\n-\nboost/fusion/adapted/struct/detail/is_view_impl.hpp\n-\nboost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n-\nboost/fusion/adapted/struct/detail/value_at_impl.hpp\n-\nboost/fusion/adapted/struct/detail/category_of_impl.hpp\n-\nboost/fusion/adapted/struct/detail/size_impl.hpp\n-\nboost/fusion/adapted/struct/detail/begin_impl.hpp\n-\nboost/fusion/adapted/struct/detail/end_impl.hpp\n-\nboost/fusion/adapted/struct/detail/value_of_impl.hpp\n-\nboost/fusion/adapted/struct/detail/deref_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nboost/preprocessor/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nboost/fusion/support/config.hpp\n-\nboost/config.hpp\n-\nboost/fusion/support/tag_of_fwd.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_auto.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/seq/for_each.hpp\n-\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/typeof/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nboost/config.hpp\n-\nboost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\nboost/preprocessor/variadic/to_seq.hpp\n-\nboost/preprocessor/seq/for_each.hpp\n-\nboost/preprocessor/seq/push_front.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/basic_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/basic_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/category_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/punctuation/paren.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/view/joint_view/joint_view.hpp\n-\nboost/fusion/view/single_view/single_view.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/view/joint_view/joint_view.hpp\n-\nboost/fusion/view/single_view/single_view.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/container/list/nil.hpp\n-\nboost/fusion/container/list/cons_iterator.hpp\n-\nboost/fusion/container/list/detail/begin_impl.hpp\n-\nboost/fusion/container/list/detail/end_impl.hpp\n-\nboost/fusion/container/list/detail/at_impl.hpp\n-\nboost/fusion/container/list/detail/value_at_impl.hpp\n-\nboost/fusion/container/list/detail/empty_impl.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/container/list/detail/deref_impl.hpp\n-\nboost/fusion/container/list/detail/next_impl.hpp\n-\nboost/fusion/container/list/detail/value_of_impl.hpp\n-\nboost/fusion/container/list/detail/equal_to_impl.hpp\n-\nboost/fusion/container/list/list_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/fusion/container/list/nil.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/and.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nboost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nboost/fusion/support/detail/pp_round.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/minus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/and.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nboost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nboost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nboost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nboost/fusion/container/vector/limits.hpp\n-\nboost/fusion/container/vector/vector10.hpp\n-\nboost/fusion/container/vector/vector20.hpp\n-\nboost/fusion/container/vector/vector30.hpp\n-\nboost/fusion/container/vector/vector40.hpp\n-\nboost/fusion/container/vector/vector50.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/pp_round.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/container/vector/vector_fwd.hpp\n-\nboost/fusion/container/vector/detail/vector_n_chooser.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/core/enable_if.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector.hpp\n-\nboost/fusion/container/vector/detail/vector_forward_ctor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector10_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/vector/vector10.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector20_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector20.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector20.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector30_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector30.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector30.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector40_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector40.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector40.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector50_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector50.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/container/vector/vector10.hpp\n-\nboost/fusion/container/vector/vector20.hpp\n-\nboost/fusion/container/vector/vector30.hpp\n-\nboost/fusion/container/vector/vector40.hpp\n-\nboost/fusion/container/vector/vector50.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/container/vector/detail/deref_impl.hpp\n-\nboost/fusion/container/vector/detail/value_of_impl.hpp\n-\nboost/fusion/container/vector/detail/next_impl.hpp\n-\nboost/fusion/container/vector/detail/prior_impl.hpp\n-\nboost/fusion/container/vector/detail/equal_to_impl.hpp\n-\nboost/fusion/container/vector/detail/distance_impl.hpp\n-\nboost/fusion/container/vector/detail/advance_impl.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/std_pair.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/advance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/deref_data.hpp\n-\nboost/fusion/iterator/key_of.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\nboost/fusion/iterator/value_of_data.hpp\n-\nboost/fusion/iterator/detail/segmented_equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/fusion/support/is_iterator.hpp\n-\nboost/mpl/and.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/iterator/detail/advance.hpp\n-\nboost/fusion/iterator/detail/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/is_iterator.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/prior.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iterator_tags.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/segmented_iterator.hpp\n-\nboost/fusion/iterator/detail/segmented_next_impl.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/adapted/mpl/detail/begin_impl.hpp\n-\nboost/fusion/iterator/mpl/fusion_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/adapted/mpl/detail/end_impl.hpp\n-\nboost/fusion/iterator/mpl/fusion_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/comparison/equal_to.hpp\n-\nboost/fusion/sequence/comparison/greater.hpp\n-\nboost/fusion/sequence/comparison/greater_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\nboost/fusion/sequence/comparison/less_equal.hpp\n-\nboost/fusion/sequence/comparison/not_equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/detail/equal_to.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/greater.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/greater_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/detail/less.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/sequence/comparison/detail/less_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/not_equal_to.hpp\n-\nboost/fusion/sequence/comparison/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n-\nboost/fusion/iterator/segmented_iterator.hpp\n-\nboost/fusion/view/iterator_range.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/empty.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n-\nboost/fusion/support/detail/segmented_fold_until_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n-\nboost/fusion/iterator/segmented_iterator.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/fold.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/size_t.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/mpl/begin.hpp\n-\nboost/fusion/mpl/end.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/io/in.hpp\n-\nboost/fusion/sequence/io/out.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nboost/fusion/support/config.hpp\n-\nistream\n-\nboost/fusion/sequence/io/detail/manip.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nboost/fusion/support/config.hpp\n-\nboost/config.hpp\n-\nstring\n-\nvector\n-\ncctype\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nboost/fusion/support/config.hpp\n-\nostream\n-\nboost/fusion/sequence/io/detail/manip.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nboost/fusion/support/config.hpp\n-\nistream\n-\nboost/fusion/sequence/io/detail/in.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nboost/fusion/support/config.hpp\n-\nostream\n-\nboost/fusion/sequence/io/detail/out.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/or.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/category_of.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nboost/fusion/support/config.hpp\n-\nboost/ref.hpp\n-\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/is_sequence.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/preprocessor/control/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/utility/result_of.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/void.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/mpl/is_sequence.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/detail/is_view.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/support/tag_of_fwd.hpp\n-\nboost/fusion/support/detail/is_mpl_sequence.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/tuple/make_tuple.hpp\n-\nboost/fusion/tuple/tuple_tie.hpp\n-\nboost/fusion/container/generation/ignore.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nboost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nboost/fusion/tuple/detail/preprocessed/tuple10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nboost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nboost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple/tuple_fwd.hpp\n-\nboost/fusion/container/vector/vector.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/intrinsic/value_at.hpp\n-\nboost/fusion/sequence/intrinsic/at.hpp\n-\nboost/fusion/sequence/comparison.hpp\n-\nboost/fusion/sequence/io.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/config/no_tr1/utility.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple.hpp\n-\nboost/fusion/tuple/detail/tuple_expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/view/iterator_range/iterator_range.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\nboost/fusion/algorithm/transformation/push_back.hpp\n-\nboost/fusion/algorithm/transformation/push_front.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/container/list/detail/reverse_cons.hpp\n-\nboost/fusion/iterator/detail/segment_sequence.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\nboost/fusion/iterator/mpl/convert_iterator.hpp\n-\nboost/fusion/view/iterator_range/detail/begin_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/end_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/at_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/size_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/value_at_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/segments_impl.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/deref_data.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/adapt_deref_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/key_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of_data.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/adapt_value_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/view/joint_view/joint_view_fwd.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/is_view.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/view/joint_view/joint_view_iterator.hpp\n-\nboost/fusion/view/joint_view/detail/begin_impl.hpp\n-\nboost/fusion/view/joint_view/detail/end_impl.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/inherit.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/iterator/mpl/convert_iterator.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/fusion/view/joint_view/detail/deref_impl.hpp\n-\nboost/fusion/view/joint_view/detail/next_impl.hpp\n-\nboost/fusion/view/joint_view/detail/value_of_impl.hpp\n-\nboost/fusion/view/joint_view/detail/deref_data_impl.hpp\n-\nboost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n-\nboost/fusion/view/joint_view/detail/key_of_impl.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/plus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/minus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/next.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/fusion/sequence/intrinsic/value_at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/view/single_view/single_view_iterator.hpp\n-\nboost/fusion/view/single_view/detail/at_impl.hpp\n-\nboost/fusion/view/single_view/detail/begin_impl.hpp\n-\nboost/fusion/view/single_view/detail/end_impl.hpp\n-\nboost/fusion/view/single_view/detail/size_impl.hpp\n-\nboost/fusion/view/single_view/detail/value_at_impl.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/view/single_view/detail/deref_impl.hpp\n-\nboost/fusion/view/single_view/detail/next_impl.hpp\n-\nboost/fusion/view/single_view/detail/prior_impl.hpp\n-\nboost/fusion/view/single_view/detail/advance_impl.hpp\n-\nboost/fusion/view/single_view/detail/distance_impl.hpp\n-\nboost/fusion/view/single_view/detail/equal_to_impl.hpp\n-\nboost/fusion/view/single_view/detail/value_of_impl.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nassert.h\n-\nclimits\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nboost/integer_fwd.hpp\n-\nboost/config.hpp\n-\nboost/integer.hpp\n-\nclimits\n-\ncstddef\n-\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nboost/integer_fwd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/boost/integer_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nboost/math/special_functions/trunc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nboost/math/tools/config.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/declval.hpp\n-\nboost/math/constants/calculate_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nboost/math/distributions/fwd.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/distributions/detail/common_error_handling.hpp\n-\nboost/math/distributions/complement.hpp\n-\nutility\n-\nboost/math/distributions/detail/derived_accessors.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nboost/math/distributions/fwd.hpp\n-\nboost/math/special_functions/erf.hpp\n-\nboost/math/distributions/complement.hpp\n-\nboost/math/distributions/detail/common_error_handling.hpp\n-\nutility\n-\nboost/math/distributions/detail/derived_accessors.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nstdexcept\n-\niomanip\n-\nstring\n-\ncerrno\n-\nboost/config/no_tr1/complex.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nstdexcept\n-\nboost/math/tools/config.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/cstdint.hpp\n-\nboost/format.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/unchecked_bernoulli.hpp\n-\nboost/math/special_functions/detail/bernoulli_details.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nboost/config.hpp\n-\nboost/detail/lightweight_mutex.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/math/tools/toms748_solve.hpp\n-\natomic\n-\nboost/atomic.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nboost/math/tools/toms748_solve.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nboost/math/tools/tuple.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/tools/roots.hpp\n-\nboost/math/policies/error_handling.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nemmintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nboost/math/tools/big_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nlimits\n-\ncmath\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/constants/constants.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nboost/array.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/digamma.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/constants/constants.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/math/tools/big_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/tools/roots.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/special_functions/detail/erf_inv.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nboost/config/no_tr1/cmath.hpp\n-\nmath.h\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nboost/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/fraction.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/constants/constants.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/trunc.hpp\n-\nboost/math/special_functions/powm1.hpp\n-\nboost/math/special_functions/sqrt1pm1.hpp\n-\nboost/math/special_functions/lanczos.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/math/special_functions/detail/igamma_large.hpp\n-\nboost/math/special_functions/detail/unchecked_factorial.hpp\n-\nboost/math/special_functions/detail/lgamma_small.hpp\n-\nboost/math/special_functions/bernoulli.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/assert.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nalgorithm\n-\nboost/math/special_functions/detail/igamma_inverse.hpp\n-\nboost/math/special_functions/detail/gamma_inva.hpp\n-\nboost/math/special_functions/erf.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nboost/config.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/mpl/if.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/less_equal.hpp\n-\nlimits.h\n-\nboost/math/special_functions/detail/lanczos_sse2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nboost/config/no_tr1/cmath.hpp\n-\nmath.h\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/expm1.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/expm1.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nboost/math/tools/config.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nboost/config/no_tr1/cmath.hpp\n-\nboost/cstdint.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/if.hpp\n-\nboost/math/tools/precision.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nboost/limits.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/math/policies/policy.hpp\n-\nlimits.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nboost/array.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/math/tools/detail/polynomial_horner1_2.hpp\n-\nboost/math/tools/detail/polynomial_horner1_3.hpp\n-\nboost/math/tools/detail/polynomial_horner1_4.hpp\n-\nboost/math/tools/detail/polynomial_horner1_5.hpp\n-\nboost/math/tools/detail/polynomial_horner1_6.hpp\n-\nboost/math/tools/detail/polynomial_horner1_7.hpp\n-\nboost/math/tools/detail/polynomial_horner1_8.hpp\n-\nboost/math/tools/detail/polynomial_horner1_9.hpp\n-\nboost/math/tools/detail/polynomial_horner1_10.hpp\n-\nboost/math/tools/detail/polynomial_horner1_11.hpp\n-\nboost/math/tools/detail/polynomial_horner1_12.hpp\n-\nboost/math/tools/detail/polynomial_horner1_13.hpp\n-\nboost/math/tools/detail/polynomial_horner1_14.hpp\n-\nboost/math/tools/detail/polynomial_horner1_15.hpp\n-\nboost/math/tools/detail/polynomial_horner1_16.hpp\n-\nboost/math/tools/detail/polynomial_horner1_17.hpp\n-\nboost/math/tools/detail/polynomial_horner1_18.hpp\n-\nboost/math/tools/detail/polynomial_horner1_19.hpp\n-\nboost/math/tools/detail/polynomial_horner1_20.hpp\n-\nboost/math/tools/detail/polynomial_horner2_2.hpp\n-\nboost/math/tools/detail/polynomial_horner2_3.hpp\n-\nboost/math/tools/detail/polynomial_horner2_4.hpp\n-\nboost/math/tools/detail/polynomial_horner2_5.hpp\n-\nboost/math/tools/detail/polynomial_horner2_6.hpp\n-\nboost/math/tools/detail/polynomial_horner2_7.hpp\n-\nboost/math/tools/detail/polynomial_horner2_8.hpp\n-\nboost/math/tools/detail/polynomial_horner2_9.hpp\n-\nboost/math/tools/detail/polynomial_horner2_10.hpp\n-\nboost/math/tools/detail/polynomial_horner2_11.hpp\n-\nboost/math/tools/detail/polynomial_horner2_12.hpp\n-\nboost/math/tools/detail/polynomial_horner2_13.hpp\n-\nboost/math/tools/detail/polynomial_horner2_14.hpp\n-\nboost/math/tools/detail/polynomial_horner2_15.hpp\n-\nboost/math/tools/detail/polynomial_horner2_16.hpp\n-\nboost/math/tools/detail/polynomial_horner2_17.hpp\n-\nboost/math/tools/detail/polynomial_horner2_18.hpp\n-\nboost/math/tools/detail/polynomial_horner2_19.hpp\n-\nboost/math/tools/detail/polynomial_horner2_20.hpp\n-\nboost/math/tools/detail/polynomial_horner3_2.hpp\n-\nboost/math/tools/detail/polynomial_horner3_3.hpp\n-\nboost/math/tools/detail/polynomial_horner3_4.hpp\n-\nboost/math/tools/detail/polynomial_horner3_5.hpp\n-\nboost/math/tools/detail/polynomial_horner3_6.hpp\n-\nboost/math/tools/detail/polynomial_horner3_7.hpp\n-\nboost/math/tools/detail/polynomial_horner3_8.hpp\n-\nboost/math/tools/detail/polynomial_horner3_9.hpp\n-\nboost/math/tools/detail/polynomial_horner3_10.hpp\n-\nboost/math/tools/detail/polynomial_horner3_11.hpp\n-\nboost/math/tools/detail/polynomial_horner3_12.hpp\n-\nboost/math/tools/detail/polynomial_horner3_13.hpp\n-\nboost/math/tools/detail/polynomial_horner3_14.hpp\n-\nboost/math/tools/detail/polynomial_horner3_15.hpp\n-\nboost/math/tools/detail/polynomial_horner3_16.hpp\n-\nboost/math/tools/detail/polynomial_horner3_17.hpp\n-\nboost/math/tools/detail/polynomial_horner3_18.hpp\n-\nboost/math/tools/detail/polynomial_horner3_19.hpp\n-\nboost/math/tools/detail/polynomial_horner3_20.hpp\n-\nboost/math/tools/detail/rational_horner1_2.hpp\n-\nboost/math/tools/detail/rational_horner1_3.hpp\n-\nboost/math/tools/detail/rational_horner1_4.hpp\n-\nboost/math/tools/detail/rational_horner1_5.hpp\n-\nboost/math/tools/detail/rational_horner1_6.hpp\n-\nboost/math/tools/detail/rational_horner1_7.hpp\n-\nboost/math/tools/detail/rational_horner1_8.hpp\n-\nboost/math/tools/detail/rational_horner1_9.hpp\n-\nboost/math/tools/detail/rational_horner1_10.hpp\n-\nboost/math/tools/detail/rational_horner1_11.hpp\n-\nboost/math/tools/detail/rational_horner1_12.hpp\n-\nboost/math/tools/detail/rational_horner1_13.hpp\n-\nboost/math/tools/detail/rational_horner1_14.hpp\n-\nboost/math/tools/detail/rational_horner1_15.hpp\n-\nboost/math/tools/detail/rational_horner1_16.hpp\n-\nboost/math/tools/detail/rational_horner1_17.hpp\n-\nboost/math/tools/detail/rational_horner1_18.hpp\n-\nboost/math/tools/detail/rational_horner1_19.hpp\n-\nboost/math/tools/detail/rational_horner1_20.hpp\n-\nboost/math/tools/detail/rational_horner2_2.hpp\n-\nboost/math/tools/detail/rational_horner2_3.hpp\n-\nboost/math/tools/detail/rational_horner2_4.hpp\n-\nboost/math/tools/detail/rational_horner2_5.hpp\n-\nboost/math/tools/detail/rational_horner2_6.hpp\n-\nboost/math/tools/detail/rational_horner2_7.hpp\n-\nboost/math/tools/detail/rational_horner2_8.hpp\n-\nboost/math/tools/detail/rational_horner2_9.hpp\n-\nboost/math/tools/detail/rational_horner2_10.hpp\n-\nboost/math/tools/detail/rational_horner2_11.hpp\n-\nboost/math/tools/detail/rational_horner2_12.hpp\n-\nboost/math/tools/detail/rational_horner2_13.hpp\n-\nboost/math/tools/detail/rational_horner2_14.hpp\n-\nboost/math/tools/detail/rational_horner2_15.hpp\n-\nboost/math/tools/detail/rational_horner2_16.hpp\n-\nboost/math/tools/detail/rational_horner2_17.hpp\n-\nboost/math/tools/detail/rational_horner2_18.hpp\n-\nboost/math/tools/detail/rational_horner2_19.hpp\n-\nboost/math/tools/detail/rational_horner2_20.hpp\n-\nboost/math/tools/detail/rational_horner3_2.hpp\n-\nboost/math/tools/detail/rational_horner3_3.hpp\n-\nboost/math/tools/detail/rational_horner3_4.hpp\n-\nboost/math/tools/detail/rational_horner3_5.hpp\n-\nboost/math/tools/detail/rational_horner3_6.hpp\n-\nboost/math/tools/detail/rational_horner3_7.hpp\n-\nboost/math/tools/detail/rational_horner3_8.hpp\n-\nboost/math/tools/detail/rational_horner3_9.hpp\n-\nboost/math/tools/detail/rational_horner3_10.hpp\n-\nboost/math/tools/detail/rational_horner3_11.hpp\n-\nboost/math/tools/detail/rational_horner3_12.hpp\n-\nboost/math/tools/detail/rational_horner3_13.hpp\n-\nboost/math/tools/detail/rational_horner3_14.hpp\n-\nboost/math/tools/detail/rational_horner3_15.hpp\n-\nboost/math/tools/detail/rational_horner3_16.hpp\n-\nboost/math/tools/detail/rational_horner3_17.hpp\n-\nboost/math/tools/detail/rational_horner3_18.hpp\n-\nboost/math/tools/detail/rational_horner3_19.hpp\n-\nboost/math/tools/detail/rational_horner3_20.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nutility\n-\nboost/config/no_tr1/cmath.hpp\n-\nstdexcept\n-\nboost/math/tools/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/math/tools/tuple.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/tools/toms748_solve.hpp\n-\nboost/math/policies/error_handling.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nboost/config/no_tr1/cmath.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nboost/math/tools/precision.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/cstdint.hpp\n-\nlimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nboost/config.hpp\n-\ntuple\n-\nboost/tuple/tuple.hpp\n-\nboost/tuple/tuple_comparison.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/fusion/include/tuple.hpp\n-\nboost/fusion/include/std_pair.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/iterator.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nalgorithm\n-\nmemory\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/iterator_traits.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility.hpp\n-\nboost/move/iterator.hpp\n-\nboost/move/traits.hpp\n-\nboost/move/algorithm.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/traits.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nboost/mpl/begin_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_empty.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nboost/mpl/begin_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nboost/mpl/empty_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nboost/mpl/back_fwd.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/vector/aux_/vector0.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nboost/mpl/empty_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nboost/mpl/front_fwd.hpp\n-\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/iterator_tags.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/prior.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nboost/mpl/pop_back_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nboost/mpl/pop_front_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/vector/aux_/O1_size.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/front.hpp\n-\nboost/mpl/vector/aux_/push_front.hpp\n-\nboost/mpl/vector/aux_/pop_front.hpp\n-\nboost/mpl/vector/aux_/push_back.hpp\n-\nboost/mpl/vector/aux_/pop_back.hpp\n-\nboost/mpl/vector/aux_/back.hpp\n-\nboost/mpl/vector/aux_/clear.hpp\n-\nboost/mpl/vector/aux_/O1_size.hpp\n-\nboost/mpl/vector/aux_/size.hpp\n-\nboost/mpl/vector/aux_/empty.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/vector0.hpp\n-\nboost/mpl/vector/aux_/begin_end.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nboost/mpl/vector/vector0.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nboost/mpl/vector/vector10.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nboost/mpl/vector/vector20.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nboost/mpl/vector/vector30.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nboost/mpl/vector/vector40.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nboost/none_t.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/none_t.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nboost/optional/optional.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/optional/optional.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nstdexcept\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nnew\n-\nalgorithm\n-\niosfwd\n-\nboost/config.hpp\n-\nboost/assert.hpp\n-\nboost/core/explicit_operator_bool.hpp\n-\nboost/optional/bad_optional_access.hpp\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/type.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/has_nothrow_constructor.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_nothrow_move_assignable.hpp\n-\nboost/type_traits/is_nothrow_move_constructible.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/not.hpp\n-\nboost/detail/reference_content.hpp\n-\nboost/move/utility.hpp\n-\nboost/none.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/utility/compare_pointees.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/in_place_factory.hpp\n-\nboost/utility/swap.hpp\n-\nboost/optional/optional_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nboost/integer/integer_log2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nassert.h\n-\nboost/pending/integer_log2.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/boost/pending/integer_log2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nboost/preprocessor/comparison/not_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/comparison/not_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nboost/preprocessor/control/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/to_seq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\nboost/timer.hpp\n-\nboost/noncopyable.hpp\n-\nboost/cstdint.hpp\n-\niostream\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nboost/random/additive_combine.hpp\n-\nboost/random/discard_block.hpp\n-\nboost/random/independent_bits.hpp\n-\nboost/random/inversive_congruential.hpp\n-\nboost/random/lagged_fibonacci.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/linear_feedback_shift.hpp\n-\nboost/random/mersenne_twister.hpp\n-\nboost/random/ranlux.hpp\n-\nboost/random/shuffle_order.hpp\n-\nboost/random/shuffle_output.hpp\n-\nboost/random/subtract_with_carry.hpp\n-\nboost/random/taus88.hpp\n-\nboost/random/xor_combine.hpp\n-\nboost/random/generate_canonical.hpp\n-\nboost/random/seed_seq.hpp\n-\nboost/random/random_number_generator.hpp\n-\nboost/random/variate_generator.hpp\n-\nboost/random/bernoulli_distribution.hpp\n-\nboost/random/binomial_distribution.hpp\n-\nboost/random/cauchy_distribution.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/exponential_distribution.hpp\n-\nboost/random/extreme_value_distribution.hpp\n-\nboost/random/fisher_f_distribution.hpp\n-\nboost/random/gamma_distribution.hpp\n-\nboost/random/geometric_distribution.hpp\n-\nboost/random/lognormal_distribution.hpp\n-\nboost/random/negative_binomial_distribution.hpp\n-\nboost/random/non_central_chi_squared_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\nboost/random/piecewise_constant_distribution.hpp\n-\nboost/random/piecewise_linear_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\nboost/random/student_t_distribution.hpp\n-\nboost/random/triangle_distribution.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/uniform_on_sphere.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\nboost/random/uniform_smallint.hpp\n-\nboost/random/weibull_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nistream\n-\niosfwd\n-\nalgorithm\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/linear_congruential.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\niosfwd\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncstdlib\n-\niosfwd\n-\nboost/random/detail/config.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\niosfwd\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/gamma_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer_traits.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/large_arithmetic.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/pending/integer_log2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nboost/cstdint.hpp\n-\nboost/integer.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nboost/random/detail/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\ncstddef\n-\nlimits\n-\nvector\n-\nalgorithm\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nboost/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nstdexcept\n-\nboost/cstdint.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/integer.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nvector\n-\niosfwd\n-\nistream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\niostream\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nvector\n-\nlimits\n-\nnumeric\n-\nutility\n-\niterator\n-\nboost/assert.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/exponential_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nalgorithm\n-\nboost/assert.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nios\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\niosfwd\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nistream\n-\niosfwd\n-\nalgorithm\n-\niterator\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\niostream\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\niosfwd\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncassert\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\niosfwd\n-\nistream\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\nboost/random/detail/polynomial.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\niosfwd\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/gamma_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/exponential_distribution.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nvector\n-\nnumeric\n-\nboost/assert.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nvector\n-\nalgorithm\n-\ncmath\n-\ncstdlib\n-\nboost/assert.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncstdlib\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nboost/assert.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nboost/config.hpp\n-\nboost/random/subtract_with_carry.hpp\n-\nboost/random/discard_block.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\ncstddef\n-\nvector\n-\nalgorithm\n-\niterator\n-\ninitializer_list\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\niostream\n-\nalgorithm\n-\ncassert\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nboost/random/shuffle_order.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nboost/config/no_tr1/cmath.hpp\n-\niostream\n-\nalgorithm\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\nboost/random/linear_congruential.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nboost/random/linear_feedback_shift.hpp\n-\nboost/random/xor_combine.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nios\n-\nistream\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\niostream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nboost/assert.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\niosfwd\n-\nios\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/uniform_int_float.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nvector\n-\nalgorithm\n-\nfunctional\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\niosfwd\n-\nios\n-\nistream\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nistream\n-\niosfwd\n-\ncassert\n-\nalgorithm\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/operators.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\nboost/config.hpp\n-\nctime\n-\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nutility\n-\nboost/type_traits/cv_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/type_traits/cv_traits.hpp\nboost/type_traits/function_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/type_traits/function_traits.hpp\nboost/utility/swap.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/utility/swap.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/config.hpp\nboost/static_assert.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/static_assert.hpp\nboost/ref.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/ref.hpp\nboost/tuple/detail/tuple_basic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/tuple/detail/tuple_basic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nboost/tuple/tuple.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/tuple/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/add_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nboost/type_traits/has_trivial_assign.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nboost/type_traits/has_trivial_constructor.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nboost/config.hpp\n-\nboost/type_traits/has_trivial_move_assign.hpp\n-\nboost/type_traits/has_nothrow_assign.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/has_trivial_move_constructor.hpp\n-\nboost/type_traits/has_nothrow_copy.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/utility/declval.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nboost/mpl/deref.hpp\n-\nboost/mpl/next.hpp\n-\nboost/typeof/message.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/size_t.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nboost/typeof/encode_decode.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nboost/typeof/encode_decode_params.hpp\n-\nboost/typeof/encode_decode.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/if.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nboost/typeof/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/enum_trailing.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/detail/is_unary.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/typeof/encode_decode.hpp\n-\nboost/typeof/int_encoding.hpp\n-\nboost/typeof/type_template_param.hpp\n-\nboost/typeof/integral_template_param.hpp\n-\nboost/typeof/template_template_param.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nboost/preprocessor/logical/or.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nboost/typeof/dmc/typeof_impl.hpp\n-\nboost/typeof/msvc/typeof_impl.hpp\n-\nboost/typeof/msvc/typeof_impl.hpp\n-\nboost/typeof/unsupported.hpp\n-\nboost/typeof/message.hpp\n-\nboost/typeof/typeof_impl.hpp\n-\nboost/typeof/type_encoding.hpp\n-\nboost/typeof/template_encoding.hpp\n-\nboost/typeof/modifiers.hpp\n-\nboost/typeof/pointers_data_members.hpp\n-\nboost/typeof/register_functions.hpp\n-\nboost/typeof/register_fundamental.hpp\n-\nboost/typeof/message.hpp\n-\nboost/typeof/native.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nboost/mpl/size_t.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/typeof/encode_decode.hpp\n-\nboost/typeof/vector.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nboost/mpl/int.hpp\n-\nboost/preprocessor/iteration/self.hpp\n-\nboost/typeof/vector50.hpp\n-\nboost/typeof/vector100.hpp\n-\nboost/typeof/vector150.hpp\n-\nboost/typeof/vector200.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/repeat_from_to.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iteration/local.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nnew\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/punctuation/paren.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nboost/utility/detail/in_place_factory_prefix.hpp\n-\nboost/utility/detail/in_place_factory_suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp\ncassert\n-\nqueue\n-\ngsl/gsl_randist.h\n-\ngsl/gsl_cdf.h\n-\nboost/progress.hpp\n-\nboost/format.hpp\n-\nlshkit/apost.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp\nlshkit.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp\nstdio.h\n-\nstdlib.h\n-\nfloat.h\n-\nmath.h\n-\nassert.h\n-\nkdtree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/logging.h\ncmath\n-\nboost/functional.hpp\n-\nboost/math/special_functions/digamma.hpp\n-\nboost/math/tools/roots.hpp\n-\ngsl/gsl_integration.h\n-\nlshkit/common.h\n-\nlshkit/mplsh.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp\ncassert\n-\nqueue\n-\nlshkit/mplsh.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp\ncassert\n-\nqueue\n-\nlshkit/common.h\n-\nlshkit/vq.h\n-\nkdtree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\nlshkit/include/lshkit.h\nlshkit/common.h\n-\nlshkit/composite.h\n-\nlshkit/lsh.h\n-\nlshkit/lsh-index.h\n-\nlshkit/sketch.h\n-\nlshkit/histogram.h\n-\nlshkit/metric.h\n-\nlshkit/kernel.h\n-\nlshkit/mplsh.h\n-\nlshkit/apost.h\n-\nlshkit/forest.h\n-\nlshkit/topk.h\n-\nlshkit/matrix.h\n-\nlshkit/eval.h\n-\nlshkit/spectral-hash.h\n-\nlshkit/multiprobelsh-fitdata.h\n-\nlshkit/multiprobelsh-tune.h\n-\n\nlshkit/include/lshkit/apost.h\nlshkit/common.h\n-\nlshkit/lsh.h\n-\nlshkit/composite.h\n-\nlshkit/metric.h\n-\nlshkit/lsh-index.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/archive.h\nvector\n-\niostream\n-\n\nlshkit/include/lshkit/common.h\ncmath\n-\nlimits\n-\nvector\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/foreach.hpp\n-\nboost/random.hpp\n-\nlshkit/concept.h\n-\n\nlshkit/include/lshkit/composite.h\n\nlshkit/include/lshkit/concept.h\nboost/concept/assert.hpp\n-\nboost/concept/usage.hpp\n-\n\nlshkit/include/lshkit/eval.h\ncmath\n-\nlimits\n-\nvector\n-\nalgorithm\n-\nfstream\n-\nboost/random.hpp\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/forest.h\nalgorithm\n-\nlshkit/common.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/histogram.h\n\nlshkit/include/lshkit/kernel.h\nfunctional\n-\n\nlshkit/include/lshkit/lsh-index.h\nstdexcept\n-\nalgorithm\n-\niostream\n-\nlshkit/common.h\n-\nlshkit/topk.h\n-\nlshkit/archive.h\n-\n\nlshkit/include/lshkit/lsh.h\n\nlshkit/include/lshkit/matrix-io.h\nlshkit/common.h\n-\ncassert\n-\nfstream\n-\nsys/types.h\n-\nsys/stat.h\n-\nfcntl.h\n-\nunistd.h\n-\nsys/mman.h\n-\nerrno.h\n-\n\nlshkit/include/lshkit/matrix.h\nfstream\n-\nboost/dynamic_bitset.hpp\n-\nlshkit/matrix-io.h\n-\n\nlshkit/include/lshkit/metric.h\nfunctional\n-\niostream\n-\n\nlshkit/include/lshkit/mplsh-model.h\nfstream\n-\nsstream\n-\nboost/math/distributions/gamma.hpp\n-\nboost/math/distributions/normal.hpp\n-\nlshkit/matrix.h\n-\n\nlshkit/include/lshkit/mplsh.h\nlshkit/common.h\n-\nlshkit/lsh.h\n-\nlshkit/composite.h\n-\nlshkit/metric.h\n-\nlshkit/lsh-index.h\n-\nlshkit/mplsh-model.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/multiprobelsh-fitdata.h\nlogging.h\nlshkit/include/lshkit/logging.h\ncstdlib\n-\nsstream\n-\ngsl/gsl_multifit.h\n-\n\nlshkit/include/lshkit/multiprobelsh-tune.h\nlogging.h\nlshkit/include/lshkit/logging.h\nboost/format.hpp\n-\nlshkit.h\n-\nlshkit/tune.h\n-\n\nlshkit/include/lshkit/sketch.h\nlshkit/matrix.h\n-\n\nlshkit/include/lshkit/spectral-hash.h\nmath.h\n-\ncmath\n-\nvector\n-\nalgorithm\n-\n\nlshkit/include/lshkit/topk.h\nvector\n-\nlimits\n-\nalgorithm\n-\nfstream\n-\niostream\n-\nlshkit/metric.h\n-\n\nlshkit/include/lshkit/tune.h\ncassert\n-\nvector\n-\nmap\n-\n\nlshkit/include/lshkit/vq.h\nfstream\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"include\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude lshkit/CMakeFiles/lshkit.dir/depend.make\n\n# Include the progress variables for this target.\ninclude lshkit/CMakeFiles/lshkit.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude lshkit/CMakeFiles/lshkit.dir/flags.make\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/src/mplsh.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/mplsh.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/mplsh.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp > CMakeFiles/lshkit.dir/src/mplsh.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/mplsh.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp -o CMakeFiles/lshkit.dir/src/mplsh.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/src/mplsh-model.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/mplsh-model.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp > CMakeFiles/lshkit.dir/src/mplsh-model.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/mplsh-model.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp -o CMakeFiles/lshkit.dir/src/mplsh-model.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/src/apost.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/apost.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/apost.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp > CMakeFiles/lshkit.dir/src/apost.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/apost.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp -o CMakeFiles/lshkit.dir/src/apost.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/src/char_bit_cnt.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp > CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp -o CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/src/vq.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_5)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/vq.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/vq.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp > CMakeFiles/lshkit.dir/src/vq.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/vq.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp -o CMakeFiles/lshkit.dir/src/vq.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o: lshkit/CMakeFiles/lshkit.dir/flags.make\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o: lshkit/src/kdtree.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_6)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/lshkit.dir/src/kdtree.cpp.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/lshkit.dir/src/kdtree.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp > CMakeFiles/lshkit.dir/src/kdtree.cpp.i\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/lshkit.dir/src/kdtree.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp -o CMakeFiles/lshkit.dir/src/kdtree.cpp.s\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.requires:\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.requires\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.provides: lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.requires\n\t$(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.provides.build\n.PHONY : lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.provides\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.provides.build: lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\n\n# Object files for target lshkit\nlshkit_OBJECTS = \\\n\"CMakeFiles/lshkit.dir/src/mplsh.cpp.o\" \\\n\"CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\" \\\n\"CMakeFiles/lshkit.dir/src/apost.cpp.o\" \\\n\"CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\" \\\n\"CMakeFiles/lshkit.dir/src/vq.cpp.o\" \\\n\"CMakeFiles/lshkit.dir/src/kdtree.cpp.o\"\n\n# External object files for target lshkit\nlshkit_EXTERNAL_OBJECTS =\n\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/build.make\nrelease/liblshkit.a: lshkit/CMakeFiles/lshkit.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX static library ../release/liblshkit.a\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && $(CMAKE_COMMAND) -P CMakeFiles/lshkit.dir/cmake_clean_target.cmake\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/lshkit.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nlshkit/CMakeFiles/lshkit.dir/build: release/liblshkit.a\n.PHONY : lshkit/CMakeFiles/lshkit.dir/build\n\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o.requires\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o.requires\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o.requires\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o.requires\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o.requires\nlshkit/CMakeFiles/lshkit.dir/requires: lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o.requires\n.PHONY : lshkit/CMakeFiles/lshkit.dir/requires\n\nlshkit/CMakeFiles/lshkit.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit && $(CMAKE_COMMAND) -P CMakeFiles/lshkit.dir/cmake_clean.cmake\n.PHONY : lshkit/CMakeFiles/lshkit.dir/clean\n\nlshkit/CMakeFiles/lshkit.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : lshkit/CMakeFiles/lshkit.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/lshkit.dir/src/mplsh.cpp.o\"\n  \"CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\"\n  \"CMakeFiles/lshkit.dir/src/apost.cpp.o\"\n  \"CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\"\n  \"CMakeFiles/lshkit.dir/src/vq.cpp.o\"\n  \"CMakeFiles/lshkit.dir/src/kdtree.cpp.o\"\n  \"../release/liblshkit.pdb\"\n  \"../release/liblshkit.a\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/lshkit.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/cmake_clean_target.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../release/liblshkit.a\"\n)\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/apost.cpp\n lshkit/include/lshkit/apost.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/topk.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp\n include/logging.h\n lshkit/include/lshkit.h\n lshkit/include/lshkit/apost.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/eval.h\n lshkit/include/lshkit/forest.h\n lshkit/include/lshkit/histogram.h\n lshkit/include/lshkit/kernel.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/multiprobelsh-fitdata.h\n lshkit/include/lshkit/multiprobelsh-tune.h\n lshkit/include/lshkit/sketch.h\n lshkit/include/lshkit/spectral-hash.h\n lshkit/include/lshkit/topk.h\n lshkit/include/lshkit/tune.h\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.cpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/call_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/call_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/digamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp\n include/logging.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/topk.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/mplsh.cpp\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/topk.h\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/kdtree.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/src/vq.cpp\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/vq.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/src/apost.cpp\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/apost.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/archive.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/common.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/composite.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/concept.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/lsh-index.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/lsh.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/metric.h\nlshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o: lshkit/include/lshkit/topk.h\n\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/src/char_bit_cnt.cpp\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: include/logging.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/apost.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/archive.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/common.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/composite.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/concept.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/eval.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/forest.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/histogram.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/kernel.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/lsh-index.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/lsh.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/matrix-io.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/matrix.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/metric.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/mplsh-model.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/mplsh.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/multiprobelsh-fitdata.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/multiprobelsh-tune.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/sketch.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/spectral-hash.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/topk.h\nlshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o: lshkit/include/lshkit/tune.h\n\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o: lshkit/src/kdtree.cpp\nlshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o: lshkit/src/kdtree.h\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/call_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/call_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/digamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/src/mplsh-model.cpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: include/logging.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/archive.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/common.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/composite.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/concept.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/lsh-index.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/lsh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/matrix-io.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/matrix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/metric.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/mplsh-model.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/mplsh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o: lshkit/include/lshkit/topk.h\n\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/src/mplsh.cpp\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/archive.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/common.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/composite.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/concept.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/lsh-index.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/lsh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/matrix-io.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/matrix.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/metric.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/mplsh-model.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/mplsh.h\nlshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o: lshkit/include/lshkit/topk.h\n\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/src/kdtree.h\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/src/vq.cpp\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/include/lshkit/common.h\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/include/lshkit/concept.h\nlshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o: lshkit/include/lshkit/vq.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/ar cq ../release/liblshkit.a  CMakeFiles/lshkit.dir/src/mplsh.cpp.o CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o CMakeFiles/lshkit.dir/src/apost.cpp.o CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o CMakeFiles/lshkit.dir/src/vq.cpp.o CMakeFiles/lshkit.dir/src/kdtree.cpp.o\n/opt/rh/devtoolset-2/root/usr/bin/ranlib ../release/liblshkit.a\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 80\nCMAKE_PROGRESS_2 = 81\nCMAKE_PROGRESS_3 = 82\nCMAKE_PROGRESS_4 = 83\nCMAKE_PROGRESS_5 = 84\nCMAKE_PROGRESS_6 = 85\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeFiles/progress.marks",
    "content": "6\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/CMakeLists.txt",
    "content": "include_directories(${PROJECT_SOURCE_DIR}/lshkit/include ${PROJECT_SOURCE_DIR}/include ${Boost_INCLUDE_DIR})\r\n\r\nset(lshkit_SRCS\r\n  src/mplsh.cpp\r\n  src/mplsh-model.cpp\r\n  src/apost.cpp\r\n  src/char_bit_cnt.cpp\r\n  src/vq.cpp\r\n  src/kdtree.cpp)\r\n\r\nadd_library(lshkit ${lshkit_SRCS})\r\ntarget_link_libraries(lshkit ${CMAKE_REQUIRED_LIBRARIES})\r\n\r\nif (CMAKE_BUILD_TYPE STREQUAL \"Release\")\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\nelse ()\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\nendif ()\r\n\r\n#ADD_SUBDIRECTORY(\"tools\")\r\n\r\ninstall(TARGETS lshkit   \r\n  ARCHIVE DESTINATION lib\r\n  LIBRARY DESTINATION lib\r\n  COMPONENT library\r\n)\r\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 lshkit/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 lshkit/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 lshkit/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 lshkit/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\nlshkit/CMakeFiles/lshkit.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 lshkit/CMakeFiles/lshkit.dir/rule\n.PHONY : lshkit/CMakeFiles/lshkit.dir/rule\n\n# Convenience name for target.\nlshkit: lshkit/CMakeFiles/lshkit.dir/rule\n.PHONY : lshkit\n\n# fast build rule for target.\nlshkit/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/build\n.PHONY : lshkit/fast\n\nsrc/apost.o: src/apost.cpp.o\n.PHONY : src/apost.o\n\n# target to build an object file\nsrc/apost.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.o\n.PHONY : src/apost.cpp.o\n\nsrc/apost.i: src/apost.cpp.i\n.PHONY : src/apost.i\n\n# target to preprocess a source file\nsrc/apost.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.i\n.PHONY : src/apost.cpp.i\n\nsrc/apost.s: src/apost.cpp.s\n.PHONY : src/apost.s\n\n# target to generate assembly for a file\nsrc/apost.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/apost.cpp.s\n.PHONY : src/apost.cpp.s\n\nsrc/char_bit_cnt.o: src/char_bit_cnt.cpp.o\n.PHONY : src/char_bit_cnt.o\n\n# target to build an object file\nsrc/char_bit_cnt.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.o\n.PHONY : src/char_bit_cnt.cpp.o\n\nsrc/char_bit_cnt.i: src/char_bit_cnt.cpp.i\n.PHONY : src/char_bit_cnt.i\n\n# target to preprocess a source file\nsrc/char_bit_cnt.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.i\n.PHONY : src/char_bit_cnt.cpp.i\n\nsrc/char_bit_cnt.s: src/char_bit_cnt.cpp.s\n.PHONY : src/char_bit_cnt.s\n\n# target to generate assembly for a file\nsrc/char_bit_cnt.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/char_bit_cnt.cpp.s\n.PHONY : src/char_bit_cnt.cpp.s\n\nsrc/kdtree.o: src/kdtree.cpp.o\n.PHONY : src/kdtree.o\n\n# target to build an object file\nsrc/kdtree.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.o\n.PHONY : src/kdtree.cpp.o\n\nsrc/kdtree.i: src/kdtree.cpp.i\n.PHONY : src/kdtree.i\n\n# target to preprocess a source file\nsrc/kdtree.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.i\n.PHONY : src/kdtree.cpp.i\n\nsrc/kdtree.s: src/kdtree.cpp.s\n.PHONY : src/kdtree.s\n\n# target to generate assembly for a file\nsrc/kdtree.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/kdtree.cpp.s\n.PHONY : src/kdtree.cpp.s\n\nsrc/mplsh-model.o: src/mplsh-model.cpp.o\n.PHONY : src/mplsh-model.o\n\n# target to build an object file\nsrc/mplsh-model.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.o\n.PHONY : src/mplsh-model.cpp.o\n\nsrc/mplsh-model.i: src/mplsh-model.cpp.i\n.PHONY : src/mplsh-model.i\n\n# target to preprocess a source file\nsrc/mplsh-model.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.i\n.PHONY : src/mplsh-model.cpp.i\n\nsrc/mplsh-model.s: src/mplsh-model.cpp.s\n.PHONY : src/mplsh-model.s\n\n# target to generate assembly for a file\nsrc/mplsh-model.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh-model.cpp.s\n.PHONY : src/mplsh-model.cpp.s\n\nsrc/mplsh.o: src/mplsh.cpp.o\n.PHONY : src/mplsh.o\n\n# target to build an object file\nsrc/mplsh.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.o\n.PHONY : src/mplsh.cpp.o\n\nsrc/mplsh.i: src/mplsh.cpp.i\n.PHONY : src/mplsh.i\n\n# target to preprocess a source file\nsrc/mplsh.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.i\n.PHONY : src/mplsh.cpp.i\n\nsrc/mplsh.s: src/mplsh.cpp.s\n.PHONY : src/mplsh.s\n\n# target to generate assembly for a file\nsrc/mplsh.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/mplsh.cpp.s\n.PHONY : src/mplsh.cpp.s\n\nsrc/vq.o: src/vq.cpp.o\n.PHONY : src/vq.o\n\n# target to build an object file\nsrc/vq.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.o\n.PHONY : src/vq.cpp.o\n\nsrc/vq.i: src/vq.cpp.i\n.PHONY : src/vq.i\n\n# target to preprocess a source file\nsrc/vq.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.i\n.PHONY : src/vq.cpp.i\n\nsrc/vq.s: src/vq.cpp.s\n.PHONY : src/vq.s\n\n# target to generate assembly for a file\nsrc/vq.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f lshkit/CMakeFiles/lshkit.dir/build.make lshkit/CMakeFiles/lshkit.dir/src/vq.cpp.s\n.PHONY : src/vq.cpp.s\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... lshkit\"\n\t@echo \"... install/local\"\n\t@echo \"... src/apost.o\"\n\t@echo \"... src/apost.i\"\n\t@echo \"... src/apost.s\"\n\t@echo \"... src/char_bit_cnt.o\"\n\t@echo \"... src/char_bit_cnt.i\"\n\t@echo \"... src/char_bit_cnt.s\"\n\t@echo \"... src/kdtree.o\"\n\t@echo \"... src/kdtree.i\"\n\t@echo \"... src/kdtree.s\"\n\t@echo \"... src/mplsh-model.o\"\n\t@echo \"... src/mplsh-model.i\"\n\t@echo \"... src/mplsh-model.s\"\n\t@echo \"... src/mplsh.o\"\n\t@echo \"... src/mplsh.i\"\n\t@echo \"... src/mplsh.s\"\n\t@echo \"... src/vq.o\"\n\t@echo \"... src/vq.i\"\n\t@echo \"... src/vq.s\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"Release\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE STATIC_LIBRARY FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/release/liblshkit.a\")\nendif()\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/apost.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n  * \\file apost.h\n  * \\brief A Posteriori Multi-Probe LSH indexing.\n  *\n  * Reference:\n  *\n  * Alexis Joly, Olivier Buisson.   A posteriori multi-probe locality sensitive\n  * hashing. In Proceedings of the 16th ACM International Conference on\n  * Multimedia. Vancouver, Canada. October 2008.\n  *\n  * \n  */\n\n#ifndef __LSHKIT_APOST__\n#define __LSHKIT_APOST__\n\n#include <lshkit/common.h>\n#include <lshkit/lsh.h>\n#include <lshkit/composite.h>\n#include <lshkit/metric.h>\n#include <lshkit/lsh-index.h>\n#include <lshkit/topk.h>\n\nnamespace lshkit\n{\n\n\nstruct APostLsh\n{\n    unsigned dim;\n    unsigned M;\n    float W;\n    unsigned H;\n    std::vector<std::vector<float> > a;\n    std::vector<float> b;\n    std::vector<unsigned> c;\n\n    std::vector<float> umin;\n    std::vector<float> umax;\n\n    typedef const float *Domain;\n\n    /**\n     * Parameter to MPLSH. \n     */\n    struct Parameter {\n\n        unsigned dim;\n        unsigned repeat;\n        unsigned range;\n        float W;\n    };\n\n    APostLsh () {}\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        dim = param.dim;\n        M = param.repeat;\n        W = param.W;\n        H = param.range;\n\n        boost::variate_generator<RNG &, Gaussian> gaussian(rng, Gaussian());\n        boost::variate_generator<RNG &, Uniform> uniform(rng, Uniform(0,W));\n\n        a.resize(M);\n        b.resize(M);\n        c.resize(M);\n        umin.resize(M);\n        umax.resize(M);\n\n        for (unsigned i = 0; i < M; i++) {\n            a[i].resize(dim);\n            umin[i] = std::numeric_limits<float>::max();\n            umax[i] = std::numeric_limits<float>::min();\n            for (unsigned j = 0; j < dim; j++) {\n                a[i][j] = gaussian();\n            }\n            b[i] = uniform();\n            c[i] = rng();\n        }\n    }\n\n    template <typename RNG>\n    APostLsh(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return H;\n    }\n\n    float apply1 (Domain obj, unsigned m) const {\n        float r = b[m];\n        for (unsigned j = 0; j < dim; ++j)\n        {\n            r += a[m][j] * obj[j];\n        }\n        r /= W;\n        return r;\n    }\n\n    void apply1 (Domain obj, std::vector<float> *h) const {\n        for (unsigned i = 0; i < M; ++i) {\n            h->at(i) = apply1(obj, i);\n        }\n    }\n\n    unsigned operator () (Domain obj)\n    {\n        unsigned r2 = 0;\n        for (unsigned i = 0; i < M; ++i)\n        {\n            float r1 = apply1(obj, i);\n            if (r1 < umin[i]) umin[i] = r1;\n            else if (r1 > umax[i]) umax[i] = r1;\n            r2 += c[i] * unsigned(int(std::floor(r1)));\n        }\n        return r2 % H;\n    }\n\n    unsigned apply_const (Domain obj) const\n    {\n        unsigned r2 = 0;\n        for (unsigned i = 0; i < M; ++i)\n        {\n            float r1 = apply1(obj, i);\n            r2 += c[i] * unsigned(int(std::floor(r1)));\n        }\n        return r2 % H;\n    }\n\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & dim;\n        ar & M;\n        ar & W;\n        ar & H;\n        ar & a;\n        ar & b;\n        ar & c;\n        ar & umin;\n        ar & umax;\n    }\n};\n\nstruct APostExample {\n    const float *query;\n    std::vector<const float *> results;\n};\n\nstruct PrH {    // Pr[h] of certain compnent\n    int h;\n    float pr;\n    template<class Archive>\n\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & h;\n        ar & pr;\n    }\n\n    friend bool operator < (const PrH &p1, const PrH &p2) {\n        // we need descending order\n        return p1.pr > p2.pr;\n    }\n};\n\nclass APostModel\n{\n    unsigned Nz;\n    float ex;\n    // lookup[M][h_query][h]\n    std::vector<std::vector<std::vector<PrH> > > lookup;\n    std::vector<std::vector<float> > means;\n    std::vector<std::vector<float> > stds;\n    std::vector<float> umin;\n    std::vector<float> umax;\npublic:\n    APostModel () {\n    };\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & Nz;\n        ar & ex;\n        ar & lookup;\n        ar & means;\n        ar & stds;\n        ar & umin;\n        ar & umax;\n    }\n\n    void train (const APostLsh &lsh, const std::vector<APostExample> &examples,\n            unsigned N, float k_sigma = 1.0/5, float expand = 0.1);\n\n    void genProbeSequence (const APostLsh &lsh, const float *query,\n            float recall, unsigned T, std::vector<unsigned> *probe) const;\n};\n\n\n/// Multi-Probe LSH index.\ntemplate <typename KEY>\nclass APostLshIndex: public LshIndex<APostLsh, KEY>\n{\npublic:\n    typedef LshIndex<APostLsh, KEY> Super;\n    /**\n     * Super::Parameter is the same as MultiProbeLsh::Parameter\n     */\n    typedef typename Super::Parameter Parameter;\n\n    typedef typename Super::Domain Domain;\n    typedef KEY Key;\n\nprivate:\n\n    std::vector<APostModel> model;\n\n    /// Query for K-NNs.\n    /**\n      * @param obj the query object.\n      * @param scanner \n      */\n    template <typename SCANNER>\n    void query_helper (Domain obj, float recall, unsigned T, SCANNER &scanner) const\n    {\n        std::vector<unsigned> seq;\n        BOOST_VERIFY(recall <= 1.0);\n        recall = 1.0 - exp(1.0/Super::lshs_.size() * log(1.0 - recall));\n        for (unsigned i = 0; i < Super::lshs_.size(); ++i) {\n            model[i].genProbeSequence(Super::lshs_[i], obj, recall, T, &seq);\n            BOOST_FOREACH(unsigned j, seq) {\n                typename Super::Bin const &bin = Super::tables_[i][j];\n                BOOST_FOREACH(Key key, bin) {\n                    scanner(key);\n                }\n            }\n        }\n    }\n\npublic:\n\n    /// Constructor.\n    APostLshIndex() {\n    } \n\n    /// Initialize MPLSH.\n    /**\n      * @param param parameters.\n      * @param engine random number generator (if you are not sure about what to\n      * use, then pass DefaultRng.\n      * @param accessor object accessor (same as in LshIndex).\n      * @param L number of hash tables maintained.\n      */\n    template <typename Engine>\n    void init (const Parameter &param, Engine &engine, unsigned L) {\n        Super::init(param, engine, L);\n        model.resize(L);\n        // we are going to normalize the distance by window size, so here we pass W = 1.0.\n        // We tune adaptive probing for KNN distance range [0.0001W, 20W].\n    }\n\n    void train (const std::vector<APostExample> &examples, unsigned Nz, float k_sigma, float expand) {\n        for (unsigned i = 0; i < model.size(); ++i) {\n            model[i].train(Super::lshs_[i], examples, Nz, k_sigma, expand);\n        }\n    }\n\n    /// Load the index from stream.\n    void load (std::istream &ar) \n    {\n        Super::load(ar);\n        ar & model;\n        BOOST_VERIFY(ar);\n    }\n\n    /// Save to the index to stream.\n    void save (std::ostream &ar)\n    {\n        Super::save(ar);\n        ar & model;\n        BOOST_VERIFY(ar);\n    }\n\n    /// Query for K-NNs.\n    /**\n      * @param obj the query object.\n      * @param scanner \n      */\n    template <typename SCANNER>\n    void query (Domain obj, unsigned T, SCANNER &scanner) const\n    {\n        query_helper(obj, 1.0, T, scanner);\n    }\n\n    /// Query for K-NNs, try to achieve the given recall by adaptive probing.\n    /**\n      * There's a special requirement for the scanner type used in adaptive query.\n      * It should support the following method to return the current K-NNs:\n      *\n      * const Topk<KEY> &topk () const;\n      */\n    template <typename SCANNER>\n    void query_recall (Domain obj, float recall, SCANNER &scanner) const\n    {\n        query_helper(obj, recall, std::numeric_limits<unsigned>::max(), scanner);\n    }\n};\n\n}\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/archive.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_ARCHIVE__\n#define __LSHKIT_ARCHIVE__\n\n#include <vector>\n#include <iostream>\n\n/**\n * \\file archive.h\n * \\brief A set of binary I/O routines.\n *\n * The LSH library was originally designed to use boost serialization,\n * but it turned out that boost serialization is too generalized and too slow for us.\n * So we wrote our own minimal replacement.\n *\n * You are not expected to use these routines unless you are implementing your own\n * LSH class.\n * \n * Given a variable V and a stream S, \"S & V\" will output V to S if S is derived from\n * std::ostream, or load V from S if S is derived from std::istream.  The\n * operator is defined for the following types:\n *  - classes where a \"serialize\" method is defined (required by\n * the LSH concept);\n *  - std::vector of such classes;\n *  - unsigned, float, std::vector<unsigned>, std::vector<float>.\n *\n * Note that binary I/O is architecture dependent and not portable.\n *\n*/\n\nnamespace lshkit {\n\nstatic inline std::ostream &operator & (std::ostream &os, int i) {\n    return os.write((const char *)&i, sizeof(i));\n}\n\nstatic inline std::ostream &operator & (std::ostream &os, unsigned i) {\n    return os.write((const char *)&i, sizeof(i));\n}\n\nstatic inline std::ostream &operator & (std::ostream &os, float i) {\n    return os.write((const char *)&i, sizeof(i));\n}\n\nstatic inline std::istream &operator & (std::istream &is, int &i) {\n    return is.read((char *)&i, sizeof(i));\n}\n\nstatic inline std::istream &operator & (std::istream &is, unsigned &i) {\n    return is.read((char *)&i, sizeof(i));\n}\n\nstatic inline std::istream &operator & (std::istream &is, float &i) {\n    return is.read((char *)&i, sizeof(i));\n}\n\nstatic inline std::ostream &operator & (std::ostream &os, std::vector<float> &v) {\n    unsigned L = v.size();\n    os & L;\n    os.write((const char *)&v[0], v.size() * sizeof(float));\n    return os;\n}\n\nstatic inline std::istream &operator & (std::istream &is, std::vector<float> &v) {\n    unsigned L;\n    is & L;\n    v.resize(L);\n    is.read((char *)&v[0], v.size() * sizeof(float));\n    return is;\n}\n\nstatic inline std::ostream &operator & (std::ostream &os, std::vector<unsigned> &v) {\n    unsigned L = v.size();\n    os & L;\n    os.write((const char *)&v[0], v.size() * sizeof(unsigned));\n    return os;\n}\n\nstatic inline std::istream &operator & (std::istream &is, std::vector<unsigned> &v) {\n    unsigned L;\n    is & L;\n    v.resize(L);\n    is.read((char *)&v[0], v.size() * sizeof(unsigned));\n    return is;\n}\n\ntemplate <typename D>\nstd::ostream &operator & (std::ostream &s, D &t) {\n    t.serialize(s, 0);\n    return s;\n}\n\ntemplate <typename D>\nstd::istream &operator & (std::istream &s, D &t) {\n    t.serialize(s, 0);\n    return s;\n}\n\ntemplate <typename D>\nstd::ostream &operator & (std::ostream &os, std::vector<D> &v) {\n    unsigned L = v.size();\n    os & L;\n    for (unsigned i = 0; i < L; ++i) {\n        os & v[i];\n    }\n    return os;\n}\n\ntemplate <typename D>\nstd::istream &operator & (std::istream &is, std::vector<D> &v) {\n    unsigned L;\n    is & L;\n    v.resize(L);\n    for (unsigned i = 0; i < L; ++i) {\n        is & v[i];\n    }\n    return is;\n}\n\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/common.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_COMMON__\n#define __LSHKIT_COMMON__\n\n/**\n * \\file common.h\n * \\brief Common type and function definitions used by all components.\n */\n\n\n#include <cmath>\n#include <limits>\n#include <vector>\n#include <stdexcept>\n#include <boost/assert.hpp>\n#include <boost/foreach.hpp>\n#include <boost/random.hpp>\n\n/// Enable concept checking.\n/** Concept checking requires boost > 1.35.\n  * Remove this definition to disable concept checking.\n  */\n#define CONCEPT_CHECK 0\n\n#ifdef CONCEPT_CHECK\n#include <lshkit/concept.h>\n#else\n#define BOOST_CONCEPT_ASSERT(A)\n#endif\n\nnamespace lshkit {\n\n/// The default random number generator.\ntypedef boost::mt19937 DefaultRng;\n\n// Some of the frequently used distributions.\n\n/// Gaussian distribution.\ntypedef boost::normal_distribution<float> Gaussian;\n/// Cauchy distribution.\ntypedef boost::cauchy_distribution<float> Cauchy;\n/// Uniform distribution.\ntypedef boost::uniform_real<float> Uniform;\n/// Uniform distribution with int values.\ntypedef boost::uniform_int<int> UniformInt;\n/// Uniform distribution with unsigned values.\ntypedef boost::uniform_int<unsigned> UniformUnsigned;\n\n/// Take the minimum of two values.\n/* We define this so that <algorithm> doesn't have to be included solely for\n   this simple function.\n */\ntemplate <typename T>\nT min (T a, T b) { return a < b ? a : b; }\n\n/// Take the maximum of two values.\ntemplate <typename T>\nT max (T a, T b) { return a < b ? b : a; }\n\n/// Square function.\ntemplate <typename T> T sqr (const T &x) { return x * x; }\n\nvoid panic_intern(const char *fmt, ...);\n\n}\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/composite.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_COMPOSITE__\n#define __LSHKIT_COMPOSITE__\n\n/**\n * \\file composite.h\n * \\brief Defining a bunch of LSH compositions.\n *\n * LSH composition is to use an existing LSH class as building\n * block to generate a new class of LSH.\n *\n * All template classes in this header are defined in a very similar fashion:\n *\n * \\code\n * template <typename LSH> // base LSH is given as a template parameter\n * class SomeDerivedLSH\n * {\n * public:\n *      typedef LSH Super;  // the base LSH is defined to be Super.\n *      typedef ... Domain;\n *\n *      struct Parameter: public Super::Parameter {\n *          ...             // all parameters to the base LSH are inherited.\n *      };\n *      ...\n * };\n * \\endcode\n *\n * \n */\n\nnamespace lshkit {\n\n///  The modulo operation on hash values.\n/**\n *  The mod of an LSH function by some value N is usually still locality\n *  sensitive.  This can be used to limit the hash value of certain LSH,\n *  so that the hash value can be used to index a fixed-sized hash table.\n *\n *  Let LSH be the original class, and N be the divisor, then the parameter type\n *  is defined as\n *  \\code\n *      struct Parameter {\n *          unsigned range;     // the divisor.\n *          ...                 // the original parameters are inherited.\n *      };\n * \\endcode\n * The domain is the same as the original LSH and the range is always N.\n *\n */\ntemplate <typename LSH>\nclass Tail\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\nprotected:\n    LSH lsh_;\n    unsigned range_;\npublic:\n    /// The base LSH class.\n    typedef LSH Super;\n    /**\n     * Parameter to Tail.\n     */\n    struct Parameter: public Super::Parameter {\n        /// Desired range of the LSH.\n        unsigned range;\n\n        Parameter() : Super::Parameter(), range(0) {}\n    };\n\n    typedef typename Super::Domain Domain;\n\n    Tail() {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng) {\n        range_ = param.range;\n        lsh_.reset(param, rng);\n    }\n\n    template <typename RNG>\n    Tail(const Parameter &param, RNG &rng) {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const {\n        return range_;\n    }\n\n    unsigned operator () (Domain obj) const {\n        return lsh_(obj) % range_;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version) {\n        ar & lsh_;\n        ar & range_;\n    }\n};\n\n/// The modulo operation with fixed divisor.\n/**\n * This is the same as Tail, except the divisor is determined at compile time\n * and passed in as a template parameter.  Both the Domain and Parameter of the\n * original LSH are kept the same.\n */\ntemplate <typename LSH, unsigned range>\nclass FixedTail\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\nprotected:\n    LSH lsh_;\npublic:\n    typedef LSH Super;\n\n    /**\n     * Parameter is exactly the same as the base class.\n     */\n    struct Parameter: public Super::Parameter {\n    };\n\n    typedef typename Super::Domain Domain;\n\n    FixedTail()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        lsh_.reset(param, rng);\n    }\n\n    template <typename RNG>\n    FixedTail(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return range;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return lsh_(obj) % range;\n    }\n\n    const LSH &getLsh () const\n    {\n        return lsh_;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & lsh_;\n    }\n};\n\n/// Take the LSB of the hash value.\n/**\n * This is a special case of FixedTail, with the divisor being 2, with the effect\n * of taking only the least significant bit of the hash value.  This is mainly used\n * to generate sketches.\n */\ntemplate <typename LSH>\nclass LSB: public FixedTail<LSH, 2>\n{\npublic:\n    typedef FixedTail<LSH,2> Super;\n    /**\n     * Parameter is exactly the same as the base class.\n     */\n    struct Parameter: public Super::Parameter {\n    };\n\n    typedef typename Super::Domain Domain;\n\n    LSB () {}\n\n    template <typename RNG>\n    LSB(const Parameter &param, RNG &rng)\n        : FixedTail<LSH, 2>(param, rng)\n    {\n    }\n};\n\n/// The DeltaLSH version of LSB..\n/**\n * The original LSH must be a DeltaLSH.\n */\ntemplate <typename LSH>\nclass DeltaLSB: public FixedTail<LSH, 2>\n{\n    BOOST_CONCEPT_ASSERT((DeltaLshConcept<LSH>));\n\npublic:\n    typedef FixedTail<LSH, 2> Super;\n    /**\n     * Parameter is exactly the same as the base class.\n     */\n    struct Parameter: public Super::Parameter {\n    };\n\n    typedef typename Super::Domain Domain;\n\n    DeltaLSB() {}\n\n    template <typename RNG>\n    DeltaLSB(const Parameter &param, RNG &rng)\n        : Super(param, rng)\n    {\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return Super::operator () (obj);\n    }\n\n    unsigned operator () (Domain obj, float *delta) const\n    {\n        float d;\n        unsigned r = Super::getLsh()(obj, &d);\n        *delta = min(d, 1.0F - d);\n        return r % Super::getRange();\n    }\n};\n\n/// Concatenation of a number of LSHes.\n/**\n * The concatenation of a number of LSHes of the same class is usually used as a\n * new LSH to augment the locality sensitivity.  The Repeat class is to\n * concatenate N independent LSH instances.\n *\n * The domain of LSH remains the same.  The new parameter is \n * defined as:\n *      \\code\n *      struct Parameter {\n *          unsigned repeat;     // # of LSHes to concatenate.\n *          ...                  // all parameters of the base LSH are inherited.\n *      };\n *      \\endcode\n *\n * Because the hash value is represented as unsigned int, which has only 32\n * bits, the range of the original LSH need to be small enough so that the\n * concatenated value does not overflow.  Specifically, we require that\n * \\f[\n * LSH::getRange()^N <= 2^{32}.\n * \\f]\n * We also require that the range of the base LSH only depends on the\n * parameter, so an array of such LSHes initialized with the same parameter but\n * independent random numbers have the same range.\n */\ntemplate <typename LSH>\nclass Repeat\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\n\npublic:\n    typedef LSH Super;\n    /**\n     * Parameter to Repeat.\n     */\n    struct Parameter: public Super::Parameter {\n        /// The number of instances of the base LSH concatenated.\n        unsigned repeat;\n\n        Parameter() : Super::Parameter(), repeat(0) {}\n    };\n\n    typedef typename Super::Domain Domain;\n\n    Repeat ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        dup_ = param.repeat;\n        assert(dup_ > 0);\n        lsh_.resize(dup_);\n        lsh_[0].reset(param, rng);\n        range_ = unit_ = lsh_[0].getRange();\n        assert(unit_ > 0);\n        assert( (unsigned)(1 << (sizeof(unsigned) * 8 / dup_)) >= unit_);\n        for (unsigned i = 1; i < dup_; ++i)\n        {\n            lsh_[i].reset(param, rng);\n            assert(unit_ == lsh_[i].getRange());\n            range_ *= unit_;\n        }\n    }\n\n    template <typename RNG>\n    Repeat(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return range_;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        unsigned ret = 0;\n        for (unsigned i = 0; i < dup_; ++i)\n        {\n            ret *= unit_;\n            ret += lsh_[i](obj);\n        }\n        return ret;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & dup_;\n        ar & range_;\n        ar & unit_;\n        ar & lsh_;\n    }\n\nprotected:\n    std::vector<Super> lsh_;\n    unsigned dup_;\n    unsigned range_;\n    unsigned unit_;\n\n};\n\n\n/// Apply a random hash to the concatenation a number of hash values.\n/**\n * This composition is to workaround the case where the range of individual\n * LSHes are so large that the concatenation can not be held in a single\n * unsgined int.  The method is to further hash the concatenated value.\n * Specifically, if <h1, h2, ..., hN> are the original values, this composition\n * produces (a1*h1 + a2*h2 + aN*hN), with a1~aN being random unsigned integers.\n * The range of the produced LSH is 0 (the whole range of unsigned).\n *\n * The domain of the LSH remains the same.  The new parameter is \n * defined as:\n *      \\code\n *      struct Parameter {\n *          unsigned repeat;     // # of LSHes to concatenate\n *          ...                  // all parameters of the base LSH are inherited.\n *      };\n *      \\endcode\n */\ntemplate <typename LSH>\nclass RepeatHash\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\n\npublic:\n    typedef LSH Super;\n    /**\n     * Parameter to Repeat.\n     */\n    struct Parameter: public Super::Parameter {\n        /// The number of instances of the base LSH concatenated.\n        unsigned repeat;\n\n        Parameter() : Super::Parameter(), repeat(0) {}\n    };\n\n    typedef typename LSH::Domain Domain;\n\n    RepeatHash ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        assert(param.repeat > 0);\n        lsh_.resize(param.repeat);\n        for (unsigned i = 0; i < param.repeat; ++i)\n        {\n            lsh_[i].reset(param, rng);\n        }\n        a_.resize(param.repeat);\n\n        for (unsigned i = 0; i < param.repeat; ++i) a_[i] = rng();\n    }\n\n    template <typename RNG>\n    RepeatHash(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return 0;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        unsigned ret = 0;\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            ret += lsh_[i](obj) * a_[i];\n        }\n        return ret;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & lsh_;\n        ar & a_;\n        assert(a_.size() == lsh_.size());\n    }\nprotected:\n    std::vector<Super> lsh_;\n    std::vector<unsigned> a_;\n\n};\n\n\n///  XOR a number of 1-bit LSHes.\n/*\n * The XOR of a number of 1-bit LSHes has higher locality sensitivity than\n * the original LSH.  This serves a similar purpose as RepeatHash.\n *\n * The new parameter is defined as:\n *      \\code\n *      struct Parameter {\n *          unsigned xor_;     // # of LSHes to XOR\n *          ...                  // all parameters of the base LSH are inherited.\n *      };\n *      \\endcode\n */\ntemplate <typename LSH>\nclass Xor\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\npublic:\n\n    typedef LSH Super;\n    /**\n     * Parameter to Xor\n     */\n    struct Parameter: public Super::Parameter {\n        unsigned xor_; // xor is a keyword\n\n        Parameter() : Super::Parameter(), xor_(0) {}\n    };\n\n    typedef typename Super::Domain Domain;\n\n    Xor ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        lsh_.resize(param.xor_);\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            lsh_[i].reset(param, rng);\n            assert(lsh_[i].getRange() == 2);\n        }\n    }\n\n    template <typename RNG>\n    Xor(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return 2;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        unsigned ret = 0;\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            ret = ret ^ lsh_[i](obj);\n        }\n        return ret;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & lsh_;\n    }\nprotected:\n    std::vector<Super> lsh_;\n};\n\n/// DeltaLSH version of XOR.\n/*\n * This is essentially the same as XOR.  The delta of XOR is the\n * minimum of the deltas of all the original LSHes.\n */\ntemplate <typename LSH>\nclass DeltaXor: public Xor<LSH>\n{\npublic:\n    typedef Xor<LSH> Super;\n    /**\n     * Parameter to DeltaXor is exactly the same as Xor.\n     */\n    struct Parameter: public Super::Parameter  {\n    };\n\n    typedef typename Super::Domain Domain;\n\n    DeltaXor ()\n    {\n    }\n\n    template <typename RNG>\n    DeltaXor(const Parameter &param, RNG &rng): Xor<LSH>(param, rng)\n    {\n    }\n\n    unsigned operator () (Domain obj) const {\n        return Super::operator () (obj);\n    }\n\n    unsigned operator () (Domain obj, float *delta) const\n    {\n        unsigned ret = 0;\n        float m = std::numeric_limits<float>::max(), d;\n        for (unsigned i = 0; i < Xor<LSH>::lsh_.size(); ++i)\n        {\n            ret = ret ^ Xor<LSH>::lsh_[i](obj, &d);\n            m = min(m, d);\n        }\n        *delta = m;\n        return ret;\n    }\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/concept.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file concept.h\n * \\brief Check the LSH concept.\n *\n *  An LSH class should define the following items to be used in the \n *  LSHKIT framework:\n *\n *  - The parameter type:\n *      \\code\n *      typedef ... Parameter;\n *      \\endcode\n *  - The domain type (type that the LSH applies on):\n *      \\code\n *      typedef ... Domain;\n *      \\endcode\n *  - Default constructor:\n *      \\code\n *      LSH()\n *      \\endcode\n *  - Initialization method (same as LSH() immediately followed by reset()):\n *      \\code\n *      void reset(const Parameter &, RNG &);\n *      \\endcode\n *      The reset() function and on of the constructors take a random number\n *      generator.  This random number generator should not be further used after reset() or the constructor has returned.\n *  - Initializing constructor:\n *      \\code\n *      LSH(const Parameter &, RNG &);  // equivalent to LSH() followed by reset()\n *      \\endcode\n *  - A method that returns the range of hash value:\n *      \\code\n *      unsigned getRange () const;\n *      \\endcode\n *      If getRange() returns 0, then the hash value (returned by\n *      operator()) can be anything.  Otherwise, it can be from 0 to getRange() - 1.\n *  - An operator to apply the hash function:\n *      \\code\n *      unsigned operator () (const Domain) const;\n *      \\endcode\n *  - A serialization method following Boost serialization interface.\n *      \\code\n *      template<class Archive>\n *      void serialize(Archive & ar, const unsigned int version)\n *      \\endcode\n *\n *  Some of the LSH functions are created by rouding a real number to an integer,\n *  and the part rounded off (delta) usually carries useful information.\n *  Such LSH functions are modeled by the DeltaLSH concept,\n *  which should implement the following extra method:\n *\n *  - An operator to apply the LSH and also return the delta.\n *     \\code\n *     unsigned operator () const (Domain, float *delta); \n *     \\endcode\n*/\n\n#ifndef __LSHKIT_CONCEPT__\n#define __LSHKIT_CONCEPT__\n\n#include <boost/concept/assert.hpp>\n#include <boost/concept/usage.hpp>\n\nnamespace lshkit {\n\n/// LSH concept checker.\ntemplate <typename LSH>\nstruct LshConcept\n{\n    typedef typename LSH::Domain Domain;\n    typedef typename LSH::Parameter Parameter;\n\n    BOOST_CONCEPT_USAGE(LshConcept)\n    {\n        LSH lsh1(param, rng1);\n        LSH lsh2(param, rng2);\n        LSH lsh3;\n        lsh.reset(param, rng1);\n        lsh.reset(param, rng2);\n        same_type(lsh.getRange(), u);\n        same_type(lsh(object), u);\n        // current we do not check serialization.\n    }\nprotected:\n    boost::mt11213b rng1;\n    boost::mt19937 rng2;\n    LSH lsh;\n    Domain object;\n    const Parameter param;\n\n    unsigned u;\n    template <typename T>\n    void same_type(T const &, T const&);\n};\n\n/// DeltaLSH concept checker.\ntemplate <typename LSH>\nstruct DeltaLshConcept: public LshConcept<LSH>\n{\n    typedef LshConcept<LSH> Super;\n    BOOST_CONCEPT_USAGE(DeltaLshConcept)\n    {\n        float delta;\n        Super::same_type(Super::lsh(Super::object, &delta), Super::u);\n    }\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/eval.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_EVAL__\n#define __LSHKIT_EVAL__\n\n/**\n * \\file eval.h\n * \\brief A set of classes for evaluation.\n *\n */\n\n#include <cmath>\n#include <limits>\n#include <vector>\n#include <algorithm>\n#include <fstream>\n#include <boost/random.hpp>\n#include <lshkit/topk.h>\n\n\nnamespace lshkit {\n\n/// Generate non-duplicate random numbers in a given range as query IDs.\n/**\n * @param qry the vector to hold the generated IDs.\n * @param max The maximum ID(excluded).\n * @param rng Random number generator, use a variable of type DefaultRng.\n *\n */\ntemplate <typename RNG>\nvoid SampleQueries (std::vector<unsigned> *qry, unsigned max, RNG\n        &rng)\n{\n    boost::variate_generator<RNG &, UniformUnsigned> gen(rng, UniformUnsigned(0,\n                max-1));\n    for (unsigned i = 0; i < qry->size(); ++i)\n    {\n        for (;;)\n        {\n            qry->at(i) = gen();\n            unsigned j;\n            for (j = 0; j < i; j++) if (qry->at(i) == qry->at(j)) break;\n            if (j >= i) break;\n        }\n    }\n}\n\n\n/// Access a benchmark file.\n/**\n * We assume the feature vectors in the benchmark database are\n * numbered from 0 to N.  We sample Q queries as test examples\n * and run K-NN search against the database with linear scan.  The results are\n * saved in a benchmark file for evaluation purpose.  \n * A benchmark file is made up of Q lines, each line represents a\n * test query and is of the following format:\n *\n * <query ID> <K> <1st NN's ID> <distance> <2nd NN's ID> <distance> ... <Kth NN's ID> <distance>\n *\n * For all queries in the benchmark file, the K value should be the same.\n *\n * Because the query points are also sampled from the database, they should be excluded from\n * scanning when running this particular query.\n */\ntemplate <typename KEY = unsigned>\nclass Benchmark\n{\n    unsigned Q_;\n\n    std::vector<unsigned> queries_;\n    std::vector<Topk<KEY> > topks_;\npublic:\n    Benchmark(): Q_(0) {}\n\n    void resize(unsigned Q, unsigned K = 0)\n    {\n        Q_ = Q;\n        queries_.resize(Q);\n        topks_.resize(Q);\n        if (K > 0) {\n            BOOST_FOREACH(Topk<KEY> &knn, topks_) {\n                if (knn.size() < K) throw std::runtime_error(\"BENCHMARK NOT LARGE ENOUGH\");\n                knn.resize(K);\n            }\n        }\n    }\n\n    // Random initialization\n    void init(unsigned Q, unsigned maxID, unsigned seed = 0) {\n        Q_ = Q;\n        queries_.resize(Q);\n        topks_.resize(Q);\n\n        DefaultRng rng;\n        if (seed != 0) rng.seed(seed);\n        SampleQueries(&queries_, maxID, rng);\n    }\n\n    ~Benchmark() {}\n\n    void load (std::istream &is)\n    {\n        std::string line;\n        queries_.clear();\n        topks_.clear();\n        for (;;) {\n            unsigned q, k;\n            is >> q;\n            if (!is) break;\n            queries_.push_back(q);\n            is >> k;\n            topks_.push_back(Topk<KEY>());\n            topks_.back().resize(k);\n            for (unsigned j = 0; j < k; j++) {\n                is >> topks_.back()[j].key;\n                is >> topks_.back()[j].dist;\n            }\n        }\n        Q_ = queries_.size();\n    }\n\n    void save (std::ostream &os) const\n    {\n        for (unsigned i = 0; i < Q_; i++) {\n            os << queries_[i] << '\\t' << topks_[i].size() << '\\t';\n            for (unsigned j = 0; j < topks_[i].size(); j++) {\n                os << '\\t' <<  topks_[i][j].key;\n                os << '\\t' <<  topks_[i][j].dist;\n            }\n            os << std::endl;\n        }\n    }\n\n    void load (const std::string &path)\n    {\n        std::ifstream is(path.c_str());\n        load(is);\n        is.close();\n    }\n\n    void save (const std::string &path) const\n    {\n        std::ofstream os(path.c_str());\n        save(os);\n        os.close();\n    }\n\n    unsigned getQ () const { return Q_; }\n\n    /// Get the ID of the nth query.\n    unsigned getQuery (unsigned n) const {  return queries_[n]; }\n\n    /// Get the nearest neighbors of the nth query.\n    const Topk<KEY> &getAnswer (unsigned n) const { return topks_[n]; }\n\n    /// Get the KNNs for modification.\n    Topk<KEY> &getAnswer (unsigned n) { return topks_[n]; }\n};\n\n\n/// Basic statistics.\n/**\n *  The interface is self-evident.\n *  Usage:\n *\n *  \\code\n *  Stat stat;\n *\n *  stat << 1.0 << 2.0 << 3.0;\n *\n *  Stat stat2;\n *  stat2 << 3.0 << 5.0 << 6.0;\n *\n *  stat.merge(stat2);\n *\n *  stat.getCount();\n *  stat.getSum();\n *  stat.getMax();\n *  stat.getMin();\n *  stat.getStd();\n *  \\endcode\n *\n */\nclass Stat\n{\n    int count;\n    float sum;\n    float sum2;\n    float min;\n    float max;\npublic:\n    Stat () : count(0), sum(0), sum2(0), min(std::numeric_limits<float>::max()), max(-std::numeric_limits<float>::max()) {\n    }\n\n    ~Stat () {\n    }\n\n    void reset () {\n        count = 0;\n        sum = sum2 = 0;\n        min = std::numeric_limits<float>::max();\n        max = -std::numeric_limits<float>::max();\n    }\n\n    void append (float r)\n    {\n        count++;\n        sum += r;\n        sum2 += r*r;\n        if (r > max) max = r;\n        if (r < min) min = r;\n    }\n\n    Stat & operator<< (float r) { append(r); return *this; }\n\n    int getCount() const { return count; }\n    float getSum() const { return sum; }\n    float getAvg() const { return sum/count; }\n    float getMax() const { return max; }\n    float getMin() const { return min; }\n    float getStd() const\n    {\n        if (count > 1) return std::sqrt((sum2 - (sum/count) * sum)/(count - 1)); \n        else return 0; \n    }\n\n    void merge (const Stat &stat)\n    {\n        count += stat.count;\n        sum += stat.sum;\n        sum2 += stat.sum2;\n        if (stat.min < min) min = stat.min;\n        if (stat.max > max) max = stat.max;\n    }\n};\n\n/*\nclass Timer\n{\n    struct  timeval start; \npublic:\n    Timer () {}\n    /// Start timing.\n    void tick ()\n    {\n        gettimeofday(&start, 0); \n    }\n    /// Stop timing, return the time passed (in second).\n    float tuck (const char *msg) const\n    {\n        struct timeval end;\n        float   diff; \n        gettimeofday(&end, 0); \n\n        diff = (end.tv_sec - start.tv_sec) \n                + (end.tv_usec - start.tv_usec) * 0.000001; \n        if (msg != 0) {\n            std::cout << msg << ':' <<  diff << std::endl;\n        }\n        return diff;\n    }\n};\n*/\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/forest.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef __LSHKIT_FOREST__\n#define __LSHKIT_FOREST__\n\n/**\n  * \\file forest.h\n  * \\brief A preliminary implementation of LSH Forest index.\n  *\n  * This is a preliminary implementation of main memory LSH Forest index.\n  * The implementation is largely based on the WWW'05 LSH Forest paper.\n  * The descend and synchascend algorithms are implemented in a \n  * different but equivalent way, so the candidate set do not have to\n  * be explicitly generated.  I also made a simplification to the synchascending\n  * algorithm, so that the original line\n  \\code\n    while (x > 0 and (|P| < cl or |distinct(P)| < m)) {\n  \\endcode\n  * is simplified to\n  \\code\n    while (x > 0 and |P| < M) {\n  \\endcode\n  * the deduplication is left to the scanning process.\n  *\n  * The implementation is not efficient.  The initial goal of this implementation\n  * is to study the selectivity of the algorithm.  I'll further optimize the\n  * implementation if selectivity is proved competitive.\n  * \n  * Reference \n  * \n  * Mayank Bawa , Tyson Condie , Prasanna Ganesan, LSH forest: self-tuning\n  * indexes for similarity search, Proceedings of the 14th international\n  * conference on World Wide Web, May 10-14, 2005, Chiba, Japan.\n  * \n  */\n\n#include <algorithm>\n#include <lshkit/common.h>\n#include <lshkit/topk.h>\n\nnamespace lshkit {\n\n/// LSH Forest index\n/**\n  * @param LSH LSH class.\n  * @param KEY key type.\n  */\ntemplate <typename LSH, typename KEY>\nclass ForestIndex\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\npublic:\n    typedef typename LSH::Parameter Parameter;\n    typedef typename LSH::Domain Domain;\n    typedef KEY Key;\n\nprivate:\n\n    struct Tree\n    {\n        std::vector<LSH> lsh; // the hash functions\n\n        struct Node\n        {\n            size_t size; // total # points in subtree\n            std::vector<Node *> children;\n            std::vector<Key> data;\n\n            Node () : size(0) {\n            }\n\n            ~Node () {\n                BOOST_FOREACH(Node *n, children) {\n                    if (n != 0) delete n;\n                }\n            }\n\n            bool empty () const {\n                return size == 0;\n            }\n\n            template <typename ACCESSOR>\n            void insert (Tree *tree, unsigned depth, Key key, ACCESSOR &acc) {\n                ++size;\n                if (children.empty()) {\n                    data.push_back(key);\n                    if (depth < tree->lsh.size() && data.size() > 1) {\n                    // split\n                        LSH &lsh = tree->lsh[depth];\n                        if (lsh.getRange() == 0) throw std::logic_error(\"LSH WITH UNLIMITED HASH VALUE CANNOT BE USED IN LSH FOREST.\");\n                        children.resize(lsh.getRange());\n                        BOOST_FOREACH(Key key, data) {\n                            unsigned h = lsh(acc(key));\n                            if (children[h] == 0) {\n                                children[h] = new Node();\n                            }\n                            children[h]->insert(tree, depth+1, key, acc);\n                        }\n                        data.clear();\n                    }\n                }\n                else {\n                    unsigned h = tree->lsh[depth](acc(key));\n                    if (children[h] == 0) {\n                        children[h] = new Node();\n                    }\n                    children[h]->insert(tree, depth+1, key, acc);\n                }\n            }\n\n            template <typename SCANNER>\n            void scan (Domain val, SCANNER &scanner) const {\n                if (!children.empty()) {\n                    BOOST_FOREACH(const Node *n, children) {\n                        if (n != 0) {\n                            n->scan(val, scanner);\n                        }\n                    }\n                }\n                if (!data.empty()) {\n                    BOOST_FOREACH(Key key, data) {\n                        scanner(key);\n                    }\n                }\n            }\n        } *root;\n\n        public:\n\n        Tree (): root(0) {\n        }\n\n        template <typename ENGINE>\n        void reset (const Parameter &param, ENGINE &engine, unsigned depth)\n        {\n            lsh.resize(depth);\n            BOOST_FOREACH(LSH &h, lsh) {\n                h.reset(param, engine);\n            }\n            root = new Node();\n        }\n\n        ~Tree ()\n        {\n            if (root != 0) delete root;\n        }\n\n        template <typename ACCESSOR>\n        void insert (Key key, ACCESSOR &acc)\n        {\n            root->insert(this, 0, key, acc);\n        }\n\n        void lookup (Domain val, std::vector<const Node *> *nodes) const {\n            const Node *cur = root;\n            unsigned depth = 0;\n            nodes->clear();\n            for (;;) {\n                nodes->push_back(cur);\n                if (cur->children.empty()) break;\n                unsigned h = lsh[depth](val);\n                cur = cur->children[h];\n                if (cur == 0) break;\n                ++depth;\n            }\n        }\n    };\n\n    friend struct Tree;\n\n    std::vector<Tree> trees;\n    \n\npublic:\n    ForestIndex() \n    {\n    }\n\n    /// Initialize the LSH Forest index.\n    /**\n      * @param param LSH parameters.\n      * @param engine random number generator.\n      * @param L number of trees in the forest.\n      * @param depth maximal depth of the forest.\n      */\n    template <typename Engine>\n    void init(const Parameter &param, Engine &engine, unsigned L, unsigned depth) \n    {\n        trees.resize(L);\n        BOOST_FOREACH(Tree &t, trees) {\n            t.reset(param, engine, depth);\n        }\n    }\n\n    /// Insert a point to the forest.\n    /**\n      * @param key The key to be inserted.\n      * @param acc The accessor to retrieve the data corresponding to keys.\n      *\n      * We might need to rebalance the trees, so an accessor is\n      * needed to retrieve data points.\n      */\n    template <typename ACCESSOR>\n    void insert (Key key, ACCESSOR &acc)\n    {\n        BOOST_FOREACH(Tree &t, trees) {\n            t.insert(key, acc);\n        }\n    }\n\n    /// Query for K-NNs.\n    /**\n      * @param val the query object.\n      * @param M lower bound of the total number of points to scan.\n      * @param scanner the functional object to passed keys to.\n      */\n    template <typename SCANNER>\n    void query (Domain val, unsigned M, SCANNER &scanner) const\n    {\n        std::vector<std::vector<const typename Tree::Node *> > list(trees.size());\n        for (unsigned i = 0; i < trees.size(); ++i) {\n            trees[i].lookup(val, &list[i]);\n        }\n        // Find the minimal depth covering at least M points\n        unsigned d = 0;\n        for (;;) {\n            unsigned s = 0;\n            for (unsigned i = 0; i < list.size(); ++i) {\n                if (d < list[i].size()) {\n                    s += list[i][d]->size;\n                }\n            }\n            if (s < M) break;\n            ++d;\n        }\n\n        if (d > 0) --d;\n\n        // recursively scan the nodes\n        for (unsigned i = 0; i < list.size(); ++i) {\n            if (d < list[i].size()) {\n                list[i][d]->scan(val, scanner);\n            }\n        }\n    }\n};\n\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/histogram.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_HISTOGRAM__\n#define __LSHKIT_HISTOGRAM__\n\n/** \\file histogram.h\n  * \\brief LSH-based random histogram construction.\n  *\n  * Random histograms are used to match sets of feature vectors.\n  * A random histogram is a simplified version of LSH hash table, except that\n  * for each bin, only a count, instead of a list of features, is maintained.\n  * If two sets are similar, then the counts in the corresponding bins would be\n  * similar.  Thus, set similarity is mapped to vector similarity.\n  *\n  *\n  * Following is an example to embed a set of sift features into a random histogram.\n  * We use the ThresholdingLsh to approximate L1 distance between SIFT features.\n  *\n  * \\code\n  *      #include <lshkit.h>\n  *      using namespace lshkit;\n  *\n  *      // One ThresholdingLsh only produces 1 bit.  We use the Repeat composition\n  *      // to produce a hash value of 8 bits, which can be used to produce one\n  *      // histogram of 2^8 = 256 dimensions.\n  *      typedef Repeat<ThresholdingLsh> MyLSH;\n  *\n  *      typedef Histogram<MyLSH> MyHistogram;\n  *\n  *      TresholdingLsh::Parameter param;\n  *\n  *      param.repeat = 8; // repeat 8 times, produce 8 bits.\n  *      param.dim = 128;\n  *      param.min = 0.0;\n  *      param.max = 255.0; // Parameters are set for SIFT features.\n  *\n  *      DefaultRng rng;\n  *      unsigned N = 10, M = 10;\n  *      MyHistogram hist;\n  *      hist.reset(M, N, param, rng);\n  *      // The histogram is constructed by concatenating N histograms of 2^8 dimensions,\n  *      // So there will be 2560 dimensions in all.\n  *\n  *      float *output = new float[hist.getDim()]; // should be 2560.\n  *      hist.zero(output); // init the output histogram\n  *\n  *      // IMAGE is a container of SIFT features.\n  *      BOOST_FOREACH(const float *sift, IMAGE) {\n  *         hist.add(output, sift);\n  *      }\n  *\n  *      // now the output should contain the desired histogram.\n  *      // The histogram can be fed into SVM for classification.\n  *\n  *      \\endcode\n  *\n  *\n  *\n  * See the following reference for details.\n  *\n  * Wei Dong, Zhe Wang, Moses Charikar, Kai Li. Efficiently Matching Sets of\n  * Features with Random Histograms. In Proceedings of the 16th ACM\n  * International Conference on Multimedia. Vancouver, Canada. October 2008.\n  */\n\nnamespace lshkit {\n\n/// Random histogram construction.\ntemplate <typename LSH>\nclass Histogram\n{\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\n\n    std::vector<LSH> lsh_;\n\n    unsigned M_, N_;\n    unsigned dim_;\n    unsigned unit_;\npublic:\n    typedef typename LSH::Parameter Parameter;\n    typedef typename LSH::Domain Domain;\n\n    /** Default constructor.\n     */\n    Histogram () {\n    }\n\n    /** Reset the sketcher.\n     *  @param M Number repeated to take average.\n     *  @param N Number of concatenated histograms.\n     *  @param param Parameter to LSH.\n     *  @param rng Random number generator (usually a variable of type lshkit::DefaultRng.\n     */\n    template <typename RNG>\n    void reset(unsigned M, unsigned N, Parameter param, RNG &rng)\n    {\n        lsh_.resize(M * N);\n        M_ = M;\n        N_ = N;\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            lsh_[i].reset(param, rng);\n        }\n        unit_ = lsh_[0].getRange();\n        dim_ = N_ * unit_;\n    }\n\n    /** Constructor.\n     *  @param M Number repeated to take average.\n     *  @param N Number of concatenated histograms.\n     *  @param param Parameter to LSH.\n     *  @param rng Random number generator (usually a variable of type lshkit::DefaultRng.\n     */\n    template <typename RNG>\n    Histogram(unsigned M, unsigned N, Parameter parameter, RNG &rng)\n        : lsh_(M * N), M_(M), N_(N)\n    {\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            lsh_[i].reset(parameter, rng);\n        }\n        unit_ = lsh_[0].getRange();\n        dim_ = N_ * unit_;\n    }\n\n    /// Get the total dimension of the histogram.\n    unsigned dim () const\n    {\n        return dim_;\n    }\n\n    /// Initialize an output histogram.\n    /**\n     * @param out The array to hold the output histogram.\n     */\n    void zero (float *out) const\n    {\n        std::fill(out, out + dim_, 0);\n    }\n    \n    /// Add the information of a vector to the output histogram.\n    /**\n     * @param out The array to hold the output histogram.\n     * @param in The input vector.\n     * @param weight Weight of the input vector.\n     */\n    void add (float *out, Domain in, float weight = 1.0) const\n    {\n        unsigned k = 0;\n        unsigned base = 0;\n        for (unsigned i = 0; i < N_; ++i)\n        {\n            for (unsigned j = 0; j < M_; ++j)\n            {\n                unsigned index = base + (lsh_[k])(in);\n                out[index] +=  weight;\n                ++k;\n            }\n            base += unit_;\n        }\n    }\n};\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/kernel.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file kernel.h\n * \\brief Common kernel definitions.\n */\n\n#ifndef __LSHKIT_KERNEL__\n#define __LSHKIT_KERNEL__\n\n// This file implements some common kernel functions.\n\n#include <functional>\n\nnamespace lshkit { namespace kernel {\n\n/// inner product\ntemplate <typename T /* real type */>\nclass dot : public std::binary_function<const T*, const T*, float>\n{\n    unsigned dim_;\npublic:\n    dot (unsigned dim) : dim_(dim) {}\n    float operator () (const T *first1, const T *first2) const\n    {\n        float r = 0.0;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += first1[i] * first2[i];\n        }\n        return r;\n    }\n};\n\n\n}}\n\n#endif\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/lsh-index.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file lsh-index.h\n * \\brief Flat (non-multi-probe) LSH index.\n */\n\n#ifndef __LSHKIT_FLAT__\n#define __LSHKIT_FLAT__\n\n#include <stdexcept>\n#include <algorithm>\n#include <iostream>\n#include <lshkit/common.h>\n#include <lshkit/topk.h>\n#include <lshkit/archive.h>\n\nnamespace lshkit {\n\n/// Flat LSH index.\n/** Flat LSH index is implemented as L hash tables using mutually independent\n  * LSH functions.  Given a query point q, the points in the bins to which q is\n  * hashed to are scanned for the nearest neighbors of q.\n  *\n  * @param LSH The LSH class.\n  * @param KEY The key type.\n  */\ntemplate <typename LSH, typename KEY>\nclass LshIndex\n{\n\n    BOOST_CONCEPT_ASSERT((LshConcept<LSH>));\npublic:\n    typedef typename LSH::Parameter Parameter;\n    typedef typename LSH::Domain Domain;\n    typedef KEY Key;\n\nprotected:\n    typedef std::vector<Key> Bin;\n\n    std::vector<LSH> lshs_;\n    std::vector<std::vector<Bin> > tables_;\n\npublic:\n    /// Constructor.\n    LshIndex() {\n    }\n\n    /// Initialize the hash tables.\n    /**\n      * @param param parameter of LSH function.\n      * @param engine random number generator.\n      * @param L number of hash table maintained.\n      *\n      */\n    template <typename Engine>\n    void init (const Parameter &param, Engine &engine, unsigned L)\n    {\n        BOOST_VERIFY(lshs_.size() == 0);\n        BOOST_VERIFY(tables_.size() == 0);\n        lshs_.resize(L);\n        tables_.resize(L);\n\n        for (unsigned i = 0; i < L; ++i) {\n            lshs_[i].reset(param, engine);\n            if (lshs_[i].getRange() == 0) {\n                throw std::logic_error(\"LSH with unlimited range should not be used to construct an LSH index.  Use lshkit::Tail<> to wrapp the LSH.\");\n            }\n            tables_[i].resize(lshs_[i].getRange());\n        }\n    }\n\n    /// Constructor\n    /** Load the LSH index from a stream. */\n    void load (std::istream &ar)\n    {\n        unsigned L;\n        ar & L;\n        lshs_.resize(L);\n        tables_.resize(L);\n        for (unsigned i = 0; i < L; ++i) {\n            lshs_[i].serialize(ar, 0);\n            unsigned l;\n            ar & l;\n            std::vector<Bin> &table = tables_[i];\n            table.resize(l);\n            for (;;) {\n                unsigned idx, ll;\n                ar & idx;\n                ar & ll;\n                if (ll == 0) break;\n                table[idx].resize(ll);\n                ar.read((char *)&table[idx][0], ll * sizeof(Key));\n            }\n        }\n    }\n\n    /// Save the LSH index to a stream.\n    void save (std::ostream &ar)\n    {\n        unsigned L;\n        L = lshs_.size();\n        ar & L;\n        for (unsigned i = 0; i < L; ++i) {\n            lshs_[i].serialize(ar, 0);\n            std::vector<Bin> &table = tables_[i];\n            unsigned l = table.size();\n            ar & l;\n            unsigned idx, ll;\n            for (unsigned j = 0; j < l; ++j) {\n                if (table[j].empty()) continue;\n                idx = j;\n                ll = table[j].size();\n                ar & idx;\n                ar & ll;\n                ar.write((char *)&table[j][0], ll * sizeof(Key));\n            }\n            idx = ll = 0;\n            ar & idx;\n            ar & ll;\n        }\n    }\n\n    /// Insert an item to the index.\n    /**\n      * @param key the key to the item.\n      * @param value the value of the key.\n      *\n      * The inserted object is not explicitly given, but is obtained by\n      * accessor(key).\n      */\n    void insert (Key key, Domain value)\n    {\n        #if DEBUG_LEVEL > 50\n          std::cerr << \"key \" << key << std::endl;\n        #endif\n\n        for (unsigned i = 0; i < lshs_.size(); ++i) {\n            unsigned index = lshs_[i](value);\n\n            #if DEBUG_LEVEL > 50\n              std::cerr << \"data lshs_ index = \" << index << std::endl;\n            #endif\n\n            tables_[i][index].push_back(key);\n        }\n    }\n\n    /// Query for K-NNs.\n    /**\n      * @param obj the query object.\n      * @param scanner the scanner object.\n      *\n      * The scanner is an invokable object.  LSH index will pass every candidate key\n      * to scanner by invoking scanner(key).\n      */\n    template <typename SCANNER>\n    void query (Domain obj, SCANNER &scanner) const\n    {\n        for (unsigned i = 0; i < lshs_.size(); ++i) {\n            unsigned index = lshs_[i](obj);\n\n            #if DEBUG_LEVEL > 50\n              std::cerr << \"query lshs_ index \" << index << std::endl;\n            #endif\n\n            BOOST_FOREACH(Key key, tables_[i][index]) {\n\n                #if DEBUG_LEVEL > 50\n                  std::cout << \"key \" << key << std::endl;    // object ID\n                #endif\n\n                scanner(key);\n            }\n        }\n    }\n};\n\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/lsh.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_LSH__\n#define __LSHKIT_LSH__\n\n/**\n * \\file lsh.h\n * \\brief This file defines a set of basic LSH families.\n *\n * Be aware that the LSH classes defined here are only atomic hash functions.\n * You need to compose them with the templates found in composite.h in order to\n * reproduce the well-known published LSHes.  For example, the Stable distribution\n * based LSH in M. Datar's paper (and also Q. Lv's Multi-Probe LSH paper) is\n * really RepeatHash<StableDistLsh>.\n */\n\nnamespace lshkit {\n\nclass TrivialLsh\n{\npublic:\n    // Nothing\n    struct Parameter\n    {\n    };\n\n    typedef const float * Domain;\n\n    TrivialLsh ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n    }\n\n    template <typename RNG>\n    TrivialLsh(const Parameter &param, RNG &rng)\n    {\n    }\n\n    unsigned getRange () const\n    {\n        return 1;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return 0;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n    }\n};\n\n/// Stable distribution based LSH.\n/**\n * This LSH is defined on the D-dimensional vector space.  For a vector X, the\n * hash value is defined as\n * \\f[\n *                h(X) = [b + a_1*X_1 + a_2*X_2 + ... + a_D*X_D] / W\n * \\f]\n * where W is a positive value called the window size; b is sampled uniformly from\n * [0, W); a1 ~ aD are N random variables independently sampled from the so-called stable\n * distribution, which is specifiled by the template parameter DIST.\n *\n * The domain of the LSH is (const float *), and the parameter is defined as\n * \\code\n *      struct Parameter {\n *          unsigned dim;\n *          float W;\n *      };\n * \\endcode\n * The range of this LSH is 0.\n *\n * Following are two spacial cases:\n * \\code\n *     typedef StableDistLsh<Cauchy> CauchyLsh;\n *     typedef StableDistLsh<Gaussian> GaussianLsh;\n * \\endcode\n * Cauchy distribution is 1-stable and Gaussian distribution is 2-stable.  These\n * two LSHes can be used to approximate L1 and L2 distances respectively.\n * \n * For more information on stable distribution based LSH, see the following reference.\n *\n *     Mayur Datar , Nicole Immorlica , Piotr Indyk , Vahab S. Mirrokni,\n *     Locality-sensitive hashing scheme based on p-stable distributions,\n *     Proceedings of the twentieth annual symposium on Computational geometry, June\n *     08-11, 2004, Brooklyn, New York, USA.\n*/\ntemplate <typename DIST>\nclass StableDistLsh\n{\n    std::vector<float> a_;\n    float b_;\n    float W_;\n    unsigned dim_;\npublic:\n    /**\n     * Parameter to StableDistLsh.\n     */\n    struct Parameter\n    {\n        /// Dimension of domain.\n        unsigned dim;   \n        /// Window size.\n        float W;\n\n        Parameter() : dim(0), W(0.0) {}\n    };\n\n    typedef const float *Domain;\n\n    StableDistLsh ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        a_.resize(param.dim);\n        W_ = param.W;\n        dim_ = param.dim;\n\n        boost::variate_generator<RNG &, DIST> gen(rng, DIST());\n\n        for (unsigned i = 0; i < dim_; ++i) a_[i] = gen();\n\n        b_ = boost::variate_generator<RNG &, Uniform>(rng, Uniform(0,W_))();\n    }\n\n    template <typename RNG>\n    StableDistLsh(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n\n    unsigned getRange () const\n    {\n        return 0;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        float ret = b_;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            ret += a_[i] * obj[i];\n        }\n        return unsigned(int(std::floor(ret / W_)));\n    }\n\n    unsigned operator () (Domain obj, float *delta) const\n    {\n        float ret = b_;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            ret += a_[i] * obj[i];\n        }\n        ret /= W_;\n\n        float flr =  std::floor(ret);\n        *delta = ret - flr;\n        return unsigned(int(flr));\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & a_;\n        ar & b_;\n        ar & W_;\n        ar & dim_;\n        assert(a_.size() == dim_);\n    }\n\n};\n\n/// LSH for L1 distance.\ntypedef StableDistLsh<Cauchy> CauchyLsh;\n/// LSH for L2 distance.\ntypedef StableDistLsh<Gaussian> GaussianLsh;\n\n/// Random hyperplane based LSH for cosine similarity.\n/**\n * Random hyperplane based LSH can be used to approximate cosine similarity.\n * This LSH is defined on the D-dimensional vector space.  For a vector X, the\n * hash value is defined as\n * \\f[\n *                h(X) = [a_1*X_1 + a_2*X_2 + ... + a_D*X_D] > 0 ? 1 : 0\n * \\f]\n * where <a1,...,aD> is a random vector sampled from the unit hypersphere.\n *\n * The domain of the LSH is (const float *), and the parameter is defined as\n * \\code\n *      struct Parameter {\n *          unsigned dim;\n *      };\n * \\endcode\n * The range of this LSH is 0.\n *\n * For more information on stable distribution based LSH, see the following reference.\n *\n *      Charikar, M. S. 2002. Similarity estimation techniques from rounding\n *      algorithms. In Proceedings of the Thiry-Fourth Annual ACM Symposium on\n *      theory of Computing (Montreal, Quebec, Canada, May 19 - 21, 2002). STOC '02.\n *      ACM, New York, NY, 380-388. DOI= http://doi.acm.org/10.1145/509907.509965 \n *\n */\nclass HyperPlaneLsh\n{\n    std::vector<float> a_;\n\npublic:\n    /**\n     * Parameter to StableDistLsh.\n     */\n    struct Parameter\n    {\n        /// Dimension of domain.\n        unsigned dim;\n\n        Parameter() : dim(0) {}\n    };\n    typedef const float *Domain;\n\n    HyperPlaneLsh ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        a_ = boost::variate_generator<RNG &, boost::uniform_on_sphere<float> >\n                (rng, boost::uniform_on_sphere<float>(param.dim))();\n    }\n\n    template <typename RNG>\n    HyperPlaneLsh(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n\n    unsigned getRange () const\n    {\n        return 2;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        float ret = 0;\n        for (unsigned i = 0; i < a_.size(); ++i)\n        {\n            ret += a_[i] * obj[i];\n        }\n        return ret >= 0 ? 1 : 0;\n    }\n\n    unsigned operator () (Domain obj, float *delta) const\n    {\n        float ret = 0;\n        for (unsigned i = 0; i < a_.size(); ++i)\n        {\n            ret += a_[i] * obj[i];\n        }\n        if (ret >= 0)\n        {\n            *delta = ret;\n            return 1;\n        }\n        else\n        {\n            *delta = -ret;\n            return 0;\n        }\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & a_;\n    }\n};\n\n\n/// Random hyperplane based LSH for L1 distance.\n/**\n *   This LSH can be used to approximate L1 distance for closed D-dimensional\n *   space [min, max]^D.  It hashes each input vector into a 0-1 value, so its\n *   range is 2.  The hash function is the following:  a random dimension is\n *   chosen, and a threshold T is sampled uniformly in [min, max].  For each input\n *   vector, the value at that dimension is check.  If the value is larger than T,\n *   1 is returned and otherwise 0 is returned.  Following is the parameter.\n *\n *   \\code\n *   struct Parameter\n *   {\n *       unsigned dim;  // Dimension of domain.\n *       float min;     // Each dimension is limited in [min, max].\n *       float max;\n *   };\n *   \\endcode\n *\n *   The method is discussed in the following papers:\n *\n *      Zhe Wang, Wei Dong, William Josephson, Qin Lv, Moses Charikar, Kai Li.\n *      Sizing Sketches: A Rank-Based Analysis for Similarity Search. In\n *      Proceedings of the 2007 ACM SIGMETRICS International Conference on\n *      Measurement and Modeling of Computer Systems . San Diego, CA, USA. June\n *      2007.\n *\n *      Qin Lv, Moses Charikar, Kai Li. Image Similarity Search with Compact\n *      Data Structures. In Proceedings of ACM 13th Conference on Information\n *      and Knowledge Management (CIKM), Washington D.C., USA. November 2004.\n *\n *   Note that the original method allows the range of each dimension to be\n *   different and also allow each dimensioin to carry a weight.  The\n *   implementation here is simplified.\n */\nclass ThresholdingLsh\n{\n    unsigned dim_;\n    float threshold_;\npublic:\n    /**\n     * Parameter to ThresholdingLsh.\n     */\n    struct Parameter\n    {\n        /// Dimension of domain.\n        unsigned dim;\n        /// Lower bound of each dimension.\n        float min;\n        /// Upper bound of each dimension.\n        float max;\n\n        Parameter() : dim(0), min(0), max(0) {}\n    };\n    typedef const float *Domain;\n\n    ThresholdingLsh ()\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        dim_ = boost::variate_generator<RNG &, UniformUnsigned>(rng, UniformUnsigned(0,param.dim - 1))();\n        threshold_ = boost::variate_generator<RNG &, Uniform>(rng, Uniform(param.min,param.max))();\n    }\n\n    template <typename RNG>\n    ThresholdingLsh(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return 2;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return obj[dim_] >= threshold_ ? 1 : 0;\n    }\n\n    unsigned operator () (Domain obj, float *delta) const\n    {\n        float ret = obj[dim_] - threshold_;\n        if (ret >= 0)\n        {\n            *delta = ret;\n            return 1;\n        }\n        else\n        {\n            *delta = -ret;\n            return 0;\n        }\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & dim_;\n        ar & threshold_;\n    }\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/matrix-io.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file matrix-io.h\n * \\brief Matrix I/O routines, inlined implementation (Matrix::load & Matrix::save).\n */\n\n#ifndef LSHKIT_MATRIX_IO\n#define LSHKIT_MATRIX_IO\n\n#include <lshkit/common.h>\n#include <cassert>\n#include <fstream>\n\n#ifdef MATRIX_MMAP\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <fcntl.h>\n#include <unistd.h>\n#include <sys/mman.h>\n#include <errno.h>\n#endif\n\nnamespace lshkit{\n\ntemplate <typename T>\nvoid Matrix<T>::peek (const std::string &path, int *elem_size, int *size, int *dim)\n{\n    unsigned header[3]; /* entry size, row, col */\n    assert(sizeof header == 3*4);\n    std::ifstream is(path.c_str(), std::ios::binary);\n    BOOST_VERIFY(is);\n    is.read((char *)header, sizeof header);\n    BOOST_VERIFY(is);\n    *elem_size = header[0];\n    *size = header[1];\n    *dim = header[2];\n}\n\ntemplate <class T>\nvoid Matrix<T>::load (std::istream &is)\n{\n    unsigned header[3]; /* entry size, row, col */\n    assert(sizeof header == 3*4);\n    is.read((char *)header, sizeof header);\n    BOOST_VERIFY(is);\n    BOOST_VERIFY(header[0] == sizeof(T));\n    reset(header[2], header[1]);\n    size_t sz = sizeof(T) * dim * N;\n    is.read((char *)dims, sz);\n    BOOST_VERIFY(is);\n}\n\ntemplate <class T>\nvoid Matrix<T>::save (std::ostream &os)\n{\n    unsigned header[3];\n    header[0] = sizeof(T);\n    header[1] = N;\n    header[2] = dim;\n    os.write((char *)header, sizeof header);\n    BOOST_VERIFY(os);\n    size_t sz = sizeof(T) * dim * N;\n    os.write((char *)dims, sz);\n    BOOST_VERIFY(os);\n}\n\ntemplate <class T>\nvoid Matrix<T>::load (const std::string &path)\n{\n    std::ifstream is(path.c_str(), std::ios::binary);\n    load(is);\n}\n\ntemplate <class T>\nvoid Matrix<T>::save (const std::string &path)\n{\n    std::ofstream os(path.c_str(), std::ios::binary);\n    save(os);\n}\n\n#ifdef MATRIX_MMAP\ntemplate <class T>\nvoid Matrix<T>::map (const std::string &path) {\n\n    if (dims != NULL) delete[] dims;\n\n    int size = 0;\n\n    fd = open(path.c_str(), O_RDONLY);\n    BOOST_VERIFY(fd >= 0);\n\n    if (read(fd, &size, 4) != sizeof(size)) BOOST_VERIFY(0);\n    if (read(fd, &N, 4) != sizeof(N)) BOOST_VERIFY(0);\n    if (read(fd, &dim, 4) != sizeof(dim)) BOOST_VERIFY(0);\n\n    BOOST_VERIFY(size == sizeof(T));\n\n    size_t sz = sizeof(T) * size_t(dim) * size_t(N);\n    \n    char *start = (char *)mmap(NULL, sz, PROT_READ, MAP_PRIVATE, fd, 0);\n    if (start == MAP_FAILED) { BOOST_VERIFY(0); }\n    dims = (T *)(start + 3 * 4);\n\n}\n\ntemplate <class T>\nvoid Matrix<T>::unmap () {\n    char *start = (char *)dims - 3 * 4;\n    if (munmap(start, sizeof(T) * size_t(dim) * size_t(N)) != 0) BOOST_VERIFY(0);\n    close(fd);\n\n    dims = 0;\n    dim = 0;\n    N = 0;\n}\n\n#endif\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/matrix.h",
    "content": "#ifndef LSHKIT_MATRIX\n#define LSHKIT_MATRIX\n/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <fstream>\n#include <boost/dynamic_bitset.hpp>\n\n/**\n * \\file matrix.h\n * \\brief Dataset management.  A dataset is maintained as a matrix in memory.\n *\n * LSHKIT is a main memory indexing data structure and doesn't assume any\n * particular file format.  However, the standalone tools come with the LSHKIT\n * package use the following simple binary file format.\n *\n * The file contains N D-dimensional vectors of single precision floating point numbers.\n *\n * In the beginning of the file are three 32-bit unsigned integers: ELEM-SIZE,\n * SIZE, DIM. ELEM-SIZE is the size of the element, and currently the only\n * valid value is 4, which is the size of float.  SIZE is the number of vectors\n * in the file and DIM is the dimension.\n *\n * The rest of the file is SIZE vectors stored consecutively, and the total\n * size is SIZE * DIM * 4 bytes.\n *\n * Such binary files can be accessed using lshkit::Matrix<float>.\n */\n\nnamespace lshkit {\n\n/// Matrix\n/**\n  * An matrix of size (NxD) is used to store an array of N D-dimensional\n  * vectors.\n  */\ntemplate <class T>\nclass Matrix\n{\n    int dim, N;\n    T *dims;\n\n    void load (const char *);\n    void save (const char *);\n\n#ifdef MATRIX_MMAP\n    int fd;\n#endif\npublic:\n    /// Reset the size of matrix.\n    /**\n     * @param dim Dimension of each feature vector.\n     * @param N Number of feature vectors.\n     */\n    void reset (int _dim, int _N)\n    {\n        dim = _dim;\n        N = _N;\n        if (dims != NULL) delete[] dims;\n        dims = new T[dim * N];\n    }\n\n    /// Release memory.\n    void free (void) {\n        dim = N = 0;\n        if (dims != NULL) delete[] dims;\n        dims = NULL;\n    }\n    \n    /// Default constructor.\n    /** Allocates an empty matrix.  Should invoke reset or load before using it.*/\n    Matrix () :dim(0), N(0), dims(NULL) {}\n\n    /// Constructor, same as Matrix() followed immediately by reset().\n    Matrix (int _dim, int _N) : dims(NULL) { reset(_dim, _N); }\n\n    /// Destructor.\n    ~Matrix () { if (dims != NULL) delete[] dims; }\n\n    /// Access the ith vector.\n    const T *operator [] (int i) const {\n        return dims + i * dim;\n    }\n\n    /// Access the ith vector.\n    T *operator [] (int i) {\n        return dims + i * dim;\n    }\n\n    int getDim () const {return dim; }\n    int getSize () const {return N; }\n\n\n    /// Peek into a file to determine the size and dimension of the dataset.\n    /**\n     *  @param path File to peek.\n     *  @param elem_size Size of the vector element.\n     *  @param size Number of vectors in the file.\n     *  @param dim Dimension of the vectors.\n     *\n     *  This function doesn't read the whole matrix into memory, so it is fast.\n     */\n    static void peek (const std::string &path, int *elem_size, int *size, int *dim);\n\n    void load (const std::string &path);\n    void save (const std::string &path);\n    void load (std::istream &is);\n    void save (std::ostream &os);\n\n#ifdef MATRIX_MMAP\n    void map (const std::string &path);\n    void unmap ();\n#endif\n\n    /// Construct from a file.\n    Matrix (const std::string &path): dims(NULL) { load(path); }\n\n    /// An accessor class to be used with LSH index.\n    class Accessor\n    {\n        const Matrix &matrix_;\n        boost::dynamic_bitset<> flags_;\n    public:\n        typedef unsigned Key;\n        typedef const float *Value;\n\n        Accessor(const Matrix &matrix)\n            : matrix_(matrix), flags_(matrix.getSize()) {}\n\n        void reset () {\n            flags_.reset();\n        }\n\n        bool mark (unsigned key) {\n            if (flags_[key]) return false;\n            flags_.set(key);\n            return true;\n        }\n\n        const float *operator () (unsigned key) {\n            return matrix_[key];\n        }\n    };\n\n    /*\n    class View\n    {\n        const Matrix<T> *ref_;\n        int off_, len_;\n    public:\n        View (const Matrix<T> *ref, int off, int len)\n            : ref_(ref), off_(off), len_(len) {}\n        const T *operator [] (int i) const { return ref_->operator[](off_ + i); }\n        int getDim () const {return ref_->getDim(); }\n        int getSize () const {return len_; }\n    };\n\n    View getView (int off, int len) const\n    {\n        return View(this, off, len);\n    }\n\n    View getView () const\n    {\n        return View(this, 0, getSize());\n    }\n    */\n};\n\ntypedef Matrix<float> FloatMatrix;\n\n}\n\n#include <lshkit/matrix-io.h>\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/metric.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file metric.h\n * \\brief Common distance measures.\n */\n\n#ifndef __FERRET_METRIC__\n#define __FERRET_METRIC__\n\n// This file implements some common distance functions.\n\n#include <functional>\n#include <iostream>\n\nnamespace lshkit { namespace metric {\n\n/// L1 distance\ntemplate <typename T /* real type */>\nclass l1 : public std::binary_function<T, T, float>\n{\n    unsigned dim_;\npublic:\n    l1 (unsigned dim) : dim_(dim) {}\n    float operator () (const T *first1, const T *first2) const\n    {\n        #if DEBUG_LEVEL > 50\n          std::cout << \"dim \" << dim_ << std::endl;\n          for (unsigned i = 0; i < dim_; ++i) std::cout << first1[i] << \" \"; std::cout << std::endl;\n          for (unsigned i = 0; i < dim_; ++i) std::cout << first2[i] << \" \"; std::cout << std::endl;\n        #endif\n\n        float r = 0.0;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += std::fabs(first1[i] - first2[i]);\n        }\n        return r;\n    }\n};\n\n/// L2 distance\ntemplate <typename T /* real type */>\nclass l2 : public std::binary_function<const T*, const T*, float>\n{\n    unsigned dim_;\npublic:\n    l2 (unsigned dim) : dim_(dim) {}\n    float operator () (const T *first1, const T *first2) const\n    {\n        float r = 0.0;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += sqr(first1[i] - first2[i]);\n        }\n        return std::sqrt(r);\n    }\n};\n\n/// Squred L2 distance\n/**\n  * The square root operation is costly.  For K-NN search, l2sqr\n  * gives the same ranking as l2.\n  */\ntemplate <typename T /* real type */>\nclass l2sqr : public std::binary_function<const T*, const T*, float>\n{\n    unsigned dim_;\npublic:\n    l2sqr (unsigned dim) : dim_(dim) {}\n    unsigned dim() const {\n        return dim_;\n    }\n    float operator () (const T *first1, const T *first2) const\n    {\n        float r = 0.0;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += sqr(first1[i] - first2[i]);\n        }\n        return r;\n    }\n};\n\n/// Max-norm distance.\ntemplate <typename T /* real type */>\nclass max : public std::binary_function<const T*, const T*, float>\n{\n    unsigned dim_;\npublic:\n    max (unsigned dim) : dim_(dim) {}\n    float operator () (const T *first1, const T *first2) const\n    {\n        double r = std::numeric_limits<T>::min();\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += max(r, std::fabs(first1[i] - first2[i]));\n        }\n        return (float)std::sqrt(r);\n    }\n};\n\n/// (Basic) hamming distance\n/** Take the hamming distance between two values of type T as bit-vectors.\n *  Normally you should use hamming instead of basic_hamming.\n  */\nstruct basic_hamming\n{\n    static unsigned char_bit_cnt[];\n\n    template <typename B>\n    unsigned __hamming (B a, B b)\n    {\n        B c = a ^ b;\n        unsigned char *p = reinterpret_cast<unsigned char *>(&c);\n        unsigned r = 0;\n        for (unsigned i = 0; i < sizeof(B); i++)\n        {\n            r += char_bit_cnt[*p++];\n        }\n        return r;\n    }\n\n    unsigned __hamming (unsigned char c1, unsigned char c2) const\n    {\n        return char_bit_cnt[c1 ^ c2];\n    }\n\n};\n\n/// Hamming distance.\n/**\n  * Take the hamming distance between two bit-vectors, represented as arrays\n  * of some basic type.  The parameter dim is the size of the bit-vectors in\n  * terms of the number of basic types.  For example, if we use uchar_t as basic\n  * type, then the dim of a 256-bit vector is 256/8 = 32.\n */\ntemplate <typename T>\nstruct hamming : public std::binary_function<const T*, const T*, float>, public basic_hamming\n{\n    unsigned dim_;\npublic:\n\n    hamming(unsigned dim): dim_(dim) {}\n    float operator () (const T *first1, const T *first2) const\n    {\n        unsigned r = 0;\n        for (unsigned i = 0; i < dim_; ++i)\n        {\n            r += __hamming(first1[i], first2[i]);\n        }\n        return r;\n    }\n};\n\n\n}}\n\n#endif\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/mplsh-model.h",
    "content": "/*\n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n\n    This file is part of LSHKIT.\n\n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#ifndef __LSHKIT_MPLSH_MODEL__\n#define __LSHKIT_MPLSH_MODEL__\n\n#include <fstream>\n#include <sstream>\n#include <boost/math/distributions/gamma.hpp>\n#include <boost/math/distributions/normal.hpp>\n#include <lshkit/matrix.h>\n\n/**\n * \\file mplsh-model.h\n * \\brief Model of Multi-probe LSH.\n *\n * The modeling code is not well documented because I find it hard to do so.\n * The code is essentially a translation of our CIKM'08 paper.  If you do wish\n * to look into the code, beware that when the distance is used, sometime I\n * mean L2 distance (when Gaussian distribution of the distance between\n * the random projection of two points is considered)\n * and sometime I mean L2sqr distance because L2sqr distance between two points\n * in the database follows Gamma distribution.\n */\n\nnamespace lshkit {\n\ntypedef boost::math::normal_distribution<double> GaussianDouble;\ntypedef boost::math::gamma_distribution<double> GammaDouble;\n\n/// Maximum likelihood estimation of gamma distribution.\n/**\n  * @param M sample mean.\n  * @param G geometric mean of sample.\n  */\nGammaDouble GammaDoubleMLE (double M, double G);\n\n/// Data parameter.\n/**\n  * This class represents the parameters extracted from the dataset.\n  */\n// We use l2sqr here.\nclass DataParam\n{\n    double M, G;\n    double a_M, b_M, c_M;\n    double a_G, b_G, c_G;\n\n    /*\n    DataParam () {}\n    DataParam (const DataParam &dp)\n        : M(dp.M), G(dp.G),\n        a_M(dp.a_M), b_M(dp.b_M), c_M(dp.c_M),\n        a_G(dp.a_G), b_G(dp.b_G), c_G(dp.c_G) {}\n        */\npublic:\n    /// Constructor.\n    /**\n      * For now, parameters can only be loaded from a file.\n      */\n    DataParam (const std::string &path)\n    {\n        std::ifstream is(path.c_str());\n        is >> M >> G >> a_M >> b_M >> c_M\n             >> a_G >> b_G >> c_G;\n    }\n\n    // read from string\n    DataParam(const std::string& fit_data, int dummy) {\n      std::stringstream ss(fit_data);\n      ss >> M >> G >> a_M >> b_M >> c_M\n             >> a_G >> b_G >> c_G;\n    }\n\n    /// Estimate the global distance distribution.\n    GammaDouble globalDist () const\n    {\n        return GammaDoubleMLE(M, G);\n    }\n\n    /// Estimate the distance distribution of the K-th NN.\n    /**\n      * @param N size of the (extraplolated) dataset.\n      */\n    GammaDouble topkDist (unsigned N, unsigned K) const\n    {\n        double m, g;\n        m = std::exp(a_M) * std::pow(double(N), b_M) * std::pow(double(K), c_M);\n        g = std::exp(a_G) * std::pow(double(N), b_G) * std::pow(double(K), c_G);\n        return GammaDoubleMLE(m,g);\n    }\n\n    void scale (double s) {\n        M /= s;\n        G /= s;\n        a_M -= std::log(s);\n        a_G -= std::log(s);\n    }\n\n    double scale () {\n        double s = M;\n        scale(s);\n        return s;\n    }\n\n};\n\n/// Multi-probe LSH parameters.\n// we use l2 here.\nclass MultiProbeLshModel\n{\n    unsigned L_;\n    double W_;\n    unsigned M_, T_;\npublic:\n    MultiProbeLshModel(unsigned L, double W, unsigned M, unsigned T)\n        : L_(L), W_(W), M_(M), T_(T)\n    {}\n\n    double recall (double l2) const;\n\n    void setL (unsigned L) { L_ = L; }\n    void setW (double W) { W_ = W; }\n    void setT (unsigned T) { T_ = T; }\n    void setM (unsigned M) { M_ = M; }\n\n    unsigned getT () const {return T_; }\n\n};\n\n// we use l2sqr here.\nclass MultiProbeLshDataModel: public MultiProbeLshModel\n{\n// temporary, not thread safe\n    GammaDouble globalDist_;\n    std::vector<GammaDouble> topkDists_;\n\npublic:\n    MultiProbeLshDataModel(const DataParam &param, unsigned N, unsigned K)\n        : MultiProbeLshModel(0,0,0,0), globalDist_(1.0),\n        topkDists_(K, globalDist_)\n    {\n        globalDist_ = param.globalDist();\n        for (unsigned k = 0; k < K; k++)\n        {\n            topkDists_[k] = param.topkDist(N, k + 1);\n        }\n    }\n\n    double avgRecall () const;\n    double cost () const;\n};\n\n// we use l2 here.\nclass MultiProbeLshRecallTable\n{\n    unsigned step_;\n    double min_, max_;\n    double lmin_, lmax_;\n    Matrix<float> table_;\n\npublic:\n\n    void load (std::istream &is) {\n        is.read((char *)&min_, sizeof(min_));\n        is.read((char *)&max_, sizeof(max_));\n        table_.load(is);\n\n        step_ = table_.getDim();\n        lmin_ = log(min_);\n        lmax_ = log(max_);\n    }\n\n    void save (std::ostream &os) {\n        os.write((const char *)&min_, sizeof(min_));\n        os.write((const char *)&max_, sizeof(max_));\n        table_.save(os);\n    }\n\n    void reset (MultiProbeLshModel model, unsigned d_step, double d_min, double d_max)\n    {\n        if (d_min <= 0 || d_max <= 0) {\n            throw std::logic_error(\"Make sure a distance is positive.\");\n        }\n\n        step_ = d_step;\n\n        min_ = d_min;\n        max_ = d_max;\n        lmin_ = log(d_min);\n        lmax_ = log(d_max);\n        table_.reset(d_step, model.getT());\n\n        unsigned T = model.getT();\n        double delta = (lmax_ - lmin_) / step_;\n        for (unsigned t = 0; t < T; ++t)\n        {\n            model.setT(t+1);\n            for (unsigned d = 0; d < step_; ++d)\n            {\n                table_[t][d] = model.recall(exp(lmin_ + delta * d));\n            }\n        }\n    }\n\n    float lookup (float dist, int T) const\n    {\n        unsigned d;\n        if (dist < min_) return 1.0;\n        if (!(dist < max_)) return 0.0;\n        d = std::floor((log(dist) - lmin_) * step_ / (lmax_ - lmin_) + 0.5);\n        return table_[T-1][d];\n    }\n\n};\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/mplsh.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n  * \\file mplsh.h\n  * \\brief Multi-Probe LSH indexing.\n  *\n  * Multi-Probe LSH (MPLSH) uses the same data structure as LshIndex, except that it\n  * probes more than one buckets in each hash table to generate more accurate\n  * results.  Equivalently, less hash tables are needed to achieve the same\n  * accuracy.  The limitation is that the current implementation only works for\n  * L2 distance.\n  * \n  * Follow the following 4 steps to use the MPLSH API.\n  * \n  * \\section mplsh-1 1. Implement a scanner class which scan the candidate keys.\n  * \n  * The MPLSH data structure doesn't manage the feature vectors, but only keeps\n  * the keys to retrieve them.  You need to provide a scanner class to MPLSH, and\n  * for each query, MPLSH will pass the candidate keys to the scanner.\n  * The scanner usually keeps an K-NN data structure internally and updates\n  * it when receives candidate keys.\n  *\n  * MPLSH uses the scanner as a unary function taking a key as argument.\n  *\n  * The default scanner implementation is TopkScanner.\n  * \n  * \\code\n  * class Scanner\n  * {\n  *      ...\n  *      void operator () (unsigned key);\n  * };\n  * \\endcode\n  *\n  * \\section mplsh-2 2. Construct the MPLSH data structure.\n  *\n  * Assume we use key type KEY.\n  *\n  * \\code\n  *\n  * typedef MultiProbeLshIndex<KEY> Index;\n  *\n  * Index index;\n  * \\endcode\n  *\n  * The index can not be used yet.\n  *\n  * \\section mplsh-3 3. Populate the index / Load the index from a previously saved file.\n  *\n  * When the index is initially built, use the following to populate the index:\n  * \\code\n  * Index::Parameter param;\n  *\n  * //Setup the parameters.  Note that L is not provided here.\n  * param.W = W;\n  * param.H = H; // See H in the program parameters.  You can just use the default value.\n  * param.M = M;\n  * param.dim = DIMENSION_OF_THE_DATA\n  * DefaultRng rng; // random number generator.\n  * \n  * index.init(param, rng, L);\n  * \n  * for (each possible key, value pair) {\n  *     index.insert(key, value);\n  * }\n  * \n  * // You can now save the index for future use.\n  * ofstream os(index_file.c_str(), std::ios::binary);\n  * index.save(os);\n  * \\endcode\n  *  \n  * Or you can load from a previously saved file\n  *  \n  * \\code\n  * ifstream is(index_file.c_str(), std::ios::binary);\n  * index.load(is);\n  * \\endcode\n  * \n  * \\section mplsh-4 4. Query the MPLSH. \n  * \n  * \\code\n  *   \n  * float *query;\n  * ...\n  * index.query(query, T, scanner);   cnt is the number of points actually scanned.\n  * \n  * \\endcode\n  *\n  * See the source file lshkit/tools/mplsh-run.cpp for a full example of using MPLSH.\n  *\n  * For adaptive probing, I hard coded the sensitive range of KNN distance to\n  * [0.0001W, 100W] and logarithmically quantized the range to 200 levels.\n  * If you find that your KNN distances fall outside this range, or want more refined\n  * quantization, you'll have to modify the code in lshkit::MultiProbeLshIndex::init().\n  *\n  * \\section ref Reference\n  *\n  * Wei Dong, Zhe Wang, William Josephson, Moses Charikar, Kai Li. Modeling LSH\n  * for Performance Tuning.. To appear in In Proceedings of ACM 17th Conference\n  * on Information and Knowledge Management (CIKM). Napa Valley, CA, USA.\n  * October 2008.\n  *\n  * Qin Lv, William Josephson, Zhe Wang, Moses Charikar, Kai Li. Multi-Probe LSH:\n  * Efficient Indexing for High-Dimensional Similarity Search. Proceedings of the\n  * 33rd International Conference on Very Large Data Bases (VLDB). Vienna,\n  * Austria. September 2007.\n  *\n  */\n\n#ifndef __LSHKIT_PROBE__\n#define __LSHKIT_PROBE__\n\n#include <lshkit/common.h>\n#include <lshkit/lsh.h>\n#include <lshkit/composite.h>\n#include <lshkit/metric.h>\n#include <lshkit/lsh-index.h>\n#include <lshkit/mplsh-model.h>\n#include <lshkit/topk.h>\n\nnamespace lshkit\n{\n\nstatic inline unsigned long long leftshift (unsigned N) {\n    return (unsigned long long)1 << N;\n}\n\n/// Probe vector.\nstruct Probe\n{\n    unsigned long long mask;\n    unsigned long long shift;\n    float score;\n    unsigned reserve;\n    bool operator < (const Probe &p) const { return score < p.score; }\n    Probe operator + (const Probe &m) const\n    {\n        Probe ret;\n        ret.mask = mask | m.mask;\n        ret.shift = shift | m.shift;\n        ret.score = score + m.score;\n        return ret;\n    }\n    bool conflict (const Probe &m)\n    {\n        return (mask & m.mask) != 0;\n    }\n    static const unsigned MAX_M = 64;\n    static const unsigned MAX_T = 200;\n}; \n\n/// Probe sequence.\ntypedef std::vector<Probe> ProbeSequence;\n\n/// Generate a template probe sequence.\nvoid GenProbeSequenceTemplate (ProbeSequence &seq, unsigned M, unsigned T);\n\n/// Probe sequence template.\nclass ProbeSequenceTemplates: public std::vector<ProbeSequence>\n{\npublic:\n    ProbeSequenceTemplates(unsigned max_M, unsigned max_T)\n        : std::vector<ProbeSequence>(max_M + 1)\n    {\n        for (unsigned i = 1; i <= max_M; ++i)\n        {\n            GenProbeSequenceTemplate(at(i), i, max_T);\n        }\n    }\n};\n\nextern ProbeSequenceTemplates __probeSequenceTemplates;\n\n/// Multi-Probe LSH class.\nclass MultiProbeLsh: public RepeatHash<GaussianLsh> \n{\n    unsigned H_;\npublic:\n    typedef RepeatHash<GaussianLsh> Super;\n    typedef Super::Domain Domain;\n\n    /**\n     * Parameter to MPLSH. \n     *\n     * The following parameters are inherited from the ancestors\n     * \\code\n     *   unsigned repeat; // the same as M in the paper\n     *   unsigned dim;\n     *   float W;\n     * \\endcode\n     */\n    struct Parameter : public Super::Parameter {\n\n        unsigned range;\n\n        template<class Archive>\n        void serialize(Archive & ar, const unsigned int version)\n        {\n            ar & range;\n            ar & repeat;\n            ar & dim;\n            ar & W;\n        }\n    };\n\n    MultiProbeLsh () {}\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        H_ = param.range;\n        Super::reset(param, rng);\n    }\n\n    template <typename RNG>\n    MultiProbeLsh(const Parameter &param, RNG &rng)\n    {\n        H_ = param.range;\n        Super::reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        return H_;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return Super::operator ()(obj) % H_;\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        Super::serialize(ar, version);\n        ar & H_;\n    }\n\n    void genProbeSequence (Domain obj, std::vector<unsigned> &seq, unsigned T) const;\n};\n\n\n/// Multi-Probe LSH index.\ntemplate <typename KEY>\nclass MultiProbeLshIndex: public LshIndex<MultiProbeLsh, KEY>\n{\npublic:\n    typedef LshIndex<MultiProbeLsh, KEY> Super;\n    /**\n     * Super::Parameter is the same as MultiProbeLsh::Parameter\n     */\n    typedef typename Super::Parameter Parameter;\n\nprivate:\n\n    Parameter param_;\n    MultiProbeLshRecallTable recall_;\n\npublic: \n    typedef typename Super::Domain Domain;\n    typedef KEY Key;\n\n    /// Constructor.\n    MultiProbeLshIndex() {\n    } \n\n    /// Initialize MPLSH.\n    /**\n      * @param param parameters.\n      * @param engine random number generator (if you are not sure about what to\n      * use, then pass DefaultRng.\n      * @param accessor object accessor (same as in LshIndex).\n      * @param L number of hash tables maintained.\n      */\n    template <typename Engine>\n    void init (const Parameter &param, Engine &engine, unsigned L) {\n        Super::init(param, engine, L);\n        param_ = param;\n        // we are going to normalize the distance by window size, so here we pass W = 1.0.\n        // We tune adaptive probing for KNN distance range [0.0001W, 20W].\n        recall_.reset(MultiProbeLshModel(Super::lshs_.size(), 1.0, param_.repeat, Probe::MAX_T), 200, 0.0001, 20.0);\n    }\n\n    /// Load the index from stream.\n    void load (std::istream &ar) \n    {\n        Super::load(ar);\n        param_.serialize(ar, 0);\n        recall_.load(ar);\n        BOOST_VERIFY(ar);\n    }\n\n    /// Save to the index to stream.\n    void save (std::ostream &ar)\n    {\n        Super::save(ar);\n        param_.serialize(ar, 0);\n        recall_.save(ar);\n        BOOST_VERIFY(ar);\n    }\n\n    /// Query for K-NNs.\n    /**\n      * @param obj the query object.\n      * @param scanner \n      */\n    template <typename SCANNER>\n    void query (Domain obj, unsigned T, SCANNER &scanner)\n    {\n        std::vector<unsigned> seq;\n        for (unsigned i = 0; i < Super::lshs_.size(); ++i) {\n            Super::lshs_[i].genProbeSequence(obj, seq, T);\n            for (unsigned j = 0; j < seq.size(); ++j) {\n                typename Super::Bin &bin = Super::tables_[i][seq[j]];\n                BOOST_FOREACH(Key key, bin) {\n                    scanner(key);\n                }\n            }\n        }\n    }\n\n    /// Query for K-NNs, try to achieve the given recall by adaptive probing.\n    /**\n      * There's a special requirement for the scanner type used in adaptive query.\n      * It should support the following method to return the current K-NNs:\n      *\n      * const Topk<KEY> &topk () const;\n      */\n    template <typename SCANNER>\n    void query_recall (Domain obj, float recall, SCANNER &scanner) const\n    {\n        unsigned K = scanner.topk().getK();\n        if (K == 0) throw std::logic_error(\"CANNOT ACCEPT R-NN QUERY\");\n        if (scanner.topk().size() < K) throw std::logic_error(\"ERROR\");\n        unsigned L = Super::lshs_.size();\n        std::vector<std::vector<unsigned> > seqs(L);\n        for (unsigned i = 0; i < L; ++i) {\n            Super::lshs_[i].genProbeSequence(obj, seqs[i], Probe::MAX_T);\n        }\n\n        for (unsigned j = 0; j < Probe::MAX_T; ++j) {\n            if (j >= seqs[0].size()) break;\n            for (unsigned i = 0; i < L; ++i) {\n                BOOST_FOREACH(Key key, Super::tables_[i][seqs[i][j]]) {\n                    scanner(key);\n                }\n            }\n            float r = 0.0;\n            for (unsigned i = 0; i < K; ++i) {\n                r += recall_.lookup(std::sqrt(scanner.topk()[i].dist) / param_.W, j + 1);\n            }\n            r /= K;\n            if (r >= recall) break;\n        }\n    }\n};\n\n}\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/multiprobelsh-fitdata.h",
    "content": "/*\n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n\n    This file is part of LSHKIT.\n\n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *  \\file fitdata.cpp\n *  \\brief Gather statistics from dataset for MPLSH tuning.\n *\n *  This program gahters statistical data from a small sample dataset\n *  for automatic MPLSH parameter tuning.  It carries out the following\n *  steps:\n *  -# Sample N points from the dataset. Only those N points will be used for future computation.\n *  -# Sample P pairs of points from the sample, calculate the distance for each pair.\n *  -# Sample Q points from the sample as queries points.\n *  -# Divide the sample into F folds.\n *  -# For i = 1 to F, take i folds and run K-NN search, so the query points\n *     will be searched against sample datasets of N/F, 2N/F, ..., N/F points.\n *\n *  The statistical data is printed to standard output after the progress display.\n *\n\\verbatim\nAllowed options:\n  -h [ --help ]          produce help message.\n  -N [ -- ] arg (=0)     number of points to use\n  -P [ -- ] arg (=50000) number of pairs to sample\n  -Q [ -- ] arg (=1000)  number of queries to sample\n  -K [ -- ] arg (=100)   search for K nearest neighbors\n  -F [ -- ] arg (=10)    divide the sample to F folds\n  -D [ --data ] arg      data file\n\\endverbatim\n */\n\n#ifndef _MPLSH_FITDATA_H_\n#define _MPLSH_FITDATA_H_\n\n#include \"logging.h\"\n\n#include <cstdlib>\n#include <sstream>\n#include <gsl/gsl_multifit.h>\n\nnamespace lshkit {\n\ninline\nbool is_good_value (double v) {\n    return ((v > -std::numeric_limits<double>::max()) &&\n            (v < std::numeric_limits<double>::max()));\n}\n\ninline\nstd::string FitData(const FloatMatrix& data,\n                    unsigned N,            // number of points to use\n                    unsigned P,            // number of pairs to sample\n                    unsigned Q,            // number of queries to sample\n                    unsigned K,            // search for K neighbors neighbors\n                    unsigned F             // divide the sample to F folds\n                   )\n{\n    LOG(LIB_INFO) << \"started running FitData\" << std::endl;\n\n    std::vector<unsigned> idx(data.getSize());\n    for (size_t i = 0; i < idx.size(); ++i) idx[i] = i;\n    std::random_shuffle(idx.begin(), idx.end());\n\n    if (N > 0 && N < static_cast<unsigned>(data.getSize())) idx.resize(N);\n\n    metric::l2sqr<float> l2sqr(data.getDim());\n\n    DefaultRng rng;\n    boost::variate_generator<DefaultRng &, UniformUnsigned> gen(rng,\n             UniformUnsigned(0, idx.size()-1));\n\n    double gM = 0.0;\n    double gG = 0.0;\n    {\n        // sample P pairs of points\n        for (unsigned k = 0; k < P; ++k)\n        {\n            double dist, logdist;\n            for (;;)\n            {\n                unsigned i = gen();\n                unsigned j = gen();\n                if (i == j) continue;\n                dist = l2sqr(data[idx[i]], data[idx[j]]);\n                logdist = log(dist);\n                if (is_good_value(logdist)) break;\n            }\n            gM += dist;\n            gG += logdist;\n        }\n        gM /= P;\n        gG /= P;\n        gG = exp(gG);\n    }\n\n    if (Q > idx.size()) Q = idx.size();\n    if (K > idx.size() - Q) K = idx.size() - Q;\n    /* sample query */\n    std::vector<unsigned> qry(Q);\n\n    SampleQueries(&qry, idx.size(), rng);\n\n    /* do the queries */\n    std::vector<Topk<unsigned> > topks(Q);\n    for (unsigned i = 0; i < Q; ++i) topks[i].reset(K);\n\n    /* ... */\n    gsl_matrix *X = gsl_matrix_alloc(F * K, 3);\n    gsl_vector *yM = gsl_vector_alloc(F * K);\n    gsl_vector *yG = gsl_vector_alloc(F * K);\n    gsl_vector *pM = gsl_vector_alloc(3);\n    gsl_vector *pG = gsl_vector_alloc(3);\n    gsl_matrix *cov = gsl_matrix_alloc(3,3);\n\n    std::vector<double> M(K);\n    std::vector<double> G(K);\n\n    unsigned m = 0;\n    for (unsigned l = 0; l < F; l++)\n    {\n        // Scan\n        for (unsigned i = l; i< idx.size(); i += F)\n        {\n            for (unsigned j = 0; j < Q; j++)\n            {\n                unsigned id = qry[j];\n                if (i != id)\n                {\n                    float d = l2sqr(data[idx[id]], data[idx[i]]);\n                    if (is_good_value(log(double(d))))\n                      topks[j] << Topk<unsigned>::Element(i, d);\n                }\n            }\n        }\n\n        fill(M.begin(), M.end(), 0.0);\n        fill(G.begin(), G.end(), 0.0);\n\n        for (unsigned i = 0; i < Q; i++)\n        {\n            for (unsigned k = 0; k < K; k++)\n            {\n                M[k] += topks[i][k].dist;\n                G[k] += log(topks[i][k].dist);\n            }\n        }\n\n        for (unsigned k = 0; k < K; k++)\n        {\n            M[k] = log(M[k]/Q);\n            G[k] /= Q;\n            gsl_matrix_set(X, m, 0, 1.0);\n            gsl_matrix_set(X, m, 1, log(double(data.getSize() * (l + 1)) / double(F)));\n            gsl_matrix_set(X, m, 2, log(double(k + 1)));\n            gsl_vector_set(yM, m, M[k]);\n            gsl_vector_set(yG, m, G[k]);\n            ++m;\n        }\n\n        //++progress;\n    }\n\n    gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc(F * K, 3);\n\n    double chisq;\n\n    gsl_multifit_linear(X, yM, pM, cov, &chisq, work);\n    gsl_multifit_linear(X, yG, pG, cov, &chisq, work);\n\n    std::stringstream ss;\n    ss << gM << \" \" << gG << std::endl;\n    ss << gsl_vector_get(pM, 0) << \" \"\n       << gsl_vector_get(pM, 1) << \" \"\n       << gsl_vector_get(pM, 2) << std::endl;\n    ss << gsl_vector_get(pG, 0) << \" \"\n       << gsl_vector_get(pG, 1) << \" \"\n       << gsl_vector_get(pG, 2) << std::endl;\n\n    gsl_matrix_free(X);\n    gsl_matrix_free(cov);\n    gsl_vector_free(pM);\n    gsl_vector_free(pG);\n    gsl_vector_free(yM);\n    gsl_vector_free(yG);\n\n    LOG(LIB_INFO) << ss.str(); \n    LOG(LIB_INFO) << \"finished FitData\";\n\n    return ss.str();\n}\n\n}     // namespace lshkit\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/multiprobelsh-tune.h",
    "content": "/*\n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n\n    This file is part of LSHKIT.\n\n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file mplsh-tune.cpp\n * \\brief Automatic parameter tuning for MPLSH.\n *\n * Assume you have a sample datafile sample.data.  You need to take the following two steps for parameter tuning:\n * \\section tune_1 1. Create a model of data distribution.\n *\n * Use the following command\n *\n \\verbatim\n fitdata -D sample.data\n \\endverbatim\n *\n * The following options are acceptable:\n \\verbatim\n Allowed options:\n    -h [ --help ]            produce help message.\n    -N [ -- ] arg (=0)     # of points to use.  if N = 0, then the whole sample dataset is used.\n    -P [ -- ] arg (=50000) # pairs of points to sample\n    -Q [ -- ] arg (=1000)  # queries to sample\n    -K [ -- ] arg (=100)   Top K\n    -F [ -- ] arg (=10)\n    -D [ --data ] arg      data file\n  \\endverbatim\n *\n * For example, we use the following command to generate statistics from audio.data:\n *\n \\verbatim\n fitdata -D audio.data\n \\endverbatim\n *\n * We get the following output\n *\n  \\verbatim\n  0%   10   20   30   40   50   60   70   80   90   100%\n  |----|----|----|----|----|----|----|----|----|----|\n  ***************************************************\n  3.28031 2.90649\n  0.831193        -0.160539       0.150609\n  0.825921        -0.186676       0.177095\n  \\endverbatim\n *\n * Cut and paste the last three lines into a file named audio.param.\n *\n * \\section tune_2 2. Use mplsh-tune to tune parameters.\n *\n * There are four parameters in MPLSH: L, T, M, W.  You'll have to choose L and\n * T and let mplsh-tune to find the optimal M and W.   For example, we use the\n * following command to tune M and W for the audio dataset.\n *\n * \\verbatim\n mplsh-tune -P audio.param -N 54387 -L 8 -T 20 -R 0.8 -K 50\n\n  -P is the parameter file we generated in the 1st step;\n  -N is the whole dataset size.  Note that in the first step we only use a subset of the data to generate the model.\n  -L # hash tables to use.\n  -T # of bins probed in each hash table\n  -R required recall.\n  -r radius\n  -K K-NNs to find.\n \\endverbatim\n *\n * mplsh-tune will output best W and M that will meet the required recall.  For\n * the audio data, we get the following output:\n *\n \\verbatim\n L = 8   T = 20  M = 20  W = 4.32        recall = 0.805276       cost = 0.0968405\n \\endverbatim\n *\n * We can then run the benchmark and see how close is the prediction to the real number:\n *\n \\verbatim\n mplsh-run -D audio.data -B audio.query -L 8 -T 20 -W 4.32 -M 20 -Q 100 -K 50\n \\endverbatim\n *\n \\verbatim\n Loading data...done.\n Loading benchmark...done.\n Initializing index...\n done.\n Populating index...\n\n 0%   10   20   30   40   50   60   70   80   90   100%\n |----|----|----|----|----|----|----|----|----|----|\n ***************************************************\n CREATE TIME: 3.19s\n Running queries...\n\n 0%   10   20   30   40   50   60   70   80   90   100%\n |----|----|----|----|----|----|----|----|----|----|\n ***************************************************\n QUERY TIME: 0.57s\n [RECALL] 0.8192 +/- 0.234635\n [COST] 0.115853 +/- 0.0980032\n\\endverbatim\n *\n * (Note that the audio dataset is a pretty hard one.)\n *\n * \\section tune_LT How to choose L and T?\n *\n * L is the number of hash tables maintained in the memory and generally larger\n * L results in better performance (smaller cost to reach certain recall).\n * Hash tables only stores pointers to the feature vectors.  So on a 64-bit\n * machine, N points will take 8N bytes plus some overhead.  For our audio\n * dataset, where there are about 55K points, one hash table takes about 500KB\n * of memory and 8 hash tables will take 4MB.\n *\n * T is the number of buckets to probe in each hash table.  A number from 10 ~\n * 100 would be fine.  Larger T results in lower cost.  Yes, more buckets are\n * probed in each hash table, but that would allow us to make each hash bucket\n * smaller, and the overall effect is less points are scanned to reach the\n * required recall.  However, our model doesn't consider the cost of generating\n * the probe sequence and when T is very large, that cost can be significant.\n * So in practice T should not really be much larger than 100.\n *\n *\n */\n\n#ifndef _MPLSH_TUNE_H_\n#define _MPLSH_TUNE_H_\n\n#include \"logging.h\"\n\n#include <boost/format.hpp>\n#include <lshkit.h>\n#include <lshkit/tune.h>\n\nnamespace lshkit {\n\nstatic const int MIN_L = 1;\nstatic const int MAX_L = 20;\n\nstatic const int MIN_T = 1;\nstatic const int MAX_T = Probe::MAX_T;\n\nstatic const int MIN_M = 1;\nstatic const int MAX_M = Probe::MAX_M;\n\nstatic const double MIN_W = 0.01;\nstatic const double MAX_W = 10;\nstatic const double NUM_W = 400;\nstatic const double DELTA_W = (MAX_W - MIN_W) / NUM_W;\n\n// L, T, M, W\nstatic tune::Interval intervals[] = {\n                            {MIN_L, MAX_L + 1},\n                            {MIN_T, MAX_T + 1},\n                            {0, MAX_M - MIN_M + 1},\n                            {0, static_cast<unsigned>(NUM_W) + 1}};\n\nstatic double target_recall;\n\nstatic MultiProbeLshDataModel *model;\nstatic double R;\n\ninline\ndouble recall_K (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->avgRecall();\n}\n\ninline\ndouble recall_R (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->recall(R);\n}\n\ninline\ndouble cost (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->cost();\n}\n\ninline\nbool constraint_K (const tune::Input &x) {\n    return recall_K(x) > target_recall;\n}\n\ninline\nbool constraint_R (const tune::Input &x) {\n    return recall_R(x) > target_recall;\n}\n\ninline\nvoid MPLSHTune(unsigned N,                    // dataset size\n               std::string data_param,        // data parameter\n               int T,\n               int L,\n               double desired_recall,         // desired recall\n               unsigned K,                    // topk\n               int& M,\n               float& W\n               //unsigned r                   // radius\n              )\n{\n    LOG(LIB_INFO) << \"started running MPLSHTune\" ;\n    gsl_set_error_handler_off();\n\n    // restore initial values\n    intervals[0].begin = MIN_L;  intervals[0].end = MAX_L + 1;\n    intervals[1].begin = MIN_T;  intervals[1].end = MAX_T + 1;\n    intervals[2].begin = 0;      intervals[2].end = MAX_M - MIN_M + 1;\n    intervals[3].begin = 0;      intervals[3].end = NUM_W + 1;\n\n    target_recall = desired_recall;\n    model = NULL;\n    R = 0.0;  // radius\n\n    /*\n    int T, L, M;\n    double W;\n    unsigned N, K;\n    bool do_K = true;\n    string data_param;\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",T\", po::value<int>(&T)->default_value(-1), \"\")\n        (\",L\", po::value<int>(&L)->default_value(-1), \"\")\n        (\",M\", po::value<int>(&M)->default_value(-1), \"set to -1 for tuning.\")\n        (\",W\", po::value<double>(&W)->default_value(-1), \"set to -1 for tuning.\")\n        (\"size,N\", po::value<unsigned>(&N), \"dataset size.\")\n        (\"param,P\", po::value<string>(&data_param), \"data parameter file.\")\n        (\"recall,R\", po::value<double>(&target_recall)->default_value(0.9), \"desired recall.\")\n        (\"topk,K\", po::value<unsigned>(&K)->default_value(20), \"\")\n        (\"radius,r\", po::value<double>(&R), \"\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm);\n\n    if (vm.count(\"help\") || (vm.count(\"param\") < 1) || (vm.count(\"size\") < 1) || T < 1 || L < 1)\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if (vm.count(\"radius\")) {\n        do_K = false;\n    }\n    */\n\n    if (L <= 0 || T <= 0) {\n        LOG(LIB_INFO) << \"You need to specify L and T.\" ;\n        exit(1);\n    }\n\n    if (L > 0) {\n        intervals[0].begin = L;\n        intervals[0].end = L + 1;\n    }\n\n    if (T > 0) {\n        intervals[1].begin = T;\n        intervals[1].end = T + 1;\n    }\n\n    /*\n    if (M > 0) {\n        intervals[2].begin = MAX_M - M;\n        intervals[2].end = MAX_M - M + 1;\n    }\n\n    if (W > 0) {\n        intervals[3].begin = (W - MIN_W) / DELTA_W;\n        intervals[3].end = intervals[3].begin + 1;\n    }\n    */\n\n    DataParam param(data_param, 0);\n    double scale = param.scale();\n\n    MultiProbeLshDataModel local_model(param, N, K);\n    model = &local_model;\n\n    int begin_M = intervals[2].begin;\n    int end_M = intervals[2].end;\n\n    LOG(LIB_INFO) << \"iter limits: begin_M \" << begin_M << \" end_M \" << end_M ;\n\n    double best_recall = 0.0;\n    double best_cost = 1.0;\n    M = -1;\n    W = -1.0;\n    bool found = false;\n\n    for (int m = begin_M; m < end_M; ++m) {\n        intervals[2].begin = m;\n        intervals[2].end = m + 1;\n\n        tune::Range range(intervals, intervals + sizeof intervals /sizeof intervals[0]);\n        tune::Input input;\n        //bool ok = do_K ? tune::Tune(range, constraint_K, &input)\n        //               : tune::Tune(range, constraint_R, &input);\n\n        bool ok = tune::Tune(range, constraint_K, &input);\n\n        if (ok) {\n            double CurrCost = cost(input);\n            LOG(LIB_INFO) << \"iter \" << m << \" \"\n            << boost::format(\"L = %d\\tT = %d\\tM = %d\\tW = %g\\trecall = %g\\tcost = %g\")\n            % input[0] % input[1] % (MAX_M - input[2]) % ((MIN_W + DELTA_W * input[3]) * sqrt(scale))\n            % ( recall_K(input)) % CurrCost \n            //% (do_K ? recall_K(input) : recall_R(input)) % cost(input)\n            ;\n\n\n            double recall = recall_K(input);\n            if (//best_recall < recall && \n                recall >= target_recall\n                && CurrCost < best_cost) {\n              best_recall = recall;\n              best_cost = CurrCost;\n              found = true;\n              M = MAX_M - input[2];\n              W = (MIN_W + DELTA_W * input[3]) * sqrt(scale);\n            }\n\n        } else {\n          LOG(LIB_INFO) << \"Failed. iter \" << m ;\n        }\n    }\n\n    if (found) {\n      LOG(LIB_INFO) << \"best_recall = \" << best_recall << \" \";\n      LOG(LIB_INFO) << \"best_cost   = \" << best_cost << \" \";\n      LOG(LIB_INFO) << \"M = \" << M << \" W = \" << W ;\n    } else {\n      LOG(LIB_INFO) << \"could not tune M & W\" ;\n      exit(1);\n    }\n    LOG(LIB_INFO) << \"MPLSHTune finished.\" ;\n}\n\n}     // namespace lshkit\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/sketch.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef __LSHKIT_SKETCH__\n#define __LSHKIT_SKETCH__\n\n/**\n * \\file sketch.h\n * \\brief  Implementation of LSH based sketches.\n *\n * Sketches are compact representations (as bit-vectors) of large objects.  They\n * are simply constructed by concatenating a bunch of 1-bit LSH hash values.\n * The distance between the original objects can be approximated by the hamming\n * distance between sketches.  The generated bit-vectors are stored in\n * arrays of type CHUNK (unsigned char by default, so each chunk has 8 bits).\n *\n *  Following is an example of distance\n *  estimation using sketches:\n *\n *  \\code\n *      \n *      #include <lshkit.h>\n *      using namespace lshkit;\n *\n *      typedef Sketch<ThresholdingLsh> MySketch; // approximate L1 distance\n *      TresholdingLsh::Parameter param;\n *\n *      param.dim = 128;\n *      param.min = 0.0;\n *      param.max = 255.0; // Parameters are set for, maybe, SIFT features.\n *\n *      DefaultRng rng;\n *\n *      const static SKETCH_BITS = 256;\n *      const static SKETCH_BYTES = 256 / 8;\n *\n *      MySketch sketch(SKETCH_BYTES, param, rng); // from 128 floats to 256 bits.\n *      // Note that in practice you are probably not going to simply construct a sketcher like this.\n *      // The sketcher used to sketch the query point should be the exact one used to\n *      // sketch the data points.  So by the time a database has been constructed,\n *      // the sketcher is most probably already constructed and saved in an archive.\n *      // You should use the serialize method to load the sketcher from the archive (first default construct\n *      // a sketcher, than apply sketch.serialize(some_input_stream, 0).)\n *\n *\n *      \n *      // Allocate space for sketches.  Using \"new\" is probably not a good idea.\n *      char *query_sketch = new char[SKETCH_BYTES];\n *      float *asym_info = new float[SKETCH_BITS]; // to hold asymmetric information.\n *\n *      float *query = ...;\n *\n *      sketch.apply(query, query_sketch, asym_info);\n *\n *      WeightedHammingHelper asym_helper(SKETCH_BYTES);\n *      asym_helper.update(query_sketch, asym_info);\n *\n *      metric::hamming<char> hamming(SKETCH_BYTES);\n *\n *      // Scan the database.\n *      // DATABASE is a container of previously constructed sketches.\n *      BOOST_FOREACH (const char* data_sketch, DATABASE) {\n *\n *          // evaluate the symmetric sketch distance\n *          float sym_dist = hamming(query_sketch, data_sketch);\n *\n *          // evaluate the asymmetric sketch distance\n *          float asym_dist = asym_helper.distTo(data_sketch);\n *\n *          // asym_dist should be more reliable than sym_dist for ranking.\n *      }\n *\n *      \\endcode\n *\n * See src/sketch-run.cpp for a full example.\n *\n *\n * For more information on sketches and asymmetric distance estimators, see\n *\n *     Wei Dong, Moses Charikar, Kai Li. Asymmetric Distance Estimation with\n *     Sketches for Similarity Search in High-Dimensional Spaces. In\n *     Proceedings of the 31st Annual International ACM SIGIR Conference on Research\n *     & Development on Information Retrieval. Singapore. July 2008.\n *\n*/\n\n#include <lshkit/matrix.h>\n\n\nnamespace lshkit {\n\n/// LSH-based sketcher.\ntemplate <typename LSH, typename CHUNK = unsigned char>\nclass Sketch\n{\n    BOOST_CONCEPT_ASSERT((DeltaLshConcept<LSH>));\n\n    unsigned dim_;\n    std::vector<LSH> lsh_;\n\npublic:\n    /// LSH parameter\n    typedef typename LSH::Parameter Parameter;\n    /// Domain of LSH & Sketcheter\n    typedef typename LSH::Domain Domain; \n    /// Number of bits in each CHUNK.\n    static const unsigned CHUNK_BIT = sizeof(CHUNK) * 8; // #bits in CHUNK\n\n    /** Constructor, without initialization.\n     */\n    Sketch() {\n    }\n\n    /** Reset the sketcher.\n     *  @param chunks Number of chunks in the sketch.\n     *  @param param Parameter to LSH.\n     *  @param engine Random number generator (usually a variable of type lshkit::DefaultRng.\n     */\n    template <typename Engine>\n    void reset (unsigned chunks, Parameter param, Engine &engine) {\n        dim_ = chunks;\n        lsh_.resize(dim_ * CHUNK_BIT);\n        for (unsigned i = 0; i < lsh_.size(); ++i) lsh_[i].reset(param, engine);\n    }\n\n    /** Constructor with initialation (same as Sketch() immediately followed by reset()).\n     *  @param chunks Number of chunks in the sketch.\n     *  @param param Parameter to LSH.\n     *  @param engine Random number generator (usually a variable of type lshkit::DefaultRng.\n     */\n    template <typename Engine>\n    Sketch(unsigned chunks, Parameter param, Engine &engine) : \n        dim_(chunks), lsh_(dim_ * CHUNK_BIT)\n    {\n        for (unsigned i = 0; i < lsh_.size(); ++i) lsh_[i].reset(param, engine);\n    }\n\n    /// Sketch construction\n    void apply (Domain in, CHUNK *out) const\n    {\n        unsigned l = 0;\n        for (unsigned i = 0; i < dim_; ++i) {\n            out[i] = 0;\n            for (unsigned j = 0; j < CHUNK_BIT; ++j) {\n                unsigned k = lsh_[l++](in);\n                out[i] = out[i] | (k << j);\n            }\n        }\n    }\n    \n    /// Asymmetric sketch construction\n    /**  @param asym The values used for asymmetric distance estimation.\n     *\n     *  For sketch of N bits, the array asym should have enough space to\n     *  hold N floats.\n     */\n    void apply (Domain in, CHUNK *out, float *asym) const\n    {\n        unsigned l = 0;\n        for (unsigned i = 0; i < dim_; ++i) {\n            out[i] = 0;\n            for (unsigned j = 0; j < CHUNK_BIT; ++j) {\n                unsigned k = lsh_[l](in, &asym[l]);\n                out[i] = out[i] | (k << j);\n                l++;\n            }\n        }\n    }\n\n    /// Serialize the sketcher.\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & dim_;\n        ar & lsh_;\n    }\n\n    /// Load from stream.\n    void load (std::istream &is) {\n        serialize(is, 0);\n    }\n\n    /// Save to stream.\n    void save (std::ostream &os) {\n        serialize(os, 0);\n    }\n\n    /// Return the number of bits in the sketch.\n    unsigned getBits () const {\n        return dim_ * CHUNK_BIT;\n    }\n\n    /// Return the number of chunks in the sketch.\n    unsigned getChunks () const {\n        return dim_;\n    }\n};\n\n/// Weighted hamming distance calculator.\n/**\n *  A helper class to accelerate weighted hamming distance calculation by using\n *  a lookup table.  Weighted hamming distance is used in\n *  asymmetric distance evaluation between a sketch and a query point.\n *  A instance of this class holds the information of a single query point, and\n *  can be used to estimate the distance from the query point to different sketches\n *  in the database.  The construction of such a helper instance is costly, so\n *  once constructed, you need to use it as many times as possible to lower the\n *  amortized cost.\n *  \n */\ntemplate <typename CHUNK = unsigned char>\nclass WeightedHammingHelper\n{\npublic:\n    static const unsigned CHUNK_BIT = sizeof(CHUNK) * 8;\n    /// Constructor.\n    /**\n      * @param chunks number of chunks in sketch.\n      */\n    WeightedHammingHelper(unsigned chunks)\n        : nchunk_(chunks), lookup_(1 << CHUNK_BIT, chunks)\n    {\n    }\n\n    /// Update the information of the query point.\n    /**\n      * @param in sketch of the query point.\n      * @param asym weights, the output of Sketch::apply.\n      */\n    void update (const CHUNK *in, const float *asym)\n    {\n        unsigned l = 0;\n        for (unsigned i = 0; i < nchunk_; ++i) {\n            CHUNK q = in[i];\n            CHUNK p = 0;\n            for (;;) {\n                CHUNK c = q ^ p;\n                float v = 0;\n                for (unsigned j = 0; j < CHUNK_BIT; ++j) {\n                    if (c & (1 << j)) {\n                        v += asym[l + j];\n                    }\n                }\n                lookup_[i][p] = v;\n                ++p;\n                if (p == 0) break;\n            }\n            l += CHUNK_BIT;\n        }\n    }\n\n    /// Calculate the distance between the saved query point to an incoming point.\n    float distTo (const CHUNK *in)\n    {\n        float dist = 0;\n        for (unsigned i = 0; i < nchunk_; ++i) {\n            dist += lookup_[i][in[i]];\n        }\n        return dist;\n    }\n\nprivate:\n    unsigned nchunk_;\n    Matrix<float> lookup_;\n};\n\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/spectral-hash.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_SPECTRAL_HASH__\n#define __LSHKIT_SPECTRAL_HASH__\n\n// This define is needed for Micrisoft VS\n#define _USE_MATH_DEFINES\n#include <math.h>\n#include <cmath>\n#include <vector>\n#include <algorithm>\n\n/**\n * \\file spectral-hash.h\n * \\brief LSH based on spectral hashing.\n */\n\nnamespace lshkit {\n\n/// Spectral hashing.\n/**\n * This class only supports loading externally learned hash functions.\n * To learn a hash function from a sample dataset, use the matlab\n * script at matlab/lshkitTrainSH, which is a wrapper of Y. Weiss'\n * spectral hashing code.  The learned function can then be loaded\n * by the serialize method.\n *\n * LSHKIT currently doesn't provide native support of learning\n * spectral hash functions.\n *\n * This class can both produce LSH hash values or sketches.  When\n * used for hashing and more than 32 bits are produced by the\n * hash function, only the first 32 bits are used.\n *\n * \n * For more information on spectral hashing, see the following reference:\n * Y. Weiss, A. Torralba, R. Fergus. Spectral Hashing.\n * Advances in Neural Information Processing Systems, 2008.\n *\n*/\nclass SpectralHash\n{\n    std::vector<std::vector<float> > pc;\n    std::vector<float> mn;\n    std::vector<std::vector<float> > omegas;\npublic:\n    typedef unsigned char CHUNK;\n    static const unsigned CHUNK_BIT = sizeof(CHUNK) * 8; // #bits in CHUNK\n    struct Parameter\n    {\n    // NO PARAMETER IS DEFINED.\n    };\n\n    typedef const float *Domain;\n\n    SpectralHash ()\n    {\n    }\n\n    ///This is a placeholder and should not be invoked.\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        BOOST_VERIFY(0);\n    }\n\n    ///This is a placeholder and should not be invoked.\n    template <typename RNG>\n    SpectralHash(const Parameter &param, RNG &rng)\n    {\n        reset(param, rng);\n    }\n\n    unsigned getRange () const\n    {\n        if (pc.size() <= sizeof(unsigned) * 8) {\n            return 1 << pc.size();\n        }\n        return 0;\n    }\n\n    /// Return the number of bits in the sketch.\n    unsigned getBits () const {\n        return pc.size();\n    }\n\n    /// Return the number of chunks in the sketch.\n    unsigned getChunks () const {\n        return (pc.size() + CHUNK_BIT - 1) / CHUNK_BIT;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        std::vector<float> X(pc.size());\n        for (unsigned i = 0; i < pc.size(); ++i) {\n            X[i] = 0;\n            for (unsigned j = 0; j < pc[i].size(); ++j) {\n                X[i] += pc[i][j] * obj[j];\n            }\n            X[i] -= mn[i];\n        }\n\n        unsigned ret = 0, mm = std::min(sizeof(unsigned) * 8, omegas.size());\n        for (unsigned i = 0; i < mm; ++i) {\n            float y = 1;\n            for (unsigned j = 0; j < omegas[i].size(); ++j) {\n                y *= sin(X[j] * omegas[i][j] + M_PI/2);\n            }\n            if (y > 0) ret += (1 << i);\n        }\n\n        return ret;\n    }\n\n    /// Sketch construction\n    void apply (Domain in, CHUNK *out) const\n    {\n        std::vector<float> X(pc.size());\n        for (unsigned i = 0; i < pc.size(); ++i) {\n            X[i] = 0;\n            for (unsigned j = 0; j < pc[i].size(); ++j) {\n                X[i] += pc[i][j] * in[j];\n            }\n            X[i] -= mn[i];\n        }\n\n        unsigned l = 0, dim = getChunks();\n        for (unsigned i = 0; i < dim; ++i)\n        {\n            out[i] = 0;\n            for (unsigned j = 0; j < CHUNK_BIT; ++j) {\n                if (l >= omegas.size()) break;\n                float y = 1;\n                for (unsigned k = 0; k < omegas[l].size(); ++k) {\n                    y *= sin(X[k] * omegas[l][k] + M_PI/2);\n                }\n                if (y > 0) out[i] += (1 << j);\n                ++l;\n            }\n        }\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & pc;\n        ar & mn;\n        ar & omegas;\n    }\n\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/topk.h",
    "content": "/*\n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n\n    This file is part of LSHKIT.\n\n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file topk.h\n * \\brief Top-K data structures.\n */\n\n#ifndef __LSHKIT_TOPK__\n#define __LSHKIT_TOPK__\n\n#include <vector>\n#include <limits>\n#include <algorithm>\n#include <fstream>\n#include <iostream>\n#include <lshkit/metric.h>\n\n/**\n * \\file topk.h\n * \\brief Top-K data structure for K-NN search.\n *\n * Usage:\n * \\code\n *\n * Topk<unsigned> knn(100); // search for 100-NNs.\n * knn.reset();\n *\n * BOOST_FOREACH(data_point, DATABASE) {\n *      Topk<unsigned>::Element e;\n *      e.key = key of data_point\n *      e.dist = distance(query, data_point);\n *      knn << e;\n * }\n *\n * for (unsigned i = 0; i < knn.size(); ++i) {\n *      cout << knn[i].key << ':' << knn[i].dist << endl;\n * }\n *\n * \\endcode\n */\n\nnamespace lshkit {\n\n/// Top-K entry.\n/**\n  * The entry stored in the top-k data structure.  The class Topk is implemented\n  * as a heap of TopkEntry.\n  */\ntemplate <typename KEY>\nstruct TopkEntry\n{\n    KEY key;\n    float dist;\n    bool match (const TopkEntry &e) const { return key == e.key; }\n    bool match (KEY e) const { return key == e; }\n\n    TopkEntry (KEY key_, float dist_) : key(key_), dist(dist_) {}\n\n    // XXX original\n    //TopkEntry () : dist(std::numeric_limits<float>::max()) { }\n\n    // XXX changed!\n    TopkEntry () : key(std::numeric_limits<KEY>::max()), dist(std::numeric_limits<float>::max()) { }\n\n    void reset () { dist = std::numeric_limits<float>::max(); }\n\n    friend bool operator < (const TopkEntry &e1, const TopkEntry &e2)\n    {\n        return e1.dist < e2.dist;\n    }\n};\n\n/// Top-K heap.\n/**\n  * Following is an example of using the Topk class:\n  *\n  * Topk<Key> topk;\n  * topk.reset(k);\n  *\n  * for each candidate key {\n  *     topk << key;\n  * }\n  *\n  * At this point topk should contain the best k keys.\n  */\ntemplate <class KEY>\nclass Topk: public std::vector<TopkEntry<KEY> >\n{\n    unsigned K;\n    float R;\n    float th;\npublic:\n    typedef TopkEntry<KEY> Element;\n    typedef typename std::vector<TopkEntry<KEY> > Base;\n\n    Topk () {}\n\n    ~Topk () {}\n\n    /// Reset the heap.\n    void reset (unsigned k, float r = std::numeric_limits<float>::max()) {\n        // if (k == 0) throw std::invalid_argument(\"K MUST BE POSITIVE\");\n        R = th = r;\n        K = k;\n        this->resize(k);\n        for (typename Base::iterator it = this->begin(); it != this->end(); ++it)\n          it->reset();\n    }\n\n    void reset (unsigned k, KEY key, float r = std::numeric_limits<float>::max()) {\n        // if (k == 0) throw std::invalid_argument(\"K MUST BE POSITIVE\");\n        R = th = r;\n        K = k;\n        this->resize(k);\n        for (typename Base::iterator it = this->begin(); it != this->end(); ++it) {\n          it->reset();\n          it->key = key;\n        }\n    }\n\n    void reset (float r) {\n        K = 0;\n        R = th = r;\n        this->clear();\n    }\n\n    float threshold () const {\n        return th;\n    }\n\n    /// Insert a new element, update the heap.\n    Topk &operator << (Element t)\n    {\n        if (!(t.dist < th)) return *this;\n        if (K == 0) { // R-NN\n            this->push_back(t);\n            return *this;\n        }\n        // K-NN\n        unsigned i = this->size() - 1;\n        unsigned j;\n        for (;;)\n        {\n            if (i == 0) break;\n            j = i - 1;\n\n            #if DEBUG_LEVEL > 90\n              std::cout << \"size \" << this->size() << \" j \" << j;\n              std::cout << \" t \" << t.key;\n              //std::cout << \" this->at(j) \" << this->at(j);\n              std::cout << \" this->at(j).dist \" << this->at(j).dist;\n              std::cout << \" this->at(j).key \" << this->at(j).key;    //XXX\n              std::cout << std::endl;\n            #endif\n\n            if (this->at(j).match(t)) return *this;\n            if (this->at(j) < t) break;\n            i = j;\n        }\n        /* i is the place to insert to */\n\n        j = this->size() - 1;\n        for (;;)\n        {\n            if (j == i) break;\n            this->at(j) = this->at(j-1);\n            --j;\n        }\n        this->at(i) = t;\n        th = this->back().dist;\n        return *this;\n    }\n\n    /// Calculate recall.\n    /** Recall = size(this /\\ topk) / size(this). */\n    float recall (const Topk<KEY> &topk /* to be evaluated */) const\n    {\n        unsigned matched = 0;\n        //if (this->size() == 0) return 1.0;\n        for (typename Base::const_iterator ii = this->begin(); ii != this->end(); ++ii)\n        {\n            for (typename Base::const_iterator jj = topk.begin(); jj != topk.end(); ++jj)\n            {\n                if (ii->match(*jj))\n                {\n                    matched++;\n                    break;\n                }\n            }\n        }\n        return float(matched + 1)/float(this->size() + 1);\n    }\n\n    unsigned getK () const {\n        return K;\n    }\n};\n\n/// Top-K scanner.\n/**\n  * Scans keys for top-K query.  This is the object passed into the LSH query interface.\n  */\ntemplate <typename ACCESSOR, typename METRIC>\nclass TopkScanner {\npublic:\n    /// Key type.\n    typedef typename ACCESSOR::Key Key;\n    /// Value type.\n    typedef typename ACCESSOR::Value Value;\n\n    /// Constructor.\n    /**\n      * @param accessor The scanner use accessor to retrieva values from keys.\n      * @param metric The distance metric.\n      * @param K value used to reset internal Topk class.\n      * @param R value used to reset internal Topk class.\n      *\n      * (ACCESSOR)accessor is used as a function.  Given a key, accessor(key)\n      * returns an object (or reference) of the type LSH::Domain. That object is\n      * used to calculate a hash value.  The key is saved in the hash table.\n      * When the associated object is needed, e.g. when scanning a bin,\n      * accessor(key) is called to access the object.\n      *\n      * Metric metric is also used as a function.  It accepts two parameters of\n      * the type LSH::Domain and returns the distance between the two.\n      */\n    TopkScanner(const ACCESSOR &accessor, const METRIC &metric, unsigned K, float R = std::numeric_limits<float>::max())\n        : accessor_(accessor), metric_(metric), K_(K), R_(R) {\n    }\n\n    /// Reset the query.\n    /**\n      * This function should be invoked before each query.\n      */\n    void reset (Value query) {\n        query_ = query;\n        accessor_.reset();\n        topk_.reset(K_, R_);\n        cnt_ = 0;\n    }\n\n    /// Number of points scanned for the current query.\n    unsigned cnt () const {\n        return cnt_;\n    }\n\n    /// TopK results.\n    const Topk<Key> &topk () const {\n        return topk_;\n    }\n\n    /// TopK results.\n    Topk<Key> &topk () {\n        return topk_;\n    }\n\n    /// Update the current query by scanning key.\n    /**\n      * This is normally invoked by the LSH index structure.\n      */\n    void operator () (Key key) {\n        #if DEBUG_LEVEL > 50\n          std::cerr << \"topkscanner operator() \" << key << std::endl;\n        #endif\n\n        if (accessor_.mark(key)) {\n            ++cnt_;\n            topk_ << typename Topk<Key>::Element(key, metric_(query_, accessor_(key)));\n        }\n    }\nprivate:\n    ACCESSOR accessor_;\n    METRIC metric_;\n    unsigned K_;\n    float R_;\n    Topk<Key> topk_;\n    Value query_;\n    unsigned cnt_;\n};\n\n/**\n  * Specialized for l2sqr.\n  */\ntemplate <typename ACCESSOR>\nclass TopkScanner <ACCESSOR, metric::l2sqr<float> >{\npublic:\n    typedef typename ACCESSOR::Key Key;\n    typedef const float *Value;\n\n    TopkScanner(const ACCESSOR &accessor, const metric::l2sqr<float> &metric, unsigned K, float R = std::numeric_limits<float>::max())\n        : accessor_(accessor), dim_(metric.dim()), K_(K), R_(R) {\n    }\n\n    void reset (const float *query) {\n        query_ = query;\n        accessor_.reset();\n        topk_.reset(K_, R_);\n        cnt_ = 0;\n    }\n\n    unsigned cnt () const {\n        return cnt_;\n    }\n\n    const Topk<Key> &topk () const {\n        return topk_;\n    }\n\n    Topk<Key> &topk () {\n        return topk_;\n    }\n\n    void operator () (unsigned key) {\n        if (accessor_.mark(key)) {\n            ++cnt_;\n            unsigned d = dim_ & ~unsigned(7);\n            const float *aa = query_, *end_a = aa + d;\n            const float *bb = accessor_(key), *end_b = bb + d;\n#ifdef __GNUC__\n            __builtin_prefetch(aa, 0, 3);\n            __builtin_prefetch(bb, 0, 0);\n#endif\n            double th = topk_.threshold();\n            float r = 0.0;\n            float r0, r1, r2, r3, r4, r5, r6, r7;\n\n            const float *a = end_a, *b = end_b;\n\n            r0 = r1 = r2 = r3 = r4 = r5 = r6 = r7 = 0.0;\n\n            switch (dim_ & 7) {\n                case 7: r6 = sqr(a[6] - b[6]);\n                case 6: r5 = sqr(a[5] - b[5]);\n                case 5: r4 = sqr(a[4] - b[4]);\n                case 4: r3 = sqr(a[3] - b[3]);\n                case 3: r2 = sqr(a[2] - b[2]);\n                case 2: r1 = sqr(a[1] - b[1]);\n                case 1: r0 = sqr(a[0] - b[0]);\n            }\n\n            a = aa; b = bb;\n\n            for (; a < end_a; a += 8, b += 8) {\n#ifdef __GNUC__\n                __builtin_prefetch(a + 32, 0, 3);\n                __builtin_prefetch(b + 32, 0, 0);\n#endif\n                r += r0 + r1 + r2 + r3 + r4 + r5 + r6 + r7;\n                if (r > th) return;\n                r0 = sqr(a[0] - b[0]);\n                r1 = sqr(a[1] - b[1]);\n                r2 = sqr(a[2] - b[2]);\n                r3 = sqr(a[3] - b[3]);\n                r4 = sqr(a[4] - b[4]);\n                r5 = sqr(a[5] - b[5]);\n                r6 = sqr(a[6] - b[6]);\n                r7 = sqr(a[7] - b[7]);\n            }\n\n            r += r0 + r1 + r2 + r3 + r4 + r5 + r6 + r7;\n            topk_ << typename Topk<Key>::Element(key, r);\n        }\n    }\n\nprivate:\n    ACCESSOR accessor_;\n    unsigned dim_;\n    unsigned K_;\n    float R_;\n    Topk<Key> topk_;\n    const float* query_;\n    unsigned cnt_;\n};\n\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/tune.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#ifndef WDONG_LSHKIT_TUNE\n#define WDONG_LSHKIT_TUNE\n\n/**\n * \\file tune.h\n * \\brief Constrained multi-variate monotone function optimizatioin.\n */\n\n#include <cassert>\n#include <vector>\n#include <map>\n\nnamespace lshkit { namespace tune {\n\nstruct Interval {  // [begin, end)\n    unsigned begin;\n    unsigned end;       // max should always work, minimize the working value\n};\n\ntypedef std::vector<Interval> Range;\ntypedef std::vector<unsigned> Input;\n\ntemplate <typename F>\nclass TuneHelper\n{\n    const Range &range;\n    const F &constraint;\npublic:\n    TuneHelper (const Range &ran, const F &con)\n        : range(ran), constraint(con)\n    {\n    }\n\n    bool search (Input *v, unsigned depth)\n    {\n        /*\n        std::cout << depth << ':';\n        for (unsigned i = 0; i < depth; ++i) {\n            std::cout << ' ' << v->at(i);\n        }\n        std::cout << std::endl;\n        */\n\n        if (depth >= range.size())\n        {\n            return constraint(*v);\n        }\n\n        assert(range[depth].begin < range[depth].end); // range should not be empty\n\n        Input left(*v);\n        Input right(*v);\n        Input middle(*v);\n\n        left[depth] = range[depth].begin;\n        right[depth] = range[depth].end - 1;\n\n        // make sure left doesn't work\n        if (search(&left, depth+1)) {\n            // if left works, then that's the answer\n            *v = left;\n            return true;\n        }\n\n        // make sure right works\n        if (!search(&right, depth+1)) { // best doesn't work\n            return false;\n        }\n\n        for (;;) {\n            unsigned m = (left[depth] + right[depth]) / 2;\n            if (m == left[depth] || m == right[depth]) {\n                *v = right;\n                return true;\n            }\n            \n            middle[depth] = m;\n            if (search(&middle, depth+1)) {\n                right = middle;\n            }\n            else {\n                left = middle;\n            }\n        }\n    }\n};\n\ntemplate <typename F>\nbool Tune (const Range &ran, const F &con, Input *v)\n{\n    TuneHelper<F> helper(ran, con);\n    v->resize(ran.size());\n    return helper.search(v, 0);\n}\n\n} }\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit/vq.h",
    "content": "/* \n    Copyright (C) 2009 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef __LSHKIT_VQ__\n#define __LSHKIT_VQ__\n\n\n#include <fstream>\n\nnamespace lshkit {\n\nclass VQ\n{\n    unsigned dim;\n    unsigned K;\n    std::vector<float> means;\n\n    void *tree;\n\n    void init ();\n    unsigned search (const float *obj) const;\n    void free ();\npublic:\n    // Nothing\n    struct Parameter\n    {\n        unsigned K;\n        unsigned dim;\n        std::string path;\n    };\n\n    typedef const float * Domain;\n\n    VQ (): tree(0)\n    {\n    }\n\n    template <typename RNG>\n    void reset(const Parameter &param, RNG &rng)\n    {\n        dim = param.dim;\n        K = param.K;\n        means.resize(dim * K);\n        std::ifstream is(param.path.c_str(), std::ios::binary);\n        is.read((char *)&means[0], means.size() * sizeof(float));\n        BOOST_VERIFY(is);\n        init();\n    }\n\n    template <typename RNG>\n    VQ(const Parameter &param, RNG &rng) : tree(0)\n    {\n        reset(param, rng);\n    }\n\n    ~VQ () {\n        free();\n    }\n\n    unsigned getRange () const\n    {\n        return K;\n    }\n\n    unsigned operator () (Domain obj) const\n    {\n        return search(obj);\n    }\n\n    template<class Archive>\n    void serialize(Archive & ar, const unsigned int version)\n    {\n        ar & dim;\n        ar & K;\n        ar & means;\n    }\n};\n\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/include/lshkit.h",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\mainpage LSHKIT: A C++ Locality Sensitive Hashing Library\n *\n * \\author Wei Dong  wdong [@] cs.princeton.edu \n * \\author 2008-2009\n * \\section update_sec UPDATES\n * \\include ../NEWS\n *  - Download the CVS snapshot at http://lshkit.sourceforge.net/release/lshkit-snapshot.tar.gz\n * \\section download_sec 1. Getting LSH\n *\n *  - Sourceforge projet page: http://sourceforge.net/projects/lshkit/\n *  - Browser source code: http://lshkit.cvs.sourceforge.net/lshkit/\n *  - Download a release: http://sourceforge.net/project/showfiles.php?group_id=253020\n *  - Mailing list: http://sourceforge.net/mailarchive/forum.php?forum_name=lshkit-users\n *  - Sample dataset: http://www.cs.princeton.edu/~wdong/lshkit/audio.tar.gz\n *\n * The sample dataset include the data file audio.data and a benchmark file\n * audio.query.  Audio.data contains 54,387 192 dimensional vectors and the\n * benchmark contains 10,000 queries of 200-NNs.\n *\n * \\section build_sec 2. Building LSHKIT\n *\n * NOTE: You don't have to build LSHKIT separatly if you only want to use the\n * library but not the tool programs.  Instead, you can directly merge the LSHKIT\n * source files to your project.  You can avoid installing CMake by doing this.\n * See Section 3.2 for details.\n *\n * LSHKIT requires the following libraries:\n * - Gnu Scientific Library\n * - [OPTIONAL] Boost Library > 1.36, the following packages are used:\n *   - program_options\n *\n * LSHKIT uses the CMake cross platform building system. \n *\n * \\subsection build_windows 2.1 Microsoft Visual C++ Express 2008\n *\n * The method would probably work for other versions of visual C++, but I haven't tested.\n *\n * You'll have to install GSL and CMake first if you haven't.\n * Refer to the following pages:\n *  - GSL: http://www.quantcode.com/modules/smartfaq/faq.php?faqid=33\n *  - CMake: http://www.cmake.org/\n *  \n * After installing everything, you still need the following configurations so\n * that CMake can find GSL:\n *  - Add an environment variable GSL_ROOT_DIR, so that \\%GSL_ROOT_DIR\\%\\\\include\n *    contains the GSL header files and \\%GSL_ROOT_DIR\\%\\\\lib contains the GSL libraries.\n *  - Copy the file lshkit\\FindGSL.cmake to <CMAKE_HOME>\\\\share\\\\cmake-xxx\\\\Modules, where\n *    <CMAKE_HOME> is where you install CMake.\n *\n * If you have Boost installed in your system, you can choose to use your own Boost installation\n * instead of the minimal one comes with LSHKIT.  To do that, add an environment\n * variable BOOST_ROOT, so that \\%BOOST_ROOT\\%\\\\include contains the Boost\n * header files and \\%BOOST_ROOT\\%\\\\lib contains the Boost libraries.\n *\n * We are now ready to build LSHKIT.  Open the Visual C++ command prompt (by clicking\n * \"Start/All Programs/Microsoft Visual C++.../Visual Studio Tools/Visual\n * Studio 2008 Command Prompt\") and take the following steps:\n *  -# Create a building directory, which we call BULID_DIR, change to the directory.\n *  -# Run \"cmakesetup <LSHKIT_DIR>\", where <LSHKIT_DIR> is the LSHKIT root directory.\n *  -# The CMake setup window will show up.  Click the \"Configure\" button in the bottom of the window.\n *  -# Choose \"NMake Makefiles\" in the popup window and confirm.\n *  -# CMake will run for a while.\n *  -# After a list of red cached values show up, click the \"Configure\" button again.  You might\n *    want to change the value of some variables before that, for example, change CMAKE_BUILD_TYPE\n *    from \"Debug\" to \"Release\" to enable optimization.\n *  -# The cached variables becomes gray now, click the \"OK\" button in the bottom.\n *  -# A Makefile has been generated, run \"nmake\" to make.\n *  -# The making process will last for a while.  After that, the LSHKIT library will be in the \"lib\"\n *    directory and the executables will be in the \"bin\" directory.\n *\n *  In Step 4, you can also choose \"Visual Studio 9 2008\" (or other versions) to create a project\n *  file, you that you can build using the Visual C++ IDE.\n *\n * \\subsection build_linux 2.2 Linux\n *\n *  -# Copy the file lshkit\\FindGSL.cmake to <CMAKE_HOME>/share/cmake-xxx/Modules, where\n *    <CMAKE_HOME> is where you install CMake, which is usually /usr.\n *  -# make a temporary building directory, change to it.\n *  -# Run \"cmake LSHKIT_DIR\", where LSHKIT_DIR is the LSHKIT root directory.\n *    You can also use \"cmake -DCMAKE_BUILD_TYPE=RELEASE LSHKIT_DIR\" or \"cmake -DCMAKE_BUILD_TYPE=DEBUG LSHKIT_DIR\" to specify the build type.\n *  -# A makefile should have been generated.  Run make.\n *  -# The making process will last for a while.  After that, the LSHKIT library will be in the \"lib\"\n *    directory and the executables will be in the \"bin\" directory.\n *\n * \\section using_sec 3. Using LSHKIT in Your Project\n *\n *  Although the LSHKIT tool programs depends on boost_program_option to parse command line options,\n *  the main LSHKIT library only depends on the Boost headers.  If you use LSHKIT library in your project,\n *  you don't need to link to any of the boost library (unless you use them in other parts of your project). \n *\n *  \\subsection using_sec_1 3.1 Use LSHKIT as a library\n *  -# Build LSHKIT.\n *  -# Configure your building environment so that \"LSHKIT_DIR/include\" and the LSHKIT library can be found\n *    by your C++ compiler.  If you don't have Boost installed in your system, you'll also need to add\n *    \"LSHKIT/3rd-party/boost\" to your compiler's include file search path.\n *  -# Add \"#include <lshkit.h>\" to your C++ source code and you can use most of the LSHKIT functionalities.\n *  -# Link libgsl and libgslcblas (they may be named differently depending on your system) to your program.\n *\n *  \\subsection using_sec_2 3.2 Directly add LSHKIT source to your project\n *  By directly using the LSHKIT source, you can avoid installing CMake.\n\n *  -# Configure your building environment so that \"LSHKIT_DIR/include\" and the LSHKIT library can be found\n *    by your C++ compiler.  If you don't have Boost installed in your system, you'll also need to add\n *    \"LSHKIT/3rd-party/boost\" to your compiler's include file search path.\n *  -# Make sure that GSL is properly installed in your system and your compiler can find the GSL header files.\n *  -# Add all C++ source files in \"LSHKIT/src\" to your project.\n *  -# Add \"#include <lshkit.h>\" to your C++ source code and you can use most of the LSHKIT functionalities.\n *  -# Link libgsl and libgslcblas (they may be named differently depending on your system) to your program.\n * \n * \\section usecase_sec 4. Some Specific Use Cases\n *  (See the documentation of source files pointed to.)\n *  - The file format used by the tool programs: matrix.h\n *  - (Semi-)Automatic parameter tuning for Multi-Probe LSH and run benchmarks: mplsh-tune.cpp\n *  - Building a Multi-Probe LSH index: mplsh.h\n *  - Using LSH to construct sketches: sketch.h\n *  - Using LSH to construct random histograms to match sets of features: histogram.h\n *  - The supported LSH classes: lsh.h\n *  - How to build complex LSH classses out of the basic ones: composite.h\n *  - How to add your own LSH classes: concept.h\n *\n * \\section demo_sec 5. Demo Program Documentation\n * - scan.cpp\n * - lsh-run.cpp\n * - mplsh-run.cpp\n * - fitdata.cpp\n * - mplsh-predict.cpp\n * - mplsh-tune.cpp\n * - sketch-run.cpp\n *\n * \\section license_sec 6. License\n *\n * LSHKIT is distributed under the terms of the GNU General Public License (GPL).\n *\n * I do not intend to use the strict GPL license.  However, the performance modeling\n * part of the package depends on the GPLed Gnu Scientific Library for regression,\n * root finding and numerical integration.  If you want to use LSHKIT in your closed source\n * software and are willing to get rid of the performance modeling part (in principle,\n * you'll still be able to use it for performance tuning so long as you don't\n * distribute it; the tuning results can be hard coded into your non-GPLed\n * software), contact me and maybe we'll be able to work out a way.  \n *                                              \n * \\section citing_sec 7. Publications\n * \n * Wei Dong, Zhe Wang, William Josephson, Moses Charikar, Kai Li. Modeling LSH for Performance Tuning. In Proceedings of the 17th Conference on Information and Knowledge Management. Napa Valley, CA, USA. October 2008.\n *\n * Wei Dong, Zhe Wang, Moses Charikar, Kai Li. Efficiently Matching Sets of Features with Random Histograms. In Proceedings of the 16th ACM International Conference on Multimedia. Vancouver, Canada. October 2008.\n *\n * Wei Dong, Moses Charikar, Kai Li. Asymmetric Distance Estimation with Sketches for Similarity Search in High-Dimensional Spaces. In Proceedings of the 31st Annual International ACM SIGIR Conference on Research & Development on Information Retrieval. Singapore. July 2008.\n *\n */\n\n/**\n * \\file lshkit.h\n * \\brief The LSHKIT master header file.\n *\n * You only need to include this file to use the most functionalities of LSHKIT.\n */\n\n#ifndef __LSHKIT_WDONG__\n#define __LSHKIT_WDONG__\n\n#include <lshkit/common.h>\n#include <lshkit/composite.h>\n#include <lshkit/lsh.h>\n#include <lshkit/lsh-index.h>\n#include <lshkit/sketch.h>\n#include <lshkit/histogram.h>\n#include <lshkit/metric.h>\n#include <lshkit/kernel.h>\n#include <lshkit/mplsh.h>\n#include <lshkit/apost.h>\n#include <lshkit/forest.h>\n#include <lshkit/topk.h>\n#include <lshkit/matrix.h>\n#include <lshkit/eval.h>\n#include <lshkit/spectral-hash.h>\n#include <lshkit/multiprobelsh-fitdata.h>\n#include <lshkit/multiprobelsh-tune.h>\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/apost.cpp",
    "content": "/* \n    Copyright (C) 2009 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <cassert>\n#include <queue>\n#include <gsl/gsl_randist.h>\n#include <gsl/gsl_cdf.h>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <lshkit/apost.h>\n\nnamespace lshkit\n{\n\n// Gaussian model of nearest neighbor hash components\n// this is the gaussian model for one training query point\nstruct ExampleModel {\n    std::vector<float> H;\n    std::vector<float> mean;\n    std::vector<float> var;\n\n    void estimate (const APostLsh &lsh, const APostExample &example)\n    {\n#if 0\n        // calculate H values\n        const float *query = example.query;\n        H.resize(lsh.M);\n        lsh.apply1(query, &H);\n\n        // mean & cov matrix of examples\n        const std::vector<const float *> &results = example.results;\n        std::vector<float> M;\n        std::vector<std::vector<float> > cov; // lower matrix\n        unsigned dim = lsh.dim;\n\n        BOOST_VERIFY(results.size() > 1);\n        // calculate mean of NNs\n        M.resize(dim);\n        std::fill(M.begin(), M.end(), 0.0);\n        BOOST_FOREACH(const float *v, results) {\n            for (unsigned i = 0; i < dim; ++i) {\n                M[i] += v[i];\n            }\n        }\n        for (unsigned i = 0; i < dim; ++i) {\n            M[i] /= results.size();\n        }\n\n        // calculate cov of NNs\n        cov.resize(dim);\n        for (unsigned i = 0; i < dim; i++) {\n            cov[i].resize(i+1);\n            std::fill(cov[i].begin(), cov[i].end(), 0.0);\n        }\n\n        BOOST_FOREACH(const float *v, results) {\n            for (unsigned i = 0; i < dim; i++) {\n                for (unsigned j = 0; j <= i; j++) {\n                    cov[i][j] += (v[i] - M[i]) * (v[j] - M[j]);\n                }\n            }\n        }\n\n        for (unsigned i = 0; i < dim; i++) {\n            for (unsigned j = 0; j <= i; j++) {\n                cov[i][j] /= (results.size() - 1);\n            }\n        }\n\n        // mean & std of hash values\n        mean.resize(lsh.M);\n        lsh.apply1(&M[0], &mean);\n\n        var.resize(lsh.M);\n        for (unsigned i = 0; i < lsh.M; i++) { // for each hash component\n            var[i] = 0;\n            for (unsigned ii = 0; ii < lsh.dim; ii++) {\n                unsigned jj;\n                for (jj = 0; jj <= ii; jj++) {\n                    var[i] += lsh.a[i][ii] * cov[ii][jj] * lsh.a[i][jj];\n                }\n                for (; jj < lsh.dim; jj++) {\n                    var[i] += lsh.a[i][ii] * cov[jj][ii] * lsh.a[i][jj];\n                }\n            }\n            var[i] /= sqr(lsh.W);\n        }\n#else   // equivalent but simpler method: directly calculate the mean & var of h values\n        \n        // calculate H values\n        const float *query = example.query;\n        H.resize(lsh.M);\n        lsh.apply1(query, &H);\n\n        // mean & cov matrix of examples\n        mean.resize(lsh.M);\n        var.resize(lsh.M);\n        const std::vector<const float *> &results = example.results;\n\n        for (unsigned i = 0; i < lsh.M; ++i) {\n            float sum = 0; \n            float sum2 = 0;\n            BOOST_FOREACH(const float *v, results) {\n                float h = lsh.apply1(v, i);\n                sum += h;\n                sum2 += sqr(h);\n            }\n            mean[i] = sum / results.size();\n            var[i] = (sum2 - mean[i] * sum)/(results.size() - 1);\n        }\n#endif\n#ifdef DEBUGGING\n        for (unsigned i = 0; i < lsh.M; ++i) {\n            std::cout << H[i] << ':' << mean[i] << ':' << var[i] << std::endl;\n        }\n#endif\n    }\n};\n\nclass GaussianHashModel\n{\n    std::vector<ExampleModel> M;\n    float sigma;\npublic:\n    GaussianHashModel (const APostLsh &lsh, const std::vector<APostExample> &examples, float s = 0.0) {\n        if (s == 0.0) {\n            s = 1.0 / 5;\n            // I believe there's a bug in paper.\n            // Right below equation 16, the paper says the default\n            // sigma is W/5.  However,\n            // the h values are already divided by W (h = (a v + b) / W)\n            // and it makes no sense to divide it by W again.\n        }\n        sigma = s;\n\n        M.resize(examples.size());\n        for (unsigned i = 0; i < examples.size(); ++i) {\n            M[i].estimate(lsh, examples[i]);\n        }\n    }\n\n    void estimate (unsigned m, float h, float *mean, float *std) { // mth hash component\n        float mm = 0, vv = 0, ss = 0;\n        for (unsigned i = 0; i < M.size(); i++) { // for each example\n            float k = gsl_ran_gaussian_pdf(M[i].H[m] - h, sigma);\n            mm += k * M[i].mean[m];\n            vv += k * M[i].var[m];\n            ss += k;\n        }\n        mm /= ss;\n        vv /= ss;\n        *mean = mm;\n        *std = std::sqrt(vv);\n    }\n};\n\nstatic inline float GaussianInterval (float mean, float std, float l, float u) {\n    return gsl_cdf_gaussian_P(u - mean, std)\n        - gsl_cdf_gaussian_P(l - mean, std);\n}\n\nvoid APostModel::train (const APostLsh &lsh,\n                        const std::vector<APostExample> &examples,\n                        unsigned N, float k_sigma, float expand) {\n    Nz = N;\n    ex = expand;\n    GaussianHashModel parzen(lsh, examples, k_sigma);\n\n    umin.resize(lsh.M);\n    umax.resize(lsh.M);\n    lookup.resize(lsh.M);\n    means.resize(lsh.M);\n    stds.resize(lsh.M);\n    // for each component h\n    std::cout << \"Training LSH table.\" << std::endl;\n    boost::progress_display progress(lsh.M * Nz);\n    for (unsigned m = 0; m < lsh.M; ++m) {\n        {\n            float ex = expand * (lsh.umax[m] - lsh.umin[m]);\n            umin[m] = lsh.umin[m] - ex;\n            umax[m] = lsh.umax[m] + ex;\n        }\n\n        float delta = (umax[m] - umin[m]) / Nz;\n\n        lookup[m].resize(Nz);\n        means[m].resize(Nz);\n        stds[m].resize(Nz);\n        // for each quantum of h(q)\n        for (unsigned n = 0; n < Nz; ++n) {\n            float mean, std;\n            parzen.estimate(m, umin[m] + (n + 0.5) * delta, &mean, &std);\n            means[m][n] = mean;\n            stds[m][n] = std;\n            std::vector<PrH> &lmn = lookup[m][n];\n#if 0    // this is the original method\n            // a losts of h values will have very small probability and\n            // those are essentially not useful\n            int minh(std::floor(umin[m]));\n            int maxh(std::floor(umax[m])); // min & max inclusive\n            unsigned size = maxh - minh + 1;\n            BOOST_VERIFY(size >= 1);\n            lmn.resize(size);\n            for (int h = minh; h <= maxh; ++h) {\n                lmn[h].h = h;\n                lmn[h].pr = GaussianInterval(mean, std, float(h), float(h + 1));\n            }\n#else       // here we only generate those h values with reasonably large probability\n            {\n                const static float THRESHOLD = 1e-7;\n                int h0(std::floor(mean));\n                for (int h = h0; ; h++) {\n                    PrH prh;\n                    prh.h = h;\n                    prh.pr = GaussianInterval(mean, std, float(h), float(h+1));\n                    if (prh.pr < THRESHOLD) break;\n                    lmn.push_back(prh);\n\n                }\n                for (int h = h0 - 1; ; h--) {\n                    PrH prh;\n                    prh.h = h;\n                    prh.pr = GaussianInterval(mean, std, float(h), float(h+1));\n                    if (prh.pr < THRESHOLD) break;\n                    lmn.push_back(prh);\n\n                }\n                BOOST_VERIFY(lmn.size() > 0);\n            }\n\n#endif\n            std::sort(lmn.begin(), lmn.end());\n            ++progress;\n        }\n    }\n}\n\nstruct PrC {\n    unsigned m;\n    const std::vector<PrH> *prh;\n    friend bool operator < (const PrC &c1, const PrC &c2) {\n        if (c1.prh->size() <= 1) return false;\n        if (c2.prh->size() <= 1) return true;\n        return c1.prh->at(1).pr > c2.prh->at(1).pr;\n    }\n};\n\nstruct Probe {\n    std::vector<unsigned> off;\n    unsigned last;\n    float pr;\n    const std::vector<unsigned> *range;\n\n    Probe () {\n        BOOST_VERIFY(0);\n    }\n\n    Probe (const std::vector<unsigned> *range_):\n        off(range_->size()),\n        last(0),\n        range(range_)\n    {\n        std::fill(off.begin(), off.end(), 0);\n    }\n\n    bool canShift () const {\n        if (off[last] != 1) return false;\n        if (last + 1 >= off.size()) return false;\n        if (range->at(last + 1) <= 1) return false;\n        return true;\n    }\n\n    void shift () {\n        off[last] = 0;\n        last++;\n        off[last] = 1;\n    }\n\n    bool canExpand () const {\n        if (last + 1 >= off.size()) return false;\n        if (range->at(last + 1) <= 1) return false;\n        return true;\n    }\n\n    void expand () {\n        last++;\n        off[last] = 1;\n    }\n\n    bool canExtend () const {\n        if (off[last] + 1 >= range->at(last)) return false;\n        return true;\n    }\n\n    void extend () {\n        off[last]++;\n    }\n\n    friend bool operator < (const Probe &p1, const Probe &p2) {\n        return p1.pr < p2.pr;\n    }\n\n    void setPr (const std::vector<PrC> &pl) {\n        pr = 1.0;\n        for (unsigned i = 0; i < off.size(); ++i) {\n            pr *= pl[i].prh->at(off[i]).pr;\n        }\n//        std::cerr << \"PR = \" << pr << std::endl;\n    }\n\n    unsigned hash (const APostLsh &lsh,\n                    const std::vector<PrC> &pl) {\n        unsigned r = 0;\n        for (unsigned i = 0; i < lsh.M; ++i) {\n            r += lsh.c[pl[i].m] * unsigned(pl[i].prh->at(off[i]).h);\n        }\n        return r % lsh.H;\n    }\n\n#ifdef DEBUGGING\n    unsigned print (const std::vector<PrC> &pl) {\n        BOOST_FOREACH(unsigned v, off) {\n            std::cout << ' ' << v;\n        }\n        std::cout << std::endl;\n    }\n#endif\n};\n\nvoid APostModel::genProbeSequence (const APostLsh &lsh,\n                                APostLsh::Domain query,\n                                float recall, unsigned T,\n                                std::vector<unsigned> *seq) const\n{\n#ifdef DEBUGGING\n    std::cout << \"Range of each hash component:\" << std::endl;\n    for (unsigned i = 0; i < lsh.M; ++i) {\n        std::cout << boost::format(\"m = %1%: %2%, %3%\") % i % umin[i] % umax[i] << std::endl;\n    }\n    std::cout << \"Data distribution on each hash component:\" << std::endl;\n#endif\n    std::vector<PrC> pl(lsh.M);\n    for (unsigned i = 0; i < lsh.M; ++i) {\n        pl[i].m = i;\n\n        float h = lsh.apply1(query, i);\n\n        if (h < umin[i]) {\n            std::cerr << \"hash[\" << i << \"] out of range \" << h << \" < umin = \" << umin[i] << std::endl;\n            h = umin[i];\n        }\n        else if (h > umax[i]) {\n            std::cerr << \"hash[\" << i << \"] out of range \" << h << \" > umax = \" << umax[i] << std::endl;\n            h = umax[i];\n        }\n\n        unsigned qh = (h - umin[i]) * Nz / ( umax[i] - umin[i]);\n        BOOST_VERIFY(qh < lookup[i].size());\n\n        pl[i].prh = &lookup[i][qh];\n\n#ifdef DEBUGGING\n\n        std::cout << boost::format(\"m = %1%: h = %2% mean = %3% std= %4%\")\n                                    % i % h % means[i][qh] % stds[i][qh] << std::endl;\n#endif\n    }\n\n    std::sort(pl.begin(), pl.end());\n#ifdef DEBUGGING\n    std::cout << \"Sorted probability of windows on each component:\" << std::endl;\n\n    BOOST_FOREACH(const PrC &prc, pl) {\n        std::cout << boost::format(\"m = %1%:\") % prc.m;\n        BOOST_FOREACH(PrH prh, *prc.prh) {\n            if (prh.pr == 0) break;\n            std::cout << boost::format(\" %1%@h=%2%\") % prh.pr % prh.h;\n        }\n        std::cout << std::endl;\n    }\n\n    std::cout << \"Probe sequence\" << std::endl;\n#endif\n    // generate probe sequence\n    seq->clear();\n\n    std::vector<unsigned> range(pl.size());\n    for (unsigned i = 0; i < range.size(); ++i) {\n        range[i] = pl[i].prh->size();\n    }\n\n\n    std::vector<Probe> heap;\n    heap.push_back(Probe(&range));\n\n    heap.back().setPr(pl);\n    float pr = heap.back().pr;\n    seq->push_back(heap.back().hash(lsh, pl));\n\n    if (pr >= recall) return;\n    if (seq->size() >= T) return;\n\n    heap.back().off[0] = 1;\n    heap.back().setPr(pl);\n\n    for (;;) {\n        if (pr >= recall) break;\n        if (seq->size() >= T) break;\n        if (heap.empty()) break;\n\n        pop_heap(heap.begin(), heap.end());\n        Probe p = heap.back();\n        heap.pop_back();\n\n        seq->push_back(p.hash(lsh, pl));\n        pr += p.pr;\n#ifdef DEBUGGING\n        std::cout << pr << \", \" << p.pr << \":\";\n        p.print(pl);\n#endif\n\n        if (p.canShift()) {\n            heap.push_back(p);\n            heap.back().shift();\n            heap.back().setPr(pl);\n            push_heap(heap.begin(), heap.end());\n        }\n\n        if (p.canExpand()) {\n            heap.push_back(p);\n            heap.back().expand();\n            heap.back().setPr(pl);\n            push_heap(heap.begin(), heap.end());\n        }\n\n        if (p.canExtend()) {\n            heap.push_back(p);\n            heap.back().extend();\n            heap.back().setPr(pl);\n            push_heap(heap.begin(), heap.end());\n        }\n    }\n#ifdef DEBUGGING\n        std::cout << \"DONE\" << std::endl;\n#endif\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/char_bit_cnt.cpp",
    "content": "#include <lshkit.h>\n\nunsigned lshkit::metric::basic_hamming::char_bit_cnt [] = {\n0x0,\n0x1,\n0x1,\n0x2,\n0x1,\n0x2,\n0x2,\n0x3,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x5,\n0x6,\n0x6,\n0x7,\n0x6,\n0x7,\n0x7,\n0x8,\n0};\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/kdtree.cpp",
    "content": "#include <stdio.h>\n#include <stdlib.h>\n#include <float.h>\n#include <math.h>\n#include <assert.h>\n#include \"kdtree.h\"\n\n#define verify(_x) \\\n    do { \\\n        if (!(_x)) { \\\n            fprintf(stderr, \"Assertion failure in %s line %d of %s: %s\\n\", \\\n                    __FUNCTION__, __LINE__, __FILE__, #_x); \\\n        } \\\n    } while (0)\n\n// l2 distance\nstatic inline float sqr (float x) {\n    return x * x;\n}\n\nstatic inline float l2sqr (const float *p1, const float *p2, unsigned D) {\n    float l = 0;\n    unsigned d;\n    // we hard coded DIM so this loop can be unrolled better by the compiler\n    for (d = 0; d < D; d++) {\n        l += sqr(p1[d] - p2[d]);\n    }\n    return l;\n}\n\n// very compact simplementation of KD-tree\n// mainly based on D. Mount's ANN library.\n// the data structure is statically allocated\n// and dynamically constructed.\n\ntypedef struct kd_node kd_node_t;\n                                // node really means internal nodes\nunion kd_leaf_or_node {\n    unsigned long long leaf;    // leaf, a single index into the means array\n    const kd_node_t *node;\n};\n// because all the nodes are statically allocated, the range of\n// the address is known, and the range of leaf is from 0 to K-1.\n// usually the first node address should be larger than K,\n// so we can tell whether it's a leaf or a node simply by looking at the values.\n// we check in the \n\nstatic inline int kd_is_leaf (union kd_leaf_or_node u, unsigned K) {\n    // we have to test with node because node is 64-bit\n    // and leaf is 32-bit\n    // the lower 32-bit of any 64-bit value can be smaller than K\n    //return u.node < (const struct kd_node *)(unsigned long long)K;\n    return u.leaf < K;\n}\n\n// KD-tree internal node\nstruct kd_node {                \n    unsigned cut_dim;\n    float cut_val;\n    float lower, upper;         // range of the dimension of this space partition\n    union kd_leaf_or_node left, right;\n};\n\n// lower and upper bound of each dimension  with all the cluster centers\ntypedef struct {\n    float *lo;\n    float *hi;\n} bnds_t;\n\nstruct kd_tree {\n    unsigned K;\n    unsigned dim;\n    const float *means;\n    kd_node_t *nodes;        // statically allocate all the nodes\n    unsigned next_node;          // keep the number of node used\n    bnds_t bnds;\n};\n\nstatic inline kd_node_t *kd_alloc_node (kd_tree_t *tree) {\n    return &tree->nodes[tree->next_node++];\n}\n\n\nkd_tree_t *kd_tree_alloc (unsigned K, unsigned dim) {\n    kd_tree_t *tree = (kd_tree_t *)malloc(sizeof(kd_tree_t));\n    verify(tree);\n    tree->K = K;\n    tree->dim = dim;\n    tree->means = NULL;\n    tree->nodes = (kd_node_t*)malloc((K-1) * sizeof(kd_node_t));\n    verify(tree->nodes);\n    tree->bnds.lo = (float *)malloc(dim * sizeof(float));\n    verify(tree->bnds.lo);\n    tree->bnds.hi = (float *)malloc(dim * sizeof(float));\n    verify(tree->bnds.hi);\n    return tree;\n}\n\nvoid kd_tree_free (kd_tree_t *tree) {\n    free(tree->nodes);\n    free(tree->bnds.lo);\n    free(tree->bnds.hi);\n    free(tree);\n}\n\n\n#define ERR 0.001\nstatic inline void bisec (\n        kd_tree_t *tree,\n        unsigned *idx, unsigned n,          // item ids to be divided\n                                            // will be shuffled\n        const bnds_t *bnds,                 // bounds of the box to be divided\n        unsigned *cut_dim, float *cut_val,\n        unsigned *n_lo                      // # items on the lower side\n        ) {\n\n    unsigned dim = tree->dim;\n    const float *means = tree->means;\n    unsigned cd;\n    unsigned d, i, t;\n    unsigned br1, br2;\n    int l, r;\n    float cv, ideal_cv;\n    float max_len, len;\n    float max_spr, spr;\n    float cd_min, cd_max;\n    cd_min = cd_max = 0;\n\n    // find the longest side of the bounding box\n    max_len = bnds->hi[0] - bnds->lo[0];\n    for (d = 1; d < dim; d++) {\n        len = bnds->hi[d] - bnds->lo[d];\n        if (len > max_len) max_len = len;\n    }\n\n    // find the dimension with maximal spread as the cutting dimension\n    max_spr = -1;\n    cd = 0; // just to avoid warning\n    for (d = 0; d < dim; d++) {\n        len = bnds->hi[d] - bnds->lo[d];\n\n        // if this side is among the longest\n        if (len > (1-ERR) * max_len) {\n\n            // take the spread\n            float min, max;\n            min = max = (means + dim * idx[0])[d];\n            for (i = 1; i < n; ++i) {\n                float v = (means + dim * idx[i])[d];\n                if (v < min) min = v;\n                if (v > max) max = v;\n            }\n            spr = max - min;\n            if (spr > max_spr) {\n                max_spr = spr;\n                cd_min = min;\n                cd_max = max;\n                cd = d;\n            }\n        }\n    }\n\n    ideal_cv = cv = (bnds->lo[cd] + bnds->hi[cd]) / 2;\n    \n    if (cv < cd_min) cv = cd_min;\n    else if (cv > cd_max) cv = cd_max;\n\n    l = 0;\n    r = n - 1;\n    for (;;) {\n        while (l < n && (means + dim * idx[l])[cd] < cv) l++;\n        while (r >= 0 && (means + dim * idx[r])[cd] >= cv) r--;\n        if (l > r) break;\n        t = idx[l], idx[l] = idx[r], idx[r] = t;\n        l++;\n        r--;\n    }\n    br1 = l;            // means[0..br1-1][d] < cv <= means[br1..n-1][d]\n    r = n - 1;\n    for (;;) {\n        while (l < n && (means + dim * idx[l])[cd] <= cv) l++;\n        while (r >= 0 && (means + dim * idx[r])[cd] > cv) r--;\n        if (l > r) break;\n        t = idx[l], idx[l] = idx[r], idx[r] = t;\n        l++;\n        r--;\n    }\n    br2 = l;            // means[br1..br2-1][d] = cv < means[br2..n-1][d]\n\n    *cut_dim = cd;\n    *cut_val = cv;\n\n    if (ideal_cv < cd_min) *n_lo = 1;\n    else if (ideal_cv > cd_max) *n_lo = n - 1;\n    else if (br1 > n/2) *n_lo = br1;\n    else if (br2 < n/2) *n_lo = br2;\n    else *n_lo = n/2;\n}\n\nstatic const kd_node_t *kd_index_hlp (kd_tree_t *tree, unsigned *idx, unsigned n,\n                         bnds_t *bnds       // bounds of the subtree\n                         ) {\n\n    kd_node_t *node;\n    unsigned n_lo, n_hi, cut_dim;\n    float cut_val;\n    float lo, hi;               // save value for the cutted dimension\n    assert(n > 1);\n    node = kd_alloc_node(tree);\n\n    bisec(tree, idx, n, bnds, &cut_dim, &cut_val, &n_lo);\n\n    node->cut_dim = cut_dim;\n    node->cut_val = cut_val;\n\n    lo = node->lower = bnds->lo[cut_dim];\n    hi = node->upper = bnds->hi[cut_dim];\n\n    // construct the left subtree\n    bnds->hi[cut_dim] = cut_val;\n    assert(n_lo > 0);\n    if (n_lo == 1) {\n        node->left.leaf = idx[0];\n    }\n    else {\n        node->left.node = kd_index_hlp(tree, idx, n_lo, bnds);\n    }\n    bnds->hi[cut_dim] = hi;\n\n    // construct the right subtree\n    bnds->lo[cut_dim] = cut_val;\n    n_hi = n - n_lo;\n    if (n_hi == 1) {\n        node->right.leaf = idx[n-1];\n    }\n    else {\n        node->right.node = kd_index_hlp(tree, idx + n_lo, n_hi, bnds);\n    }\n    bnds->lo[cut_dim] = lo;\n\n    return node;\n}\n\nvoid kd_tree_index (kd_tree_t *tree, const float *means) {\n    unsigned *kd_idx;\n    unsigned d, i;\n\n    tree->means = means;\n\n    kd_idx = (unsigned *)malloc(tree->K * sizeof(unsigned));\n    verify(kd_idx);\n    tree->next_node = 0;\n    // fprintf(stderr, \"XXX: %llu.\\n\", tree->nodes);\n    verify(tree->nodes > (kd_node_t *)(unsigned long long)tree->K);\n\n    // init idx to an arbitrary permutation\n    for (i = 0; i < tree->K; i++) {\n        kd_idx[i] = i;\n    }\n\n    // bounding box\n    for (d = 0; d < tree->dim; d++) {\n        const float *cm = means + d;\n        tree->bnds.lo[d] = tree->bnds.hi[d] = *cm;\n        cm += tree->dim;\n        for (i = 1; i < tree->K; i++, cm += tree->dim) {\n            if (*cm < tree->bnds.lo[d]) {\n                tree->bnds.lo[d] = *cm;\n            }\n            else if (*cm > tree->bnds.hi[d]) {\n                tree->bnds.hi[d] = *cm;\n            }\n        }\n    }\n\n    // recursively construct the tree\n    // the first node automatically becomes the root\n    kd_index_hlp(tree, kd_idx, tree->K, &tree->bnds);\n\n    verify(tree->next_node == tree->K - 1);\n\n    free(kd_idx);\n}\n\nstruct kd_search_stat {\n    const float *means;\n    unsigned dim;\n    unsigned K;\n    const float *pt;    // query\n    unsigned cnt;\n    unsigned nn;\n    float nn_dist;\n};\n\nstatic void kd_search_node (const kd_node_t *node, struct kd_search_stat *stat, float d2b);\n\nstatic inline void kd_search_leaf_or_node (union kd_leaf_or_node lon,\n                            struct kd_search_stat *stat,\n                            float d2b) {\n\n    if (kd_is_leaf(lon, stat->K)) {\n        float l = l2sqr(stat->pt, stat->means + stat->dim * lon.leaf, stat->dim);\n        stat->cnt++;\n        if (l < stat->nn_dist) {\n            stat->nn = lon.leaf;\n            stat->nn_dist = l;\n        }\n    }\n    else { \n        kd_search_node(lon.node, stat, d2b);\n    }\n}\n\nstatic void kd_search_node (const kd_node_t *node, struct kd_search_stat *stat, float d2b) {\n\n    unsigned cd = node->cut_dim;\n    float cv = node->cut_val;\n    const float *pt = stat->pt;\n    float cut_diff = pt[cd] - cv;\n    float box_diff;\n\n    if (cut_diff < 0) {\n        kd_search_leaf_or_node(node->left, stat, d2b);\n\n        box_diff = node->lower - pt[cd];\n        if (box_diff < 0) {\n            box_diff = 0;\n        }\n        d2b = d2b + sqr(cut_diff) - sqr(box_diff);\n\n        if (d2b < stat->nn_dist) {\n            kd_search_leaf_or_node(node->right, stat, d2b);\n        }\n    }\n    else {\n        kd_search_leaf_or_node(node->right, stat, d2b);\n\n        float box_diff = pt[cd] - node->upper;\n        if (box_diff < 0) {\n            box_diff = 0;\n        }\n\n        d2b = d2b + sqr(cut_diff) - sqr(box_diff);\n\n        if (d2b < stat->nn_dist) {\n            kd_search_leaf_or_node(node->left, stat, d2b);\n        }\n    }\n}\n\n// lookup is readonly\nunsigned kd_tree_search (kd_tree_t *tree, const float *pt, unsigned *cnt) {\n\n    unsigned d;\n    float d2b = 0;\n    for (d = 0; d < tree->dim; d++) {\n        if (pt[d] < tree->bnds.lo[d]) d2b += sqr(tree->bnds.lo[d] - pt[d]);\n        else if (pt[d] > tree->bnds.hi[d]) d2b += sqr(pt[d] - tree->bnds.hi[d]);\n    }\n\n    struct kd_search_stat stat;\n    stat.dim = tree->dim;\n    stat.K = tree->K;\n    stat.means = tree->means;\n    stat.pt = pt;\n    stat.cnt = 0;\n    stat.nn = 0;\n    stat.nn_dist = FLT_MAX;\n\n    kd_search_node(tree->nodes, &stat, d2b);\n\n    *cnt = stat.cnt;\n\n    /*\n    {\n        // fprintf(stderr, \"C\");\n        unsigned r = kd_tree_ln_search(tree, pt, cnt);\n        if (r != stat.nn) {\n            float l = l2sqr(pt, tree->means + tree->dim * r, tree->dim);\n            fprintf(stderr, \"KDTREE: %u %g %u %g\\n\", stat.nn, stat.nn_dist, r, l);\n        }\n    }\n    */\n\n    return stat.nn;\n}\n\nunsigned kd_tree_ln_search (kd_tree_t *tree, const float *pt, unsigned *cnt)\n{\n    unsigned k, c = 0;\n    const float *cm = tree->means;\n    float d, min = l2sqr(cm, pt, tree->dim);\n    cm += tree->dim;\n    for (k = 1; k < tree->K; k++, cm += tree->dim) {\n        d = l2sqr(cm, pt, tree->dim);\n        if (d < min) {\n            c = k;\n            min = d;\n        }\n    }\n    *cnt = tree->K;\n    return c;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/kdtree.h",
    "content": "#ifndef WDONG_KD_TREE\n#define WDONG_KD_TREE\n\ntypedef struct kd_tree kd_tree_t;\n\nkd_tree_t *kd_tree_alloc (unsigned K, unsigned dim);\n\nvoid kd_tree_free (kd_tree_t *tree);\n\nvoid kd_tree_index (kd_tree_t *tree, const float *means);\n\nunsigned kd_tree_search (kd_tree_t *tree, const float *pt, unsigned *cnt);\n\nunsigned kd_tree_ln_search (kd_tree_t *tree, const float *pt, unsigned *cnt);\n\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/mplsh-model.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"logging.h\"\n\n#include <cmath>\n#include <boost/functional.hpp>\n#include <boost/math/special_functions/digamma.hpp>\n#include <boost/math/tools/roots.hpp>\n#include <gsl/gsl_integration.h>\n\n#include <lshkit/common.h>\n#include <lshkit/mplsh.h>\n\n#define ABS_ERROR   1e-5l\n#define REL_ERROR   1e-5l\n#define MAX_SHAPE   1000.0l\n#define LIMIT       40000\n\nnamespace lshkit {\n\nstatic GaussianDouble normal;\n\n/* Maximum Likelihood Estimation of gamma distribution */\nclass GammaDoubleMleHelper\n{\n    double rate_; // G / M\npublic:\n    GammaDoubleMleHelper(double rate): rate_(rate) {}\n\n    double operator () (double k)\n    {\n        return std::log(k) - boost::math::digamma(k) + std::log(rate_);\n    }\n};\n\nbool GammaDoubleMleTol (double first, double second)\n{\n    return (second - first) < ABS_ERROR;\n}\n\nGammaDouble GammaDoubleMLE (double M, double G)\n{\n    GammaDoubleMleHelper hlp(G/M);\n    // Conversion to double is due to an Intel's bug with __builtin_signbit being undefined for float\n    std::pair<double,double> pair = boost::math::tools::bisect(hlp, (double)ABS_ERROR, (double)MAX_SHAPE, GammaDoubleMleTol);\n    double k = (pair.first + pair.second) / 2.0;\n    return GammaDouble(k, M/k);\n}\n\n/* estimate the cost and miss of LSH */\nstatic inline double col_helper (double x)\n{\n    double result;\n    result = 2.0*boost::math::cdf(normal, x) - 1.0;\n    result += std::sqrt(2.0/M_PI) * (std::exp(-x*x/2.0)-1.0)/x;\n    return result; \n}\n\nstatic inline double p_col_helper (double x, double k)\n{\n    return boost::math::cdf(normal,(1.0 + k) * x)\n        - boost::math::cdf(normal, k*x);\n}\n\ndouble MultiProbeLshModel::recall (double x) const\n{\n    double x2 = W_ / x;\n    double p = col_helper(x2);\n\n\n    unsigned MT =  __probeSequenceTemplates[M_].size();\n    if (MT > T_) MT = T_;\n    \n    double result = 0;\n    for (unsigned i = 0; i < MT; i++)\n    {\n        double r = 1.0;\n        for (unsigned j = 0; j < M_; j++)\n        {\n            Probe &probe = __probeSequenceTemplates[M_][i];\n            if (probe.mask & leftshift(j))\n            {\n                double delta = (j + 1.0) / (M_ + 1.0) * 0.5; // expected value\n                if (probe.shift & leftshift(j))\n                {\n                    r *= p_col_helper(x2, 1.0 - delta);\n                }\n                else\n                {\n                    r *= p_col_helper(x2, delta);\n                }\n            }\n            else r *= p;\n        }\n        result += r;\n    }\n    return 1.0 - std::exp(std::log(1.0 - result) * L_);\n}\n\nstruct __MpLshMdlHlpr\n{\n    const MultiProbeLshModel *model;\n    const GammaDouble *gamma;\n};\n\nstatic double recall_helper (double xsqr, void *_param)\n{\n    __MpLshMdlHlpr *param = reinterpret_cast<__MpLshMdlHlpr\n        *>(_param);\n    return boost::math::pdf(*param->gamma, xsqr) * param->model->recall(std::sqrt(xsqr));\n}\n\nstatic double recall (__MpLshMdlHlpr *param)\n{\n    static gsl_integration_workspace *workspace = NULL;\n    double f, error;\n    gsl_function I;\n    if (workspace == NULL)\n    {\n        workspace = gsl_integration_workspace_alloc(LIMIT);\n        BOOST_VERIFY(workspace != NULL);\n    }\n    I.params = param;\n    I.function = recall_helper;\n    //if (gsl_integration_qagiu(&I, 0.0, ABS_ERROR, REL_ERROR, LIMIT, workspace, &f, &error) != 0) f = 1.0;\n    if (gsl_integration_qagiu(&I, 0.0, ABS_ERROR, REL_ERROR, LIMIT, workspace, &f, &error) != 0) {\n      LOG(LIB_INFO) << \"The integral didn't converge, assuming the recall is zero.\";\n      f = 0.0;\n    }\n    return f;\n}\n\ndouble MultiProbeLshDataModel::avgRecall () const\n{\n    double f = 0.0;\n    __MpLshMdlHlpr param;\n    param.model = this;\n    for (unsigned k = 0; k < topkDists_.size(); k++)\n    {\n        param.gamma = &topkDists_[k];\n        f += lshkit::recall(&param);\n    }\n    f /= topkDists_.size();\n    return f;\n}\n\ndouble MultiProbeLshDataModel::cost () const\n{\n    __MpLshMdlHlpr param;\n    param.model = this;\n    param.gamma = &globalDist_;\n    return lshkit::recall(&param);\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/mplsh.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <cassert>\n#include <queue>\n#include <lshkit/mplsh.h>\n\nnamespace lshkit\n{\n    ProbeSequenceTemplates __probeSequenceTemplates(Probe::MAX_M, Probe::MAX_T);\n\n    void GenExpectScores (ProbeSequence &seq, unsigned M)\n    {\n        assert(M <= sizeof(seq[0].mask)* 8);\n        seq.resize(2 * M);\n        for (unsigned l = 0; l < M; ++l)\n        {\n            unsigned r = 2 * M - l - 1;\n            seq[l].mask = seq[r].mask = seq[r].shift = leftshift(l);\n            seq[l].shift = 0;\n            seq[l].reserve = seq[r].reserve = 0;\n            float delta = (l + 1.0) / (M + 1.0) * 0.5;\n            seq[l].score = (l + 1.0) * (l + 2.0) / (M + 1.0) / (M + 2.0) * 0.25;\n            seq[r].score = 1.0 - 2.0 * delta + seq[l].score;\n        }\n    }\n\n    class ProbeGT\n    {\n    public:\n        bool operator () (const Probe &p1, const Probe &p2) const\n        {\n            return p2 < p1;\n        }\n    };\n\n    void GenProbeSequenceTemplate (ProbeSequence &seq, unsigned M, unsigned T)\n    {\n        ProbeSequence scores;\n        GenExpectScores(scores, M);\n        assert(T > 0);\n\n        std::priority_queue<Probe, std::vector<Probe>, ProbeGT> heap;\n        Probe init;\n        init.mask = init.shift = 0;\n        init.score = 0;\n        init.reserve = 0;\n        heap.push(init);\n\n        seq.clear();\n\n        for (;;)\n        {\n            if (heap.empty()) break;\n            seq.push_back(heap.top());\n            if (seq.size() == T) break;\n\n            Probe shift = heap.top();\n            heap.pop();\n\n            for (unsigned next = shift.reserve; next < 2 * M; ++next)\n            {\n                if (!shift.conflict(scores[next]))\n                {\n                    Probe tmp = shift + scores[next];\n                    tmp.reserve = next + 1;\n                    heap.push(tmp);\n                }\n            }\n        }\n    }\n\n    void MultiProbeLsh::genProbeSequence (Domain obj, std::vector<unsigned>\n            &seq, unsigned T) const\n    {\n        ProbeSequence scores;\n        std::vector<unsigned> base;\n        scores.resize(2 * lsh_.size());\n        base.resize(lsh_.size());\n        for (unsigned i = 0; i < lsh_.size(); ++i)\n        {\n            float delta;\n            base[i] = Super::lsh_[i](obj, &delta);\n            scores[2*i].mask = i;\n            scores[2*i].reserve = 1;    // direction\n            scores[2*i].score = delta;\n            scores[2*i+1].mask = i;\n            scores[2*i+1].reserve = unsigned(-1);\n            scores[2*i+1].score = 1.0 - delta;\n        }\n        std::sort(scores.begin(), scores.end());\n\n        ProbeSequence &tmpl = __probeSequenceTemplates[lsh_.size()];\n\n        seq.clear();\n        for (ProbeSequence::const_iterator it = tmpl.begin();\n                it != tmpl.end(); ++it)\n        {\n            if (seq.size() == T) break;\n            const Probe &probe = *it;\n            unsigned hash = 0;\n            for (unsigned i = 0; i < lsh_.size(); ++i)\n            {\n                unsigned h = base[scores[i].mask];\n                if (probe.mask & leftshift(i))\n                {\n                    if (probe.shift & leftshift(i))\n                    {\n                        h += scores[i].reserve;\n                    }\n                    else\n                    {\n                        h += unsigned(-1) * scores[i].reserve;\n                    }\n                }\n                hash += h * a_[scores[i].mask];\n            }\n            seq.push_back(hash % H_);\n        }\n    }\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/src/vq.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <cassert>\n#include <queue>\n#include <lshkit/common.h>\n#include <lshkit/vq.h>\n#include \"kdtree.h\"\n\nnamespace lshkit\n{\n    void VQ::init () {\n        if (tree != 0) free();\n        tree = kd_tree_alloc(K, dim);\n        kd_tree_index((kd_tree_t *)tree, &means[0]);\n    }\n\n    void VQ::free () {\n        kd_tree_free((kd_tree_t *)tree);\n    }\n\n    unsigned VQ::search (Domain obj) const {\n        unsigned cnt;\n        return kd_tree_search((kd_tree_t *)tree, obj, &cnt);\n    }\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/CMakeLists.txt",
    "content": "SET(TOOLS fitdata lsh-run mplsh-run apost-run mplsh-predict mplsh-tune sketch-run forest-run scan embed txt2bin dump-query run-spectral)\r\nFOREACH(TOOL ${TOOLS})\r\nADD_EXECUTABLE(${TOOL} ${TOOL}.cpp)\r\nTARGET_LINK_LIBRARIES(${TOOL} lshkit ${Boost_LIBRARIES} ${GSL_LIBRARIES})\r\nENDFOREACH(TOOL)\r\n\r\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/apost-run.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\n/**\n  * \\file apost-run.cpp\n  * \\brief Example of using A Posteriori MPLSH.\n  *\n  * This program is an example of using A Posteriori MPLSH index.\n  *\n  * You need to run this program twice: once for index building\n  * and training, once for testing.\n  * For index building (with --build), you need to specify the following parameters:\n  *     -W -M -L -Q -K|-R -D -B --index --build\n  *     -N --expand --k-sigma\n  * The parameter -N specify the quantization granularity (Nz in equation 17).\n  * For now, do not specify the expand parameter (just use the default).\n  * k-sigma specifies the sigma in Gaussian kernel used in equation 14 & 15.\n  * Here the benchmark is used to train the a posteriori model.  The index\n  * will be written to the --index parameter.\n  *\n  * For testing (without --build), you need to specify the following:\n  *     -Q -K|-R -D -B --index -T|--recall\n  *\n  * The benchmark provided for training and benchmarking should be different.\n  * To generate the benchmark file, use the scan program with different --seed\n  * parameters.\n  *\n  * Following is a example run on the audio dataset:\n  * Training:\n  *     apost-run -D audio.data -B audio.train  -L 10 -W 4.32 -M 20 -Q 1000 -K 50 --build --index audio.apost\n  * Testig:\n  *     apost-run -D audio.data -B audio.query  -T 20 -Q 100 -K 50 --index audio.apost\n  *\n\\verbatim\n  -h [ --help ]                         produce help message.\n  -W [ -- ] arg (=1)\n  -M [ -- ] arg (=1)\n  -N [ -- ] arg (=2500)\n  -T [ -- ] arg (=1)                    # probes\n  -L [ -- ] arg (=1)                    # hash tables\n  -Q [ -- ] arg (=100)                  # queries\n  -K [ -- ] arg (=0)                    # nearest neighbor to retrieve\n  -R [ --radius ] arg (=3.40282347e+38) R-NN distance range (L2)\n  --recall arg                          desired recall\n  -D [ --data ] arg                     data file\n  -B [ --benchmark ] arg                benchmark file\n  --index arg                           index file\n  --build                               build index, using benchmark as\n                                        training examples\n  -H [ -- ] arg (=1017881)              hash table size, use the default value.\n  --expand arg (=0)\n  --k-sigmal arg (=0.2)\n\\endverbatim\n  */\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string benchmark;\n    string index_file;\n\n    float W, R, desired_recall = 1.0, expand, k_sigma;\n    unsigned M, L, H, Nz;\n    unsigned Q, K, T;\n    bool do_recall = false;\n    bool do_build = false;\n\n    boost::timer timer;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",W\", po::value<float>(&W)->default_value(1.0), \"\")\n        (\",M\", po::value<unsigned>(&M)->default_value(1), \"\")\n        (\",N\", po::value<unsigned>(&Nz)->default_value(2500), \"\")\n        (\",T\", po::value<unsigned>(&T)->default_value(1), \"# probes\")\n        (\",L\", po::value<unsigned>(&L)->default_value(1), \"# hash tables\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(100), \"# queries\")\n        (\",K\", po::value<unsigned>(&K)->default_value(0), \"# nearest neighbor to retrieve\")\n        (\"radius,R\", po::value<float>(&R)->default_value(numeric_limits<float>::max()), \"R-NN distance range (L2)\")\n        (\"recall\", po::value<float>(&desired_recall), \"desired recall\")\n        (\"data,D\", po::value<string>(&data_file), \"data file\")\n        (\"benchmark,B\", po::value<string>(&benchmark), \"benchmark file\")\n        (\"index\", po::value<string>(&index_file), \"index file\")\n        (\"build\", \"build index, using benchmark as training examples\")\n        (\",H\", po::value<unsigned>(&H)->default_value(1017881), \"hash table size, use the default value.\")\n        (\"k-sigma\", po::value<float>(&k_sigma)->default_value(1.0/5), \"\")\n        (\"expand\", po::value<float>(&expand)->default_value(0), \"\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if (vm.count(\"build\") >= 1) {\n        do_build = true;\n    }\n\n    if (vm.count(\"radius\") >= 1) {\n        R *= R; // we use L2sqr in the program.\n    }\n\n    if (vm.count(\"recall\") >= 1)\n    {\n        do_recall = true;\n    }\n\n    if ((Q == 0) || (vm.count(\"benchmark\") == 0)) {\n        cerr << \"No benchmark data.\" << endl;\n        return -1;\n    }\n\n    if (vm.count(\"index\") != 1) {\n        cerr << \"No index file specified.\" << endl;\n        return -1;\n    }\n\n    cout << \"LOADING DATA...\" << endl;\n    timer.restart();\n    FloatMatrix data(data_file);\n    cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n\n    typedef APostLshIndex<unsigned> Index;\n\n    FloatMatrix::Accessor accessor(data);\n    Index index;\n\n    if (do_build) {\n        // We define a short name for the MPLSH index.\n        Index::Parameter param;\n\n        // Setup the parameters.  Note that L is not provided here.\n        param.W = W;\n        param.range = H; // See H in the program parameters.  You can just use the default value.\n        param.repeat = M;\n        param.dim = data.getDim();\n        DefaultRng rng;\n\n        index.init(param, rng, L);\n        // The accessor.\n\n        // Initialize the index structure.  Note L is passed here.\n        cout << \"CONSTRUCTING INDEX...\" << endl;\n\n        timer.restart();\n        {\n            boost::progress_display progress(data.getSize());\n            for (int i = 0; i < data.getSize(); ++i)\n            {\n                // Insert an item to the hash table.\n                // Note that only the key is passed in here.\n                // MPLSH will get the feature from the accessor.\n                index.insert(i, data[i]);\n                ++progress;\n            }\n        }\n        cout << boost::format(\"CONSTRUCTION TIME: %1%s.\") % timer.elapsed() << endl;\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        cout << \"TRAINING INDEX...\" << endl;\n        timer.restart();\n\n        vector<APostExample> examples(Q);\n        for (unsigned i = 0; i < Q; ++i) {\n            examples[i].query = data[bench.getQuery(i)];\n            const Topk<unsigned> &topk = bench.getAnswer(i);\n            examples[i].results.resize(topk.size());\n            for (unsigned j = 0; j < topk.size(); j++) {\n                examples[i].results[j] = data[topk[j].key];\n            }\n        }\n\n        index.train(examples, Nz, k_sigma, expand);\n        cout << boost::format(\"TRAINING TIME: %1%s.\") % timer.elapsed() << endl;\n\n        timer.restart();\n        cout << \"SAVING INDEX...\" << endl;\n        {\n            ofstream os(index_file.c_str(), ios_base::binary);\n            os.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            index.save(os);\n        }\n        cout << boost::format(\"SAVING TIME: %1%s\") % timer.elapsed() << endl;\n    }\n    else {\n\n        // try loading index\n        {\n            ifstream is(index_file.c_str(), ios_base::binary);\n            BOOST_VERIFY(is);\n            is.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            cout << \"LOADING INDEX...\" << endl;\n            timer.restart();\n            index.load(is);\n            BOOST_VERIFY(is);\n            cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n        }\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            for (unsigned j = 0; j < K; ++j)\n            {\n                assert(bench.getAnswer(i)[j].key < data.getSize());\n            }\n        }\n\n        cout << \"RUNNING QUERIES...\" << endl;\n\n        Stat recall;\n        Stat cost;\n        metric::l2sqr<float> l2sqr(data.getDim());\n        TopkScanner<FloatMatrix::Accessor, metric::l2sqr<float> > query(accessor, l2sqr, K, R);\n        vector<Topk<unsigned> > topks(Q);\n\n        timer.restart();\n        if (do_recall)\n            // Specify the required recall\n            // and let MPLSH to guess how many bins to probe.\n        {\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                // Query for one point.\n                query.reset(data[bench.getQuery(i)]);\n                index.query_recall(data[bench.getQuery(i)], desired_recall, query);\n                cost << double(query.cnt())/double(data.getSize());\n                topks[i].swap(query.topk());\n                ++progress;\n            }\n        }\n        else\n            // specify how many bins to probe.\n        {\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                query.reset(data[bench.getQuery(i)]);\n                index.query(data[bench.getQuery(i)], T, query);\n                cost << double(query.cnt())/double(data.getSize());\n                topks[i].swap(query.topk());\n                ++progress;\n            }\n        }\n\n        for (unsigned i = 0; i < Q; ++i) {\n            recall << bench.getAnswer(i).recall(topks[i]);\n        }\n\n        cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n\n        cout << \"[RECALL] \" << recall.getAvg() << \" +/- \" << recall.getStd() << endl;\n        cout << \"[COST] \" << cost.getAvg() << \" +/- \" << cost.getStd() << endl;\n\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/dump-query.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\n/**\n  * \\file mplsh-run.cpp\n  * \\brief Example of using MPLSH.\n  *\n  * This program is an example of using MPLSH index.\n  *\n  * The program reconstruct the LSH index by default.  You can give the\n  * --index option to make the program save the LSH index.  The next\n  * time you run the program with the same --index option, the program\n  * will try to load the previously saved index.  When a saved index is\n  * used, you need to make sure that the dataset and other parameters match\n  * the previous run.  However, the benchmark file, Q and K can be different.\n  *\n\\verbatim\nAllowed options:\n  -h [ --help ]                   produce help message.\n  -W [ -- ] arg (=1)\n  -M [ -- ] arg (=1)\n  -T [ -- ] arg (=1)              # probes\n  -L [ -- ] arg (=1)              # hash tables\n  -Q [ -- ] arg (=100)            # queries\n  -K [ -- ] arg (=50)             # nearest neighbor to retrieve\n  -R [ -- ] arg (=3.40282347e+38) R-NN distance range\n  --recall arg                    desired recall\n  -D [ --data ] arg               data file\n  -B [ --benchmark ] arg          benchmark file\n  --index arg                     index file\n  -H [ -- ] arg (=1017881)        hash table size, use the default value.\n\\endverbatim\n  */\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\n/*\n    You must provide an access class to query the MPLSH.\n    MPLSH only saves keys (pointers to the real feature vectors) in the\n    hash tables and it will rely on the accessor class to retrieve\n    the feature vector.\n\n    An accessor must provide three methods:\n\n        bool mark (unsigned key);\n\n        mark that key has been accessed.  If key has already been marked, return false,\n        otherwise return true.  MPLSH will use this to avoid scanning the data more than\n        one time per query.\n\n        void reset ();\n\n        to clear all the marks.\n        \n        const float *operator () (unsigned key);\n\n        given a key, return the pointer to a feature vector.\n\n    The MatrixAccessor class is used to access feature vectors stored in a Matrix.\n*/\n\n/* This class has been merged to include/lshkit/matrix.h */\n/*\nclass MatrixAccessor\n{\n    const Matrix<float> &matrix_;\n    boost::dynamic_bitset<> flags_;\npublic:\n    typedef unsigned Key;\n    MatrixAccessor(const Matrix<float> &matrix)\n        : matrix_(matrix), flags_(matrix.getSize()) {}\n\n    MatrixAccessor(const MatrixAccessor &accessor)\n        : matrix_(accessor.matrix_), flags_(matrix_.getSize()) {}\n\n    void reset ()\n    {\n        flags_.reset();\n    }\n\n    bool mark (unsigned key)\n    {\n        if (flags_[key]) return false;\n        flags_.set(key);\n        return true;\n    }\n\n    const float *operator () (unsigned key)\n    {\n        return matrix_[key];\n    }\n};\n*/\n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string benchmark;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\"data,D\", po::value<string>(&data_file), \"data file\")\n        (\"benchmark,B\", po::value<string>(&benchmark), \"benchmark file\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    FloatMatrix data(data_file);\n\n        Benchmark<> bench;\n        bench.load(benchmark);\n\n    for (unsigned i = 0; i < bench.getQ(); ++i) {\n        const float *p = data[bench.getQuery(i)];\n        cout << p[0];\n        for (int d = 1; d < data.getDim(); ++d) {\n            cout << ' ' << p[d];\n        }\n        cout << endl;\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/embed.cpp",
    "content": "/* \n    Copyright (C) 2009 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file embed.cpp\n * \\brief Example program of set embedding with random histograms.\n *\n * This program implements the two random histogram embedding methods\n * proposed in the random histogram paper by W. Dong et al.\n *\n * The program reads feature sets from an input text file.  The file\n * is of the following format\n *\n \\verbatim\n ID   N                   // ID is the identifier of the set, N is the number of features in the set\n weight   D1  D2  ...     // a weight followed by D dimensions, 1st feature\n weight   D1  D2  ...     // 2nd feature\n ...\n weight   D1  D2  ...     // Nth feature\n ID   N                   // another set\n weight   D1  D2  ...\n \\endverbatim\n * ID is string which cannot contain space characters; N is positive integer; weight and the dimension\n * values are floats.\n *\n * The program embedds the input sets into single feature vectors and output\n * them in the following format\n *\n \\verbatim\n ID D1  D2 ...              // The input IDs are copied to the output\n ID D1  D2 ...              // Following is the histogram, whose dimensionality is determined by the\n ...                        // input parameters.\n \\endverbatim\n *\n * The user is encouraged to modify this program to customize the input and output format.\n *\n * Usage:\n *\n \\verbatim\nAllowed options:\n  -h [ --help ]            produce help message.\n  -t [ --type ] arg (=1)   embedding algorithm:\n                           1 - stripe embedding [-B, -M, -N, -W],\n                           2 - random hyperplane [-B, -M, -N].\n\n  --norm                   normalize the output vector to unit length.\n  -I [ --input ] arg (=-)  input file.\n  -O [ --output ] arg (=-) output file.\n  -D [ --dim ] arg         input dimension.\n  -B [ -- ] arg (=8)       #bits per projection.\n  -M [ -- ] arg (=1)       take the sum of M.\n  -N [ -- ] arg (=10)      repeat N times.\n  -W [ -- ] arg (=1)       for type 1 only, LSH window size.\n \\endverbatim\n */\n\n\n#include <boost/program_options.hpp>\n#include <boost/foreach.hpp>\n#include <lshkit.h>\n\n/*\n The Histogram<> class in LSHKIT doesn't support polymorphism.\n Following we are going to wrap up Histogram<> with Embedder classes\n to support polymorphism, so the user can choose different\n embedder classes in command line.\n*/\n\n/// The abstract embedder.\n/**\n  * An Embedder class only have to implement two virtual functions: dim() and add().\n  */\nclass Embedder {\npublic:\n    /// The dimension of the output histogram.\n    virtual unsigned dim () const = 0;\n    /// Add a point to the output histogram with weight.\n    virtual void add (float *out, const float *in, float weight) const = 0;\n    /// Add a point to the output histogram with weight = 1.\n    void add (float *out, const float *in) const {\n        add(out, in , 1.0);\n    }\n    /// Initialize the output histogram to zeros.\n    void zero (float *out) const {\n        std::fill(out, out + dim(), 0);\n    }\n    /// Scale the output histogram by *s.\n    void scale (float *out, float s) const\n    {\n        for (unsigned i = 0; i < dim(); i++) out[i] *= s;\n    }\n    /// Normalize the output histogram to a unit vector.\n    void norm (float *out) const\n    {\n        float s = 0.0;\n        for (unsigned i = 0; i < dim(); i++) s += out[i] * out[i];\n        s = 1.0/sqrtf(s);\n        scale(out, s);\n    }\n};\n\n/// The Stripe LSH. See Section 4.1 of MM08 paper.\ntypedef lshkit::Repeat<lshkit::LSB<lshkit::GaussianLsh> > StripeLsh;\ntypedef lshkit::Histogram<StripeLsh> StripeEmbedderBase;\n\n/// Wrapper of the histogram embedder.\nclass StripeEmbedder: public Embedder, public StripeEmbedderBase {\n    typedef StripeEmbedderBase Base;\npublic:\n    struct Parameter: public Base::Parameter {\n        unsigned M, N;\n        /**\n          Inheritec parameters:\n          unsigned dim;\n          float W;\n          unsigned repeat\n         */\n\n    };\n\n    StripeEmbedder (const Parameter &param, lshkit::DefaultRng &rng)\n        : Base(param.M, param.N, param, rng) {\n    }\n\n    virtual unsigned dim () const {\n        return Base::dim();\n    }\n\n    virtual void add (float *out, const float *in, float weight) const {\n        Base::add(out, const_cast<float *>(in), weight);\n    }\n};\n\n/// Random hyperplane LSH. See Section 4.2 of MM08 paper.\ntypedef lshkit::Repeat<lshkit::HyperPlaneLsh> HyperPlaneLsh;\ntypedef lshkit::Histogram<HyperPlaneLsh> HyperPlaneEmbedderBase;\n\n/// Wrapper of the histogram embedder.\nclass HyperPlaneEmbedder: public Embedder, public HyperPlaneEmbedderBase {\n    typedef HyperPlaneEmbedderBase Base;\npublic:\n    struct Parameter: public Base::Parameter {\n        unsigned M, N;\n        /**\n          Inheritec parameters:\n          unsigned dim;\n          unsigned repeat\n         */\n    };\n\n    HyperPlaneEmbedder (const Parameter &param, lshkit::DefaultRng &rng)\n        : Base(param.M, param.N, param, rng) {\n    }\n\n    virtual unsigned dim () const {\n        return Base::dim();\n    }\n\n    virtual void add (float *out, const float *in, float weight) const {\n        Base::add(out, const_cast<float *>(in), weight);\n    }\n};\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\n#define EMBEDDER_STRIP  1\n#define EMBEDDER_RP 2\n\nint main (int argc, char *argv[])\n{\n    int type;\n\n    string input;\n    string output;\n\n    unsigned D, B, M, N;\n    float W;\n    bool norm = false;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\"type,t\", po::value(&type)->default_value(1), \"embedding algorithm:\\n\"\n            \"\\t1 - stripe embedding [-B, -M, -N, -W],\\n\"\n            \"\\t2 - random hyperplane [-B, -M, -N].\\n\"\n         )\n        (\"norm\", \"normalize the output vector to unit length.\")\n        (\"input,I\", po::value(&input)->default_value(\"-\"), \"input file.\")\n        (\"output,O\", po::value(&output)->default_value(\"-\"), \"output file.\")\n        (\"dim,D\", po::value(&D), \"input dimension.\")\n        (\",B\", po::value(&B)->default_value(8), \"#bits per projection.\")\n        (\",M\", po::value(&M)->default_value(1), \"take the sum of M.\")\n        (\",N\", po::value(&N)->default_value(10), \"repeat N times.\")\n        (\",W\", po::value(&W)->default_value(1.0), \"for type 1 only, LSH window size.\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"dim\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if (vm.count(\"norm\")) norm = true;\n\n    DefaultRng rng;\n    Embedder *emb;\n\n    switch (type)\n    {\n        case 1: {\n                    StripeEmbedder::Parameter param;\n                    param.dim = D;\n                    param.W = W;\n                    param.repeat = B;\n                    param.M = M;\n                    param.N = N;\n                    emb = new StripeEmbedder(param, rng);\n                    break;\n                }\n        case 2: {\n\n                    HyperPlaneEmbedder::Parameter param;\n                    param.dim = D;\n                    param.repeat = B;\n                    param.M = M;\n                    param.N = N;\n                    emb = new HyperPlaneEmbedder(param, rng);\n                    break;\n                }\n        default:\n                throw invalid_argument(\"INVALID EMBEDDER TYPE.\");\n    }\n    \n    ifstream is(input.c_str());\n    ofstream os(output.c_str());\n\n    float *in = new float[D];\n    float *out = new float[emb->dim()];\n\n    for (;;)\n    {\n/* !!!!!!!!!!!!!!!!! Modify here for different input format !!!!!!!!!!!!!! */\n        unsigned n;  /* number of feature vectors for the next object */\n        string id;\n        is >> id >> n;\n        if (!is) break;\n        emb->zero(out);\n        // process the n vectors\n        for (unsigned i = 0; i < n; ++i)\n        {\n            float weight;\n            is >> weight;\n            /* read a feature vector */\n            for (unsigned j = 0; j < D; ++j) {\n                is >> in[j];\n            }\n            emb->add(out, in, weight);\n        }\n\n/* !!!!!!!!!!!!!!!!! Modify here for different output format !!!!!!!!!!!!!! */\n        if (norm) emb->norm(out);\n        os << id;\n        for (unsigned j = 0; j < emb->dim(); ++j) {\n            os << '\\t' << out[j];\n        }\n        os << endl;\n    }\n\n    delete emb;\n    delete []in;\n    delete []out;\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/fitdata.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *  \\file fitdata.cpp\n *  \\brief Gather statistics from dataset for MPLSH tuning.\n *\n *  This program gahters statistical data from a small sample dataset\n *  for automatic MPLSH parameter tuning.  It carries out the following\n *  steps:\n *  -# Sample N points from the dataset. Only those N points will be used for future computation.\n *  -# Sample P pairs of points from the sample, calculate the distance for each pair.\n *  -# Sample Q points from the sample as queries points.\n *  -# Divide the sample into F folds.\n *  -# For i = 1 to F, take i folds and run K-NN search, so the query points\n *     will be searched against sample datasets of N/F, 2N/F, ..., N/F points.\n *\n *  The statistical data is printed to standard output after the progress display.\n *\n\\verbatim\nAllowed options:\n  -h [ --help ]          produce help message.\n  -N [ -- ] arg (=0)     number of points to use\n  -P [ -- ] arg (=50000) number of pairs to sample\n  -Q [ -- ] arg (=1000)  number of queries to sample\n  -K [ -- ] arg (=100)   search for K nearest neighbors\n  -F [ -- ] arg (=10)    divide the sample to F folds\n  -D [ --data ] arg      data file\n\\endverbatim\n */\n\n\n#include <cstdlib>\n#include <gsl/gsl_multifit.h>\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\n//using namespace tr1;\nnamespace po = boost::program_options; \n\n/*\nbool is_good_value (double v) {\n    return ((v > -std::numeric_limits<double>::max())\n                    && (v < std::numeric_limits<double>::max()));\n}\n*/\n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    unsigned N, P, Q, K, F;\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",N\", po::value<unsigned>(&N)->default_value(0), \"number of points to use\")\n        (\",P\", po::value<unsigned>(&P)->default_value(50000), \"number of pairs to sample\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(1000), \"number of queries to sample\")\n        (\",K\", po::value<unsigned>(&K)->default_value(100), \"search for K nearest neighbors\")\n        (\",F\", po::value<unsigned>(&F)->default_value(10), \"divide the sample to F folds\")\n        (\"data,D\", po::value<string>(&data_file), \"data file\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    /* load matrix */\n    Matrix<float> data(data_file);\n\n    vector<unsigned> idx(data.getSize());\n    for (unsigned i = 0; i < idx.size(); ++i) idx[i] = i;\n    random_shuffle(idx.begin(), idx.end());\n\n    if (N > 0 && static_cast<int>(N) < data.getSize()) idx.resize(N);\n\n    metric::l2sqr<float> l2sqr(data.getDim());\n\n    DefaultRng rng;\n    boost::variate_generator<DefaultRng &, UniformUnsigned> gen(rng,\n             UniformUnsigned(0, idx.size()-1));\n\n    double gM = 0.0;\n    double gG = 0.0;\n    {\n        // sample P pairs of points\n        for (unsigned k = 0; k < P; ++k)\n        {\n            double dist, logdist;\n            for (;;)\n            {\n                unsigned i = gen();\n                unsigned j = gen();\n                if (i == j) continue;\n                dist = l2sqr(data[idx[i]], data[idx[j]]);\n                logdist = log(dist);\n                if (is_good_value(logdist)) break;\n            }\n            gM += dist;\n            gG += logdist;\n        }\n        gM /= P;\n        gG /= P;\n        gG = exp(gG);\n    }\n\n    if (Q > idx.size()) Q = idx.size();\n    if (K > idx.size() - Q) K = idx.size() - Q;\n    /* sample query */\n    vector<unsigned> qry(Q);\n\n    SampleQueries(&qry, idx.size(), rng);\n\n    /* do the queries */\n    vector<Topk<unsigned> > topks(Q);\n    for (unsigned i = 0; i < Q; ++i) topks[i].reset(K);\n\n    /* ... */\n    gsl_matrix *X = gsl_matrix_alloc(F * K, 3);\n    gsl_vector *yM = gsl_vector_alloc(F * K);\n    gsl_vector *yG = gsl_vector_alloc(F * K);\n    gsl_vector *pM = gsl_vector_alloc(3);\n    gsl_vector *pG = gsl_vector_alloc(3);\n    gsl_matrix *cov = gsl_matrix_alloc(3,3);\n\n    vector<double> M(K);\n    vector<double> G(K);\n\n    boost::progress_display progress(F, cerr);\n    unsigned m = 0;\n    for (unsigned l = 0; l < F; l++)\n    {\n        // Scan\n        for (unsigned i = l; i< idx.size(); i += F)\n        {\n            for (unsigned j = 0; j < Q; j++) \n            {\n                unsigned id = qry[j];\n                if (i != id) \n                {\n                    float d = l2sqr(data[idx[id]], data[idx[i]]);\n                    if (is_good_value(log(double(d)))) topks[j] << Topk<unsigned>::Element(i, d);\n                }\n            }\n        }\n\n        fill(M.begin(), M.end(), 0.0);\n        fill(G.begin(), G.end(), 0.0);\n\n        for (unsigned i = 0; i < Q; i++)\n        {\n            for (unsigned k = 0; k < K; k++)\n            {\n                M[k] += topks[i][k].dist;\n                G[k] += log(topks[i][k].dist);\n            }\n        }\n\n        for (unsigned k = 0; k < K; k++)\n        {\n            M[k] = log(M[k]/Q);\n            G[k] /= Q;\n            gsl_matrix_set(X, m, 0, 1.0);\n            gsl_matrix_set(X, m, 1, log(double(data.getSize() * (l + 1)) / double(F)));\n            gsl_matrix_set(X, m, 2, log(double(k + 1)));\n            gsl_vector_set(yM, m, M[k]);\n            gsl_vector_set(yG, m, G[k]);\n            ++m;\n        }\n\n        ++progress;\n    }\n\n    gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc(F * K, 3);\n\n    double chisq;\n\n    gsl_multifit_linear(X, yM, pM, cov, &chisq, work);\n    gsl_multifit_linear(X, yG, pG, cov, &chisq, work);\n\n    cout << gM << '\\t' << gG << endl;\n    cout << gsl_vector_get(pM, 0) << '\\t'\n         << gsl_vector_get(pM, 1) << '\\t'\n         << gsl_vector_get(pM, 2) << endl;\n    cout << gsl_vector_get(pG, 0) << '\\t'\n         << gsl_vector_get(pG, 1) << '\\t'\n         << gsl_vector_get(pG, 2) << endl;\n\n    gsl_matrix_free(X);\n    gsl_matrix_free(cov);\n    gsl_vector_free(pM);\n    gsl_vector_free(pG);\n    gsl_vector_free(yM);\n    gsl_vector_free(yG);\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/forest-run.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n  * \\file lsh-run.cpp\n  * \\brief Example of using LSH Forest index for L2 distance.\n  *\n  * This program is an example of using LSH Forest index.  The LSH used is\n  * LSB<GaussianLsh>, so the trees in the forest are binary trees. \n  *\n  * The current implementation of LSH Forest doesn't allow read/write\n  * index files.\n  *\n\\verbatim\nAllowed options:\n  -h [ --help ]                   produce help message.\n  -c [ -- ] arg (=20)             # points to scan from each tree\n  -L [ -- ] arg (=1)              number of trees\n  -D [ -- ] arg (=10)             maximal depth of tree\n  -W [ -- ] arg (=1)              hash function window size\n  -Q [ -- ] arg (=100)            number of queries to use\n  -K [ -- ] arg (=50)             number of nearest neighbors to retrieve\n  -R [ -- ] arg (=3.40282347e+38) R-NN distance range\n  -D [ --data ] arg               dataset path\n  -B [ --benchmark ] arg      \n\\endverbatim\n  * \n  */\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string benchmark;\n\n    float R, W;\n    unsigned c, L, H;\n    unsigned Q, K;\n    bool do_benchmark = true;\n    // bool use_index = false; // load the index from a file\n\n    boost::timer timer;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",c\", po::value<unsigned>(&c)->default_value(20), \"# points to scan from each tree\")\n        (\",L\", po::value<unsigned>(&L)->default_value(1), \"number of trees\")\n        (\",H\", po::value<unsigned>(&H)->default_value(10), \"maximal depth of tree\")\n        (\",W\", po::value<float>(&W)->default_value(1.0), \"hash function window size\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(100), \"number of queries to use\")\n        (\",K\", po::value<unsigned>(&K)->default_value(50), \"number of nearest neighbors to retrieve\")\n        (\",R\", po::value<float>(&R)->default_value(numeric_limits<float>::max()), \"R-NN distance range\")\n        (\"data,D\", po::value<string>(&data_file), \"dataset path\")\n        (\"benchmark,B\", po::value<string>(&benchmark), \"benchmark path\")\n        // (\"index\", po::value<string>(&index_file), \"index file\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if ((Q == 0) || (vm.count(\"benchmark\") == 0)) {\n        do_benchmark = false;\n    }\n\n    /*\n    if (vm.count(\"index\") == 1) {\n        use_index = true;\n    }\n    */\n\n    cout << \"LOADING DATA...\" << endl;\n    timer.restart();\n    FloatMatrix data(data_file);\n    cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n\n    //typedef Tail<RepeatHash<CauchyLsh> > MyLsh;\n\n    typedef LSB<GaussianLsh> MyLsh;\n    typedef ForestIndex<MyLsh, unsigned> Index;\n\n    FloatMatrix::Accessor accessor(data);\n    metric::l2<float> l2(data.getDim());\n    Index index;\n\n    // bool index_loaded = false;\n\n    /*\n    if (use_index) {\n        ifstream is(index_file.c_str(), ios_base::binary);\n        if (is) {\n            is.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            cout << \"LOADING INDEX...\" << endl;\n            timer.restart();\n            index.load(is);\n            verify(is);\n            cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n            index_loaded = true;\n        }\n    }\n\n    if (!index_loaded) {\n        // We define a short name for the MPLSH index.\n        float min = numeric_limits<float>::max();\n        float max = -numeric_limits<float>::max();\n\n        for (unsigned i = 0; i < data.getSize(); ++i) {\n            for (unsigned j = 0; j < data.getDim(); ++j) {\n                if (data[i][j] > max) max = data[i][j];\n                if (data[i][j] < min) min = data[i][j];\n            }\n        }\n\n        */\n\n        Index::Parameter param;\n\n        // Setup the parameters.  Note that L is not provided here.\n        param.W = W;\n        param.dim = data.getDim();\n        DefaultRng rng;\n\n        index.init(param, rng, L, H);\n        // The accessor.\n\n        // Initialize the index structure.  Note L is passed here.\n        cout << \"CONSTRUCTING INDEX...\" << endl;\n\n        timer.restart();\n        {\n            boost::progress_display progress(data.getSize());\n            for (int i = 0; i < data.getSize(); ++i)\n            {\n                // Insert an item to the hash table.\n                // Note that only the key is passed in here.\n                // MPLSH will get the feature from the accessor.\n                index.insert(i, accessor);\n                ++progress;\n            }\n        }\n        cout << boost::format(\"CONSTRUCTION TIME: %1%s.\") % timer.elapsed() << endl;\n\n        /*\n        if (use_index) {\n            timer.restart();\n            cout << \"SAVING INDEX...\" << endl;\n            {\n                ofstream os(index_file.c_str(), ios_base::binary);\n                os.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n                index.save(os);\n                verify(os);\n            }\n            cout << boost::format(\"SAVING TIME: %1%s\") % timer.elapsed() << endl;\n        }\n    }\n    */\n\n    if (do_benchmark) {\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            for (unsigned j = 0; j < K; ++j)\n            {\n                assert(bench.getAnswer(i)[j].key < data.getSize());\n            }\n        }\n\n        cout << \"RUNNING QUERIES...\" << endl;\n\n        Stat recall;\n        Stat cost;\n\n        timer.restart();\n        {\n            TopkScanner<FloatMatrix::Accessor, metric::l2<float> > query(accessor, l2, K, R);\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                query.reset(data[bench.getQuery(i)]);\n                index.query(data[bench.getQuery(i)], c * L, query);\n                recall << bench.getAnswer(i).recall(query.topk());\n                cost << double(query.cnt())/double(data.getSize());\n                ++progress;\n            }\n        }\n        cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n\n        cout << \"[RECALL] \" << recall.getAvg() << \" +/- \" << recall.getStd() << endl;\n        cout << \"[COST] \" << cost.getAvg() << \" +/- \" << cost.getStd() << endl;\n\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/lsh-run.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n  * \\file lsh-run.cpp\n  * \\brief Example of using RandomThresholding LSH index for L1 distance.\n  *\n  * This program is an example of using LSH index.  The LSH used is\n  * Tail<RepeatHash<ThresholdingLsh> >.  The ThresholdingLSH is repeated\n  * M times and then randomly hashed to a integer within the range of\n  * [0, H).  The size of one hash table is H.  The LSH family approximates\n  * L1 distance.\n  *\n  * The program reconstruct the LSH index by default.  You can give the\n  * --index option to make the program save the LSH index.  The next\n  * time you run the program with the same --index option, the program\n  * will try to load the previously saved index.  When a saved index is\n  * used, you need to make sure that the dataset and other parameters match\n  * the previous run.  However, the benchmark file, Q and K can be different.\n  *\n\\verbatim\nAllowed options:\n  -h [ --help ]            produce help message.\n  -M [ -- ] arg (=20)\n  -L [ -- ] arg (=1)       number of hash tables\n  -Q [ -- ] arg (=100)     number of queries to use\n  -K [ -- ] arg (=50)      number of nearest neighbors to retrieve\n  -D [ --data ] arg        dataset path\n  -B [ --benchmark ] arg   benchmark path\n  --index arg              index file\n  -H [ -- ] arg (=1017881) hash table size, use the default.\n\\endverbatim\n  * \n  */\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string benchmark;\n    string index_file;\n\n    float R;\n    unsigned M, L, H;\n    unsigned Q, K;\n    bool do_benchmark = true;\n    bool use_index = false; // load the index from a file\n\n    boost::timer timer;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",M\", po::value<unsigned>(&M)->default_value(20), \"\")\n        (\",L\", po::value<unsigned>(&L)->default_value(1), \"number of hash tables\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(100), \"number of queries to use\")\n        (\",K\", po::value<unsigned>(&K)->default_value(50), \"number of nearest neighbors to retrieve\")\n        (\",R\", po::value<float>(&R)->default_value(numeric_limits<float>::max()), \"R-NN distance range\")\n        (\"data,D\", po::value<string>(&data_file), \"dataset path\")\n        (\"benchmark,B\", po::value<string>(&benchmark), \"benchmark path\")\n        (\"index\", po::value<string>(&index_file), \"index file\")\n        (\",H\", po::value<unsigned>(&H)->default_value(1017881), \"hash table size, use the default.\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if ((Q == 0) || (vm.count(\"benchmark\") == 0)) {\n        do_benchmark = false;\n    }\n\n    if (vm.count(\"index\") == 1) {\n        use_index = true;\n    }\n\n    cout << \"LOADING DATA...\" << endl;\n    timer.restart();\n    FloatMatrix data(data_file);\n    cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n\n    //typedef Tail<RepeatHash<CauchyLsh> > MyLsh;\n\n    typedef Tail<RepeatHash<ThresholdingLsh> > MyLsh;\n    typedef LshIndex<MyLsh, unsigned> Index;\n\n    metric::l1<float> l1(data.getDim());\n    FloatMatrix::Accessor accessor(data);\n    Index index;\n\n    bool index_loaded = false;\n\n    if (use_index) {\n        ifstream is(index_file.c_str(), ios_base::binary);\n        if (is) {\n            is.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            cout << \"LOADING INDEX...\" << endl;\n            timer.restart();\n            index.load(is);\n            BOOST_VERIFY(is);\n            cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n            index_loaded = true;\n        }\n    }\n\n    if (!index_loaded) {\n        // We define a short name for the MPLSH index.\n        float min = numeric_limits<float>::max();\n        float max = -numeric_limits<float>::max();\n\n        for (int i = 0; i < data.getSize(); ++i) {\n            for (int j = 0; j < data.getDim(); ++j) {\n                if (data[i][j] > max) max = data[i][j];\n                if (data[i][j] < min) min = data[i][j];\n            }\n        }\n\n        Index::Parameter param;\n\n        // Setup the parameters.  Note that L is not provided here.\n        param.range = H;\n        param.repeat = M;\n        param.min = min;\n        param.max = max;\n        param.dim = data.getDim();\n        DefaultRng rng;\n\n        index.init(param, rng, L);\n        // The accessor.\n\n        // Initialize the index structure.  Note L is passed here.\n        cout << \"CONSTRUCTING INDEX...\" << endl;\n\n        timer.restart();\n        {\n            boost::progress_display progress(data.getSize());\n            for (int i = 0; i < data.getSize(); ++i)\n            {\n                // Insert an item to the hash table.\n                // Note that only the key is passed in here.\n                // MPLSH will get the feature from the accessor.\n                index.insert(i, data[i]);\n                ++progress;\n            }\n        }\n        cout << boost::format(\"CONSTRUCTION TIME: %1%s.\") % timer.elapsed() << endl;\n\n        if (use_index) {\n            timer.restart();\n            cout << \"SAVING INDEX...\" << endl;\n            {\n                ofstream os(index_file.c_str(), ios_base::binary);\n                os.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n                index.save(os);\n                BOOST_VERIFY(os);\n            }\n            cout << boost::format(\"SAVING TIME: %1%s\") % timer.elapsed() << endl;\n        }\n    }\n\n    if (do_benchmark) {\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            for (unsigned j = 0; j < K; ++j)\n            {\n                assert(bench.getAnswer(i)[j].key < data.getSize());\n            }\n        }\n\n        cout << \"RUNNING QUERIES...\" << endl;\n\n        Stat recall;\n        Stat cost;\n\n        timer.restart();\n        {\n            TopkScanner<FloatMatrix::Accessor, metric::l1<float> > query(accessor, l1, K, R);\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                query.reset(data[bench.getQuery(i)]);\n                index.query(data[bench.getQuery(i)], query);\n                recall << bench.getAnswer(i).recall(query.topk());\n                cost << double(query.cnt())/double(data.getSize());\n                ++progress;\n            }\n        }\n        cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n\n        cout << \"[RECALL] \" << recall.getAvg() << \" +/- \" << recall.getStd() << endl;\n        cout << \"[COST] \" << cost.getAvg() << \" +/- \" << cost.getStd() << endl;\n\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/mplsh-predict.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include <boost/program_options.hpp>\n#include <lshkit.h>\n\n/**\n  * \\file mplsh-predict.cpp\n  * \\brief Predict MPLSH performance.\n  *\n  * This program predicts MPLSH performance based on the statistical data\n  * gathered by fitdata and the MPLSH parameters.  It extrapolates\n  * the performance to a dataset of N points.\n  *\n  * Either -K or -r, but not both should be used.\n  *\n\\verbatim\nAllowed options:\n  -h [ --help ]           produce help message.\n  -T [ -- ] arg (=1)\n  -L [ -- ] arg (=1)\n  -M [ -- ] arg (=1)\n  -W [ -- ] arg (=1)\n  -K [ --topk ] arg (=50)\n  -r [ --radius ] arg     radius\n  -N [ --size ] arg       size of dataset\n  -P [ --param ] arg      data parameter file\n\\endverbatim\n  */\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\nint main (int argc, char *argv[])\n{\n    double w;\n    unsigned N, K, T, L, M;\n    double R;\n    string data_param;\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",T\", po::value<unsigned>(&T)->default_value(1), \"\")\n        (\",L\", po::value<unsigned>(&L)->default_value(1), \"\")\n        (\",M\", po::value<unsigned>(&M)->default_value(1), \"\")\n        (\",W\", po::value<double>(&w)->default_value(1), \"\")\n        (\"topk,K\", po::value<unsigned>(&K)->default_value(50), \"\")\n        (\"radius,r\", po::value<double>(&R)->default_value(1.0), \"\")\n        (\"size,N\", po::value<unsigned>(&N), \"size of dataset\")\n        (\"param,P\", po::value<string>(&data_param), \"data parameter file\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"param\") < 1) || \n            (vm.count(\"topk\") < 1) || (vm.count(\"size\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    DataParam param(data_param);\n    param.scale(w * w);\n\n    MultiProbeLshDataModel model(param, N, K);\n    model.setT(T);\n    model.setL(L);\n    model.setM(M);\n    model.setW(1.0);\n\n    double recall = vm.count(\"radius\") > 0 ? model.recall(R) : model.avgRecall();\n\n    cout << recall << '\\t' << model.cost() << endl;\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/mplsh-run.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\n/**\n  * \\file mplsh-run.cpp\n  * \\brief Example of using MPLSH.\n  *\n  * This program is an example of using MPLSH index.\n  *\n  * The program reconstruct the LSH index by default.  You can give the\n  * --index option to make the program save the LSH index.  The next\n  * time you run the program with the same --index option, the program\n  * will try to load the previously saved index.  When a saved index is\n  * used, you need to make sure that the dataset and other parameters match\n  * the previous run.  However, the benchmark file, Q and K can be different.\n  *\n\\verbatim\nAllowed options:\n  -h [ --help ]                   produce help message.\n  -W [ -- ] arg (=1)\n  -M [ -- ] arg (=1)\n  -T [ -- ] arg (=1)              # probes\n  -L [ -- ] arg (=1)              # hash tables\n  -Q [ -- ] arg (=100)            # queries\n  -K [ -- ] arg (=50)             # nearest neighbor to retrieve\n  -R [ -- ] arg (=3.40282347e+38) R-NN distance range\n  --recall arg                    desired recall\n  -D [ --data ] arg               data file\n  -B [ --benchmark ] arg          benchmark file\n  --index arg                     index file\n  -H [ -- ] arg (=1017881)        hash table size, use the default value.\n\\endverbatim\n  */\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\n/*\n    You must provide an access class to query the MPLSH.\n    MPLSH only saves keys (pointers to the real feature vectors) in the\n    hash tables and it will rely on the accessor class to retrieve\n    the feature vector.\n\n    An accessor must provide three methods:\n\n        bool mark (unsigned key);\n\n        mark that key has been accessed.  If key has already been marked, return false,\n        otherwise return true.  MPLSH will use this to avoid scanning the data more than\n        one time per query.\n\n        void reset ();\n\n        to clear all the marks.\n        \n        const float *operator () (unsigned key);\n\n        given a key, return the pointer to a feature vector.\n\n    The MatrixAccessor class is used to access feature vectors stored in a Matrix.\n*/\n\n/* This class has been merged to include/lshkit/matrix.h */\n/*\nclass MatrixAccessor\n{\n    const Matrix<float> &matrix_;\n    boost::dynamic_bitset<> flags_;\npublic:\n    typedef unsigned Key;\n    MatrixAccessor(const Matrix<float> &matrix)\n        : matrix_(matrix), flags_(matrix.getSize()) {}\n\n    MatrixAccessor(const MatrixAccessor &accessor)\n        : matrix_(accessor.matrix_), flags_(matrix_.getSize()) {}\n\n    void reset ()\n    {\n        flags_.reset();\n    }\n\n    bool mark (unsigned key)\n    {\n        if (flags_[key]) return false;\n        flags_.set(key);\n        return true;\n    }\n\n    const float *operator () (unsigned key)\n    {\n        return matrix_[key];\n    }\n};\n*/\n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string benchmark;\n    string index_file;\n\n    float W, R, desired_recall = 1.0;\n    unsigned M, L, H;\n    unsigned Q, K, T;\n    bool do_recall = false;\n    bool do_benchmark = true;\n    bool use_index = false; // load the index from a file\n\n    boost::timer timer;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",W\", po::value<float>(&W)->default_value(1.0), \"\")\n        (\",M\", po::value<unsigned>(&M)->default_value(1), \"\")\n        (\",T\", po::value<unsigned>(&T)->default_value(1), \"# probes\")\n        (\",L\", po::value<unsigned>(&L)->default_value(1), \"# hash tables\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(100), \"# queries\")\n        (\",K\", po::value<unsigned>(&K)->default_value(0), \"# nearest neighbor to retrieve\")\n        (\"radius,R\", po::value<float>(&R)->default_value(numeric_limits<float>::max()), \"R-NN distance range (L2)\")\n        (\"recall\", po::value<float>(&desired_recall), \"desired recall\")\n        (\"data,D\", po::value<string>(&data_file), \"data file\")\n        (\"benchmark,B\", po::value<string>(&benchmark), \"benchmark file\")\n        (\"index\", po::value<string>(&index_file), \"index file\")\n        (\",H\", po::value<unsigned>(&H)->default_value(1017881), \"hash table size, use the default value.\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if (vm.count(\"radius\") >= 1) {\n        R *= R; // we use L2sqr in the program.\n    }\n\n    if (vm.count(\"recall\") >= 1)\n    {\n        do_recall = true;\n        if (K == 0) {\n            cerr << \"Automatic probing does not support R-NN query.\" << endl;\n        }\n    }\n\n    if ((Q == 0) || (vm.count(\"benchmark\") == 0)) {\n        do_benchmark = false;\n    }\n\n    if (vm.count(\"index\") == 1) {\n        use_index = true;\n    }\n\n    cout << \"LOADING DATA...\" << endl;\n    timer.restart();\n    FloatMatrix data(data_file);\n    cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n\n    typedef MultiProbeLshIndex<unsigned> Index;\n\n    FloatMatrix::Accessor accessor(data);\n    Index index;\n\n    // try loading index\n    bool index_loaded = false;\n\n    if (use_index) {\n        ifstream is(index_file.c_str(), ios_base::binary);\n        if (is) {\n            is.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            cout << \"LOADING INDEX...\" << endl;\n            timer.restart();\n            index.load(is);\n            BOOST_VERIFY(is);\n            cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n            index_loaded = true;\n        }\n    }\n\n    if (!index_loaded) {\n        // We define a short name for the MPLSH index.\n        Index::Parameter param;\n\n        // Setup the parameters.  Note that L is not provided here.\n        param.W = W;\n        param.range = H; // See H in the program parameters.  You can just use the default value.\n        param.repeat = M;\n        param.dim = data.getDim();\n        DefaultRng rng;\n\n        index.init(param, rng, L);\n        // The accessor.\n\n        // Initialize the index structure.  Note L is passed here.\n        cout << \"CONSTRUCTING INDEX...\" << endl;\n\n        timer.restart();\n        {\n            boost::progress_display progress(data.getSize());\n            for (int i = 0; i < data.getSize(); ++i)\n            {\n                // Insert an item to the hash table.\n                // Note that only the key is passed in here.\n                // MPLSH will get the feature from the accessor.\n                index.insert(i, data[i]);\n                ++progress;\n            }\n        }\n        cout << boost::format(\"CONSTRUCTION TIME: %1%s.\") % timer.elapsed() << endl;\n\n        if (use_index) {\n            timer.restart();\n            cout << \"SAVING INDEX...\" << endl;\n            {\n                ofstream os(index_file.c_str(), ios_base::binary);\n                os.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n                index.save(os);\n            }\n            cout << boost::format(\"SAVING TIME: %1%s\") % timer.elapsed() << endl;\n        }\n    }\n\n    if (do_benchmark) {\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            for (unsigned j = 0; j < K; ++j)\n            {\n                assert(bench.getAnswer(i)[j].key < data.getSize());\n            }\n        }\n\n        cout << \"RUNNING QUERIES...\" << endl;\n\n        Stat recall;\n        Stat cost;\n        metric::l2sqr<float> l2sqr(data.getDim());\n        TopkScanner<FloatMatrix::Accessor, metric::l2sqr<float> > query(accessor, l2sqr, K, R);\n        vector<Topk<unsigned> > topks(Q);\n\n        timer.restart();\n        if (do_recall)\n            // Specify the required recall\n            // and let MPLSH to guess how many bins to probe.\n        {\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                // Query for one point.\n                query.reset(data[bench.getQuery(i)]);\n                index.query_recall(data[bench.getQuery(i)], desired_recall, query);\n                cost << double(query.cnt())/double(data.getSize());\n                topks[i].swap(query.topk());\n                ++progress;\n            }\n        }\n        else\n            // specify how many bins to probe.\n        {\n            boost::progress_display progress(Q);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                query.reset(data[bench.getQuery(i)]);\n                index.query(data[bench.getQuery(i)], T, query);\n                cost << double(query.cnt())/double(data.getSize());\n                topks[i].swap(query.topk());\n                ++progress;\n            }\n        }\n\n        for (unsigned i = 0; i < Q; ++i) {\n            recall << bench.getAnswer(i).recall(topks[i]);\n        }\n\n        cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n\n        cout << \"[RECALL] \" << recall.getAvg() << \" +/- \" << recall.getStd() << endl;\n        cout << \"[COST] \" << cost.getAvg() << \" +/- \" << cost.getStd() << endl;\n\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/mplsh-tune.cpp",
    "content": "/*\n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n\n    This file is part of LSHKIT.\n\n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file mplsh-tune.cpp\n * \\brief Automatic parameter tuning for MPLSH.\n *\n * Assume you have a sample datafile sample.data.  You need to take the following two steps for parameter tuning:\n * \\section tune_1 1. Create a model of data distribution.\n *\n * Use the following command\n *\n \\verbatim\n fitdata -D sample.data\n \\endverbatim\n *\n * The following options are acceptable:\n \\verbatim\n Allowed options:\n    -h [ --help ]            produce help message.\n    -N [ -- ] arg (=0)     # of points to use.  if N = 0, then the whole sample dataset is used.\n    -P [ -- ] arg (=50000) # pairs of points to sample\n    -Q [ -- ] arg (=1000)  # queries to sample\n    -K [ -- ] arg (=100)   Top K\n    -F [ -- ] arg (=10)\n    -D [ --data ] arg      data file\n  \\endverbatim\n *\n * For example, we use the following command to generate statistics from audio.data:\n *\n \\verbatim\n fitdata -D audio.data\n \\endverbatim\n *\n * We get the following output\n *\n  \\verbatim\n  0%   10   20   30   40   50   60   70   80   90   100%\n  |----|----|----|----|----|----|----|----|----|----|\n  ***************************************************\n  3.28031 2.90649\n  0.831193        -0.160539       0.150609\n  0.825921        -0.186676       0.177095\n  \\endverbatim\n *\n * Cut and paste the last three lines into a file named audio.param.\n *\n * \\section tune_2 2. Use mplsh-tune to tune parameters.\n *\n * There are four parameters in MPLSH: L, T, M, W.  You'll have to choose L and\n * T and let mplsh-tune to find the optimal M and W.   For example, we use the\n * following command to tune M and W for the audio dataset.\n *\n * \\verbatim\n mplsh-tune -P audio.param -N 54387 -L 8 -T 20 -R 0.8 -K 50\n\n  -P is the parameter file we generated in the 1st step;\n  -N is the whole dataset size.  Note that in the first step we only use a subset of the data to generate the model.\n  -L # hash tables to use.\n  -T # of bins probed in each hash table\n  -R required recall.\n  -r radius\n  -K K-NNs to find.\n \\endverbatim\n *\n * mplsh-tune will output best W and M that will meet the required recall.  For\n * the audio data, we get the following output:\n *\n \\verbatim\n L = 8   T = 20  M = 20  W = 4.32        recall = 0.805276       cost = 0.0968405\n \\endverbatim\n *\n * We can then run the benchmark and see how close is the prediction to the real number:\n *\n \\verbatim\n mplsh-run -D audio.data -B audio.query -L 8 -T 20 -W 4.32 -M 20 -Q 100 -K 50\n \\endverbatim\n *\n \\verbatim\n Loading data...done.\n Loading benchmark...done.\n Initializing index...\n done.\n Populating index...\n\n 0%   10   20   30   40   50   60   70   80   90   100%\n |----|----|----|----|----|----|----|----|----|----|\n ***************************************************\n CREATE TIME: 3.19s\n Running queries...\n\n 0%   10   20   30   40   50   60   70   80   90   100%\n |----|----|----|----|----|----|----|----|----|----|\n ***************************************************\n QUERY TIME: 0.57s\n [RECALL] 0.8192 +/- 0.234635\n [COST] 0.115853 +/- 0.0980032\n\\endverbatim\n *\n * (Note that the audio dataset is a pretty hard one.)\n *\n * \\section tune_LT How to choose L and T?\n *\n * L is the number of hash tables maintained in the memory and generally larger\n * L results in better performance (smaller cost to reach certain recall).\n * Hash tables only stores pointers to the feature vectors.  So on a 64-bit\n * machine, N points will take 8N bytes plus some overhead.  For our audio\n * dataset, where there are about 55K points, one hash table takes about 500KB\n * of memory and 8 hash tables will take 4MB.\n *\n * T is the number of buckets to probe in each hash table.  A number from 10 ~\n * 100 would be fine.  Larger T results in lower cost.  Yes, more buckets are\n * probed in each hash table, but that would allow us to make each hash bucket\n * smaller, and the overall effect is less points are scanned to reach the\n * required recall.  However, our model doesn't consider the cost of generating\n * the probe sequence and when T is very large, that cost can be significant.\n * So in practice T should not really be much larger than 100.\n *\n *\n */\n#include <boost/program_options.hpp>\n#include <boost/format.hpp>\n#include <lshkit.h>\n#include <lshkit/tune.h>\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options;\n\n/*\nstatic const int MIN_L = 1;\nstatic const int MAX_L = 20;\n\nstatic const int MIN_T = 1;\nstatic const int MAX_T = Probe::MAX_T;\n\nstatic const int MIN_M = 1;\nstatic const int MAX_M = Probe::MAX_M;\n\nstatic const double MIN_W = 0.01;\nstatic const double MAX_W = 10;\nstatic const double NUM_W = 400;\nstatic const double DELTA_W = (MAX_W - MIN_W) / NUM_W;\n\n// L, T, M, W\ntune::Interval intervals[]= {{MIN_L, MAX_L + 1},\n                            {MIN_T, MAX_T + 1},\n                            {0, MAX_M - MIN_M + 1},\n                            {0, NUM_W + 1}};\n\ndouble target_recall;\n\nMultiProbeLshDataModel *model;\ndouble R;\n\ndouble recall_K (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->avgRecall();\n}\n\ndouble recall_R (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->recall(R);\n}\n\ndouble cost (const tune::Input &x) {\n    model->setL(x[0]);\n    model->setT(x[1]);\n    model->setM(MAX_M - x[2]);\n    model->setW(MIN_W + DELTA_W * x[3]);\n    return model->cost();\n}\n\nbool constraint_K (const tune::Input &x) {\n    return recall_K(x) > target_recall;\n}\n\nbool constraint_R (const tune::Input &x) {\n    return recall_R(x) > target_recall;\n}\n*/\n\nint main (int argc, char *argv[])\n{\n    // restore initial values\n    intervals[0].begin = MIN_L;  intervals[0].end = MAX_L + 1;\n    intervals[1].begin = MIN_T;  intervals[1].end = MAX_T + 1;\n    intervals[2].begin = 0;      intervals[2].end = MAX_M - MIN_M + 1;\n    intervals[3].begin = 0;      intervals[3].end = NUM_W + 1;\n\n    target_recall = 0.0;\n    model = NULL;\n    R = 0.0;\n\n    int T, L, M;\n    double W;\n    unsigned N, K;\n    bool do_K = true;\n    string data_param;\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",T\", po::value<int>(&T)->default_value(-1), \"\")\n        (\",L\", po::value<int>(&L)->default_value(-1), \"\")\n        (\",M\", po::value<int>(&M)->default_value(-1), \"set to -1 for tuning.\")\n        (\",W\", po::value<double>(&W)->default_value(-1), \"set to -1 for tuning.\")\n        (\"size,N\", po::value<unsigned>(&N), \"dataset size.\")\n        (\"param,P\", po::value<string>(&data_param), \"data parameter file.\")\n        (\"recall,R\", po::value<double>(&target_recall)->default_value(0.9), \"desired recall.\")\n        (\"topk,K\", po::value<unsigned>(&K)->default_value(20), \"\")\n        (\"radius,r\", po::value<double>(&R), \"\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm);\n\n    if (vm.count(\"help\") || (vm.count(\"param\") < 1) || (vm.count(\"size\") < 1) || T < 1 || L < 1)\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if (vm.count(\"radius\")) {\n        do_K = false;\n    }\n\n    if (L <= 0 || T <= 0) {\n        cout << \"You need to specify L and T.\" << endl;\n        return 0;\n    }\n\n    if (L > 0) {\n        intervals[0].begin = L;\n        intervals[0].end = L + 1;\n    }\n\n    if (T > 0) {\n        intervals[1].begin = T;\n        intervals[1].end = T + 1;\n    }\n\n    if (M > 0) {\n        intervals[2].begin = MAX_M - M;\n        intervals[2].end = MAX_M - M + 1;\n    }\n\n    if (W > 0) {\n        intervals[3].begin = (W - MIN_W) / DELTA_W;\n        intervals[3].end = intervals[3].begin + 1;\n    }\n\n    DataParam param(data_param);\n    double scale = param.scale();\n\n    MultiProbeLshDataModel local_model(param, N, K);\n    model = &local_model;\n\n\n    int begin_M = intervals[2].begin;\n    int end_M = intervals[2].end;\n\n    for (int m = begin_M; m < end_M; ++m) {\n\n        intervals[2].begin = m;\n        intervals[2].end = m + 1;\n\n    tune::Range range(intervals, intervals + sizeof intervals /sizeof intervals[0]);\n    tune::Input input;\n    bool ok = do_K ? tune::Tune(range, constraint_K, &input)\n                   : tune::Tune(range, constraint_R, &input);\n\n    if (ok) {\n        cout << boost::format(\"L = %d\\tT = %d\\tM = %d\\tW = %g\\trecall = %g\\tcost = %g\")\n            % input[0] % input[1] % (MAX_M - input[2]) % ((MIN_W + DELTA_W * input[3]) * sqrt(scale))\n            % (do_K ? recall_K(input) : recall_R(input)) % cost(input) << endl;\n    } else {\n        cout << \"Failed.\" << endl;\n    }\n\n    }\n\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/run-spectral.cpp",
    "content": "#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\n\nint main (int argc, char *argv[])\n{\n    FloatMatrix data(argv[1]);\n    SpectralHash hash;\n    {\n        ifstream is(argv[2], ios::binary);\n        hash.serialize(is, 0);\n    }\n\n    for (int i = 0; i < data.getSize(); ++i) {\n        cout << hash(data[i]) << endl;\n    }\n\n    return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/scan.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file scan.cpp\n * \\brief Linear scan dataset and construct benchmark.\n *\n * This program randomly picks Q points from a dataset as queries, and\n * then linear-scan the database to find K-NN/R-NN for each query to produce\n * a benchmark file.  For each query, the query point itself is excluded\n * from the K-NN/R-NN list.\n *\n * You can specify both K and R and the prorgram will search for the K\n * points closest to queries which are within distance range of R.\n * If K = 0, then all points within distance range of R are returned.\n * The default value of R is the maximal value of float.\n *\n\\verbatim\nAllowed options:\n  -h [ --help ]          produce help message.\n  -Q [ -- ] arg (=1)     number of queries to sample.\n  -K [ -- ] arg (=1)     number of nearest neighbors.\n  --metric arg (=2)      1: L1; 2: L2\n  -D [ --data ] arg      dataset path\n  -B [ --benchmark ] arg output benchmark file path\n\\endverbatim\n *\n */\nconst char *help = \"This program searches for K-NNs by linear scan and generate a benchmark file.\";\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string query_file;\n\n    unsigned K, Q, metric, seed;\n    float R;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",Q\", po::value<unsigned>(&Q)->default_value(1), \"number of queries to sample.\")\n        (\",K\", po::value<unsigned>(&K)->default_value(0), \"number of nearest neighbors.\")\n        (\",R\", po::value<float>(&R)->default_value(numeric_limits<float>::max()), \"distance range to search for\")\n        (\"seed\", po::value<unsigned>(&seed)->default_value(0), \"random number seed, 0 to use default.\")\n        (\"metric\", po::value<unsigned>(&metric)->default_value(2), \"1: L1; 2: L2\")\n        (\"data,D\", po::value<string>(&data_file), \"dataset path\")\n        (\"benchmark,B\", po::value<string>(&query_file), \"output benchmark file path\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1) || (vm.count(\"benchmark\") < 1))\n    {\n        cout << help << endl;\n        cout << desc;\n        return 0;\n    }\n\n    Matrix<float> data(data_file);\n\n    Benchmark<unsigned> bench;\n    bench.init(Q, data.getSize(), seed);\n    boost::timer timer;\n\n    timer.restart();\n    if (metric == 1) {\n\n        metric::l1<float> l1(data.getDim());\n\n        boost::progress_display progress(Q);\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            int q = static_cast<int>(bench.getQuery(i));\n            Topk<unsigned> &topk = bench.getAnswer(i);\n            topk.reset(K, R);\n            for (int j = 0; j < data.getSize(); ++j)\n            {\n                if (q == j) continue;\n                topk << Topk<unsigned>::Element(j, l1(data[q],\n                                        data[j]));\n            }\n            ++progress;\n        }\n    }\n    else if (metric == 2) {\n\n        metric::l2<float> l2(data.getDim());\n\n        boost::progress_display progress(Q);\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            int q = static_cast<int>(bench.getQuery(i));\n            Topk<unsigned> &topk = bench.getAnswer(i);\n            topk.reset(K, R);\n            for (int j = 0; j < data.getSize(); ++j)\n            {\n                if (q == j) continue;\n                topk << Topk<unsigned>::Element(j, l2(data[q],\n                                        data[j]));\n            }\n            ++progress;\n        }\n    }\n    else {\n        cout << \"METRIC NOT SUPPORTED.\" << endl;\n    }\n\n    cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n    bench.save(query_file);\n\n    //timer.tuck(\"QUERY\");\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/sketch-run.cpp",
    "content": "/* \n    Copyright (C) 2008 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n  * \\file sketch-run.cpp\n  * \\brief Example of sketch construction with Gaussian LSH.\n  * \n  * This program uses sketch filtering to accelerate K-NN search.\n  * The idea is to first search against a dataset of sketches and keep the\n  * top C*K points as candidates.  The candidates are than ranked using\n  * the raw feature vectors.  The sketch database can be viewed as a index.\n  * \n  * In this program, we use 2-stable LSH based sketch.  Each sketch is a bit-vector\n  * of M bits, and each bit is produced by a independent hash function from the\n  * family DeltaLSB<GaussianLsh>.\n  *\n  * The program reconstruct the sketches by default.  You can give the\n  * --index option to make the program save the sketches.  The next\n  * time you run the program with the same --index option, the program\n  * will try to load the previously saved sketches.  When a saved sketch database is\n  * used, you need to make sure that the dataset and other parameters match\n  * the previous run.  However, the benchmark file, Q and K can be different.\n\\verbatim\nAllowed options:\n  -h [ --help ]          produce help message.\n  -W [ -- ] arg (=1)\n  -M [ -- ] arg (=1)     skech size / byte\n  -C [ -- ] arg (=10)    # candidates = C x K\n  -Q [ -- ] arg (=100)   # queries to use\n  -K [ -- ] arg (=50)    K-NNs retrieved\n  -D [ --data ] arg      data file\n  -B [ --benchmark ] arg benchmark file\n  --index arg            sketch file\n  --asym                 Asymmetric distance estimation\n\\endverbatim\n  */\n\n#include <boost/program_options.hpp>\n#include <boost/progress.hpp>\n#include <boost/format.hpp>\n#include <boost/timer.hpp>\n#include <lshkit.h>\n\nusing namespace std;\nusing namespace lshkit;\nnamespace po = boost::program_options; \n\nint main (int argc, char *argv[])\n{\n    string data_file;\n    string index_file;\n    string benchmark;\n\n    float W, R;\n    unsigned M;\n    unsigned Q, K, C;\n    bool do_benchmark = true;\n    bool use_index = false; // load the index from a file\n    bool do_asym = false;\n\n    boost::timer timer;\n\n    po::options_description desc(\"Allowed options\");\n    desc.add_options()\n        (\"help,h\", \"produce help message.\")\n        (\",W\", po::value(&W)->default_value(1.0), \"\")\n        (\",M\", po::value(&M)->default_value(1), \"skech size / byte\")\n        (\",C\", po::value(&C)->default_value(10), \"# candidates = C x K\")\n        (\",Q\", po::value(&Q)->default_value(100), \"# queries to use\")\n        (\",K\", po::value(&K)->default_value(50), \"K-NNs retrieved\")\n        (\",R\", po::value(&R)->default_value(numeric_limits<float>::max()), \"R-NN distnace range\")\n        (\"data,D\", po::value(&data_file), \"data file\")\n        (\"benchmark,B\", po::value(&benchmark), \"benchmark file\")\n        (\"index\", po::value(&index_file), \"sketch file\")\n        (\"asym\", \"Asymmetric distance estimation\")\n        ;\n\n    po::variables_map vm;\n    po::store(po::parse_command_line(argc, argv, desc), vm);\n    po::notify(vm); \n\n    if (vm.count(\"help\") || (vm.count(\"data\") < 1))\n    {\n        cout << desc;\n        return 0;\n    }\n\n    if ((Q == 0) || (vm.count(\"benchmark\") == 0)) {\n        do_benchmark = false;\n    }\n\n    if (vm.count(\"asym\") == 1) {\n        do_asym = true;\n    }\n\n    if (vm.count(\"index\") == 1) {\n        use_index = true;\n    }\n\n    cout << \"LOADING DATA...\" << endl;\n    timer.restart();\n    FloatMatrix data(data_file);\n    cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n\n    typedef Sketch<DeltaLSB<GaussianLsh> > MySketch;\n\n    MySketch sketcher;\n    Matrix<unsigned char> index;\n\n    bool index_loaded = false;\n\n    if (use_index) {\n        ifstream is(index_file.c_str(), ios_base::binary);\n        if (is) {\n            is.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n            cout << \"LOADING INDEX...\" << endl;\n            timer.restart();\n            sketcher.load(is);\n            index.load(is);\n            BOOST_VERIFY(is);\n            BOOST_VERIFY(M <= sketcher.getChunks());\n            cout << boost::format(\"LOAD TIME: %1%s.\") % timer.elapsed() << endl;\n            index_loaded = true;\n        }\n    }\n\n    if (!index_loaded) {\n\n        // We define a short name for the MPLSH index.\n        MySketch::Parameter param;\n\n        // Setup the parameters.  Note that L is not provided here.\n        param.W = W;\n        param.dim = data.getDim();\n        DefaultRng rng;\n\n        sketcher.reset(M, param, rng);\n        // The accessor.\n\n        // Initialize the index structure.  Note L is passed here.\n        cout << \"CONSTRUCTING INDEX...\" << endl;\n\n        index.reset(M, data.getSize());\n\n        // CONSTRUCT SKETCHES FOR DATABASE\n        timer.restart();\n        {\n            boost::progress_display progress(data.getSize());\n            for (int i = 0; i < data.getSize(); ++i)\n            {\n                sketcher.apply(data[i], index[i]);\n                ++progress;\n            }\n        }\n        cout << boost::format(\"CONSTRUCTION TIME: %1%s.\") % timer.elapsed() << endl;\n\n        if (use_index) {\n            timer.restart();\n            cout << \"SAVING INDEX...\" << endl;\n            {\n                ofstream os(index_file.c_str(), ios_base::binary);\n                os.exceptions(ios_base::eofbit | ios_base::failbit | ios_base::badbit);\n                sketcher.save(os);\n                index.save(os);\n            }\n            cout << boost::format(\"SAVING TIME: %1%s\") % timer.elapsed() << endl;\n        }\n    }\n\n    BOOST_VERIFY(index.getSize() == data.getSize());\n\n    if (do_benchmark) {\n\n        Benchmark<> bench;\n        cout << \"LOADING BENCHMARK...\" << endl;\n        bench.load(benchmark);\n        bench.resize(Q, K);\n        cout << \"DONE.\" << endl;\n\n        for (unsigned i = 0; i < Q; ++i)\n        {\n            for (unsigned j = 0; j < K; ++j)\n            {\n                assert(bench.getAnswer(i)[j].key < data.getSize());\n            }\n        }\n\n        cout << \"RUNNING QUERIES...\" << endl;\n\n        Stat recall;\n        Topk<unsigned> candidate;\n        Topk<unsigned> topk;\n        unsigned char *query_sketch = new unsigned char[sketcher.getChunks()];\n        boost::progress_display progress(Q);\n        metric::l2<float> l2(data.getDim());\n\n        timer.restart();\n        if (do_asym)\n        {\n            float *asym = new float[sketcher.getBits()];\n            WeightedHammingHelper<> helper(M);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                // Query for one point.\n                int query = static_cast<int>(bench.getQuery(i));\n                candidate.reset(C * K, R);\n                topk.reset(K, R);\n\n                sketcher.apply(data[query], query_sketch, asym);\n                helper.update(query_sketch, asym);\n                // Scan the sketches for candidates.\n                for (int j = 0; j < index.getSize(); ++j) {\n                    if (j == query) continue;\n                    Topk<unsigned>::Element e;\n                    e.key = j;\n                    e.dist = helper.distTo(index[j]);\n                    candidate << e;\n                }\n                // Rank with raw feature.\n                for (unsigned j = 0; j < candidate.size(); ++j) {\n                    Topk<unsigned>::Element e;\n                    e.key = candidate[j].key;\n                    e.dist = l2(data[query], data[e.key]);\n                    topk << e;\n                }\n                recall << bench.getAnswer(i).recall(topk);\n                ++progress;\n            }\n            delete []asym;\n        }\n        else\n        // symmetric sketch\n        {\n            metric::hamming<unsigned char> hamming(M);\n            for (unsigned i = 0; i < Q; ++i)\n            {\n                // Query for one point.\n                int query = static_cast<int>(bench.getQuery(i));\n                candidate.reset(C * K, R);\n                topk.reset(K, R);\n\n                sketcher.apply(data[query], query_sketch);\n                for (int j = 0; j < index.getSize(); ++j) {\n                    if (j == query) continue;\n                    Topk<unsigned>::Element e;\n                    e.key = j;\n                    e.dist = hamming(index[j], query_sketch);\n                    candidate << e;\n                }\n                for (unsigned j = 0; j < candidate.size(); ++j) {\n                    Topk<unsigned>::Element e;\n                    e.key = candidate[j].key;\n                    e.dist = l2(data[query], data[e.key]);\n                    topk << e;\n                }\n                recall << bench.getAnswer(i).recall(topk);\n                ++progress;\n            }\n        }\n\n        delete []query_sketch;\n        cout << boost::format(\"QUERY TIME: %1%s.\") % timer.elapsed() << endl;\n        cout << \"[RECALL] \" << recall.getAvg() << \" +/- \" << recall.getStd() << endl;\n\n    }\n\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/lshkit/tools/txt2bin.cpp",
    "content": "/* \n    Copyright (C) 2009 Wei Dong <wdong@princeton.edu>. All Rights Reserved.\n  \n    This file is part of LSHKIT.\n  \n    LSHKIT is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    LSHKIT is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with LSHKIT.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * \\file txt2bin.cpp\n * \\brief Convert a dataset file from text to binary.\n *\n * Usage: txt2bin <input> <output>\n *\n * Example input file:\n \\verbatim\n 1 0 1 2\n 2 3 4 5\n 0.5 0.4 0.6 0.1\n \\endverbatim\n *\n * Each row of the text file must contain the same number of columns.  Columns are\n * separated by single spaces or tabs.\n *\n */\n#include <cctype>\n#include <cassert>\n#include <iostream>\n#include <fstream>\n#include <string>\n#include <boost/foreach.hpp>\n#include <boost/format.hpp>\n\nusing namespace std;\nusing namespace boost;\n\nint main (int argc, char *argv[])\n{\n    unsigned size = sizeof(float), col, row, cnt;\n\n    if (argc < 3)\n    {\n        cout << format(\"usage:\\n\\t%1% <in> <out>\") % argv[0] << endl;\n        return 0;\n    }\n\n    col = row = cnt = 0;\n\n    ifstream is(argv[1]);\n    // determine dimension (# columns)\n    {\n        string line;\n        getline(is, line);\n        is.seekg(0, ios::beg);\n\n        bool is_blank = true;\n        BOOST_FOREACH(char c, line) {\n            if (isspace(c)) {\n                is_blank = true;\n            }\n            else {\n                if (is_blank) {\n                    col++;\n                }\n                is_blank = false;\n            }\n        }\n    }\n\n    ofstream os(argv[2], ios::binary);\n    os.seekp(sizeof(unsigned) * 3, ios::beg);\n    for (;;)\n    {\n        float f;\n        is >> f;\n        if (!is) break;\n        os.write((const char*)&f, sizeof(f));\n        cnt++;\n    }\n    row = cnt / col;\n    if (cnt % col != 0) throw runtime_error(\"FILE FORMAT ERROR\");\n    os.seekp(0, ios::beg);\n    os.write((const char *)&size, sizeof(unsigned));\n    os.write((const char *)&row, sizeof(unsigned));\n    os.write((const char *)&col, sizeof(unsigned));\n    return 0;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\ncstddef\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/detail/workaround.hpp\nboost/type_traits/alignment_of.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/alignment_of.hpp\nboost/type_traits/type_with_alignment.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/type_with_alignment.hpp\nboost/type_traits/is_pod.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/is_pod.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/mpl/eval_if.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/mpl/identity.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/bool_trait_undef.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nalgorithm\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/type_index.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/throw_exception.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nboost/atomic/atomic.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nboost/atomic/capabilities.hpp\n-\nboost/atomic/fences.hpp\n-\nboost/atomic/atomic_flag.hpp\n-\nboost/atomic/detail/atomic_template.hpp\n-\nboost/atomic/detail/operations.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nboost/atomic/capabilities.hpp\n-\nboost/atomic/detail/operations.hpp\n-\nboost/atomic/detail/atomic_flag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/platform.hpp\n-\nboost/atomic/detail/int_sizes.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nboost/assert.hpp\n-\nboost/memory_order.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/operations_lockfree.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\ncstddef\n-\nboost/cstdint.hpp\n-\nboost/assert.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/casts.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\ncstring\n-\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nboost/atomic/detail/config.hpp\n-\nlimits.h\n-\nboost/cstdint.hpp\n-\nwchar.h\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nboost/atomic/detail/config.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nboost/atomic/detail/operations_lockfree.hpp\n-\nboost/atomic/detail/ops_emulated.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/platform.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nboost/memory_order.hpp\n-\nboost/atomic/detail/config.hpp\n-\nboost/atomic/detail/storage_type.hpp\n-\nboost/atomic/detail/operations_fwd.hpp\n-\nboost/atomic/detail/lockpool.hpp\n-\nboost/atomic/capabilities.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\ncstring\n-\nboost/cstdint.hpp\n-\nboost/atomic/detail/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nboost/memory_order.hpp\n-\nboost/atomic/capabilities.hpp\n-\nboost/atomic/detail/operations.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nboost/config.hpp\n-\nboost/get_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nmemory\n-\ncstddef\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/mpl/bool.hpp\nboost/type_traits/has_nothrow_copy.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/type_traits/has_nothrow_copy.hpp\nboost/mpl/void.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/mpl/void.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nboost/dynamic_bitset/dynamic_bitset.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/dynamic_bitset/dynamic_bitset.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/config.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nassert.h\n-\nstring\n-\nstdexcept\n-\nalgorithm\n-\nvector\n-\nclimits\n-\nboost/dynamic_bitset/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/dynamic_bitset/config.hpp\nlocale\n-\niostream.h\n-\nctype.h\n-\nistream\n-\nostream\n-\nboost/dynamic_bitset_fwd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/dynamic_bitset_fwd.hpp\nboost/detail/dynamic_bitset.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/dynamic_bitset.hpp\nboost/detail/iterator.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/iterator.hpp\nboost/move/move.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/move/move.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/limits.hpp\nboost/pending/lowest_bit.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/pending/lowest_bit.hpp\nboost/static_assert.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/static_assert.hpp\nboost/utility/addressof.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/utility/addressof.hpp\nboost/detail/no_exceptions_support.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/detail/no_exceptions_support.hpp\nboost/throw_exception.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/boost/throw_exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\ncstddef\n-\nutility\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/noncopyable.hpp\n-\nboost/range/end.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/rend.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/reverse_iterator.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/foreach_fwd.hpp\n-\nnew\n-\nboost/aligned_storage.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nvector\n-\nstring\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nlocale\n-\nboost/format/detail/compat_workarounds.hpp\n-\ncctype\n-\nboost/format/format_fwd.hpp\n-\nboost/format/internals_fwd.hpp\n-\nboost/format/internals.hpp\n-\nboost/format/format_class.hpp\n-\nboost/format/exceptions.hpp\n-\nboost/format/format_implementation.hpp\n-\nboost/format/group.hpp\n-\nboost/format/feed_args.hpp\n-\nboost/format/parsing.hpp\n-\nboost/format/free_funcs.hpp\n-\nboost/format/detail/unset_macros.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nstring\n-\nboost/format/detail/compat_workarounds.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/assert.hpp\n-\nboost/format/alt_sstream_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nboost/format/detail/config_macros.hpp\n-\nstreambuf\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/format/detail/workarounds_gcc-2_95.hpp\n-\nboost/format/detail/workarounds_stlport.hpp\n-\nlocale\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nboost/format/group.hpp\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\niostream\n-\nstreambuf.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nstdexcept\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nboost/config.hpp\n-\nboost/assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/format/format_class.hpp\n-\nboost/format/group.hpp\n-\nboost/format/detail/msvc_disambiguater.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nvector\n-\nstring\n-\nboost/optional.hpp\n-\nboost/format/format_fwd.hpp\n-\nboost/format/internals_fwd.hpp\n-\nboost/format/internals.hpp\n-\nboost/format/alt_sstream.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nstring\n-\niosfwd\n-\nboost/format/detail/compat_workarounds.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nboost/config.hpp\n-\nboost/throw_exception.hpp\n-\nboost/assert.hpp\n-\nboost/format/format_class.hpp\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nboost/format/format_class.hpp\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nstring\n-\nboost/assert.hpp\n-\nboost/optional.hpp\n-\nboost/limits.hpp\n-\nboost/format/detail/compat_workarounds.hpp\n-\nboost/format/alt_sstream.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nboost/format/format_fwd.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nboost/format/format_class.hpp\n-\nboost/format/exceptions.hpp\n-\nboost/throw_exception.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nfunctional\n-\nboost/preprocessor/iterate.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function/detail/prologue.hpp\n-\nboost/function/function0.hpp\n-\nboost/function/function1.hpp\n-\nboost/function/function2.hpp\n-\nboost/function/function3.hpp\n-\nboost/function/function4.hpp\n-\nboost/function/function5.hpp\n-\nboost/function/function6.hpp\n-\nboost/function/function7.hpp\n-\nboost/function/function8.hpp\n-\nboost/function/function9.hpp\n-\nboost/function/function10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ncassert\n-\nalgorithm\n-\nboost/config/no_tr1/functional.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config.hpp\n-\nboost/function/function_base.hpp\n-\nboost/mem_fn.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nstdexcept\n-\nstring\n-\nmemory\n-\nnew\n-\nboost/config.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\nboost/integer.hpp\n-\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/has_trivial_destructor.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/composite_traits.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/ref.hpp\n-\nboost/mpl/if.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/utility/enable_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/utility/enable_if.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/mpl/bool.hpp\nboost/function_equal.hpp\n-\nboost/function/function_fwd.hpp\n-\ncstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nboost/function/detail/prologue.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nboost/move/utility_core.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/mpl/begin.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/mpl/end.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/mpl_iterator_category.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/prior.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/distance.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/struct/adapt_struct.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/preprocessor/comparison/equal.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/adapted/struct/detail/extension.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_base.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n-\nboost/fusion/adapted/struct/detail/at_impl.hpp\n-\nboost/fusion/adapted/struct/detail/is_view_impl.hpp\n-\nboost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n-\nboost/fusion/adapted/struct/detail/value_at_impl.hpp\n-\nboost/fusion/adapted/struct/detail/category_of_impl.hpp\n-\nboost/fusion/adapted/struct/detail/size_impl.hpp\n-\nboost/fusion/adapted/struct/detail/begin_impl.hpp\n-\nboost/fusion/adapted/struct/detail/end_impl.hpp\n-\nboost/fusion/adapted/struct/detail/value_of_impl.hpp\n-\nboost/fusion/adapted/struct/detail/deref_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nboost/preprocessor/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nboost/fusion/support/config.hpp\n-\nboost/config.hpp\n-\nboost/fusion/support/tag_of_fwd.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_auto.hpp\n-\nboost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/seq/for_each.hpp\n-\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/typeof/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nboost/config.hpp\n-\nboost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\nboost/preprocessor/variadic/to_seq.hpp\n-\nboost/preprocessor/seq/for_each.hpp\n-\nboost/preprocessor/seq/push_front.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/basic_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/basic_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/category_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/punctuation/paren.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/view/joint_view/joint_view.hpp\n-\nboost/fusion/view/single_view/single_view.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/view/joint_view/joint_view.hpp\n-\nboost/fusion/view/single_view/single_view.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/container/list/nil.hpp\n-\nboost/fusion/container/list/cons_iterator.hpp\n-\nboost/fusion/container/list/detail/begin_impl.hpp\n-\nboost/fusion/container/list/detail/end_impl.hpp\n-\nboost/fusion/container/list/detail/at_impl.hpp\n-\nboost/fusion/container/list/detail/value_at_impl.hpp\n-\nboost/fusion/container/list/detail/empty_impl.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/container/list/detail/deref_impl.hpp\n-\nboost/fusion/container/list/detail/next_impl.hpp\n-\nboost/fusion/container/list/detail/value_of_impl.hpp\n-\nboost/fusion/container/list/detail/equal_to_impl.hpp\n-\nboost/fusion/container/list/list_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/fusion/container/list/nil.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/and.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nboost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nboost/fusion/support/detail/pp_round.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/minus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/and.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nboost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nboost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nboost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nboost/fusion/container/vector/limits.hpp\n-\nboost/fusion/container/vector/vector10.hpp\n-\nboost/fusion/container/vector/vector20.hpp\n-\nboost/fusion/container/vector/vector30.hpp\n-\nboost/fusion/container/vector/vector40.hpp\n-\nboost/fusion/container/vector/vector50.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/pp_round.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/container/vector/vector_fwd.hpp\n-\nboost/fusion/container/vector/detail/vector_n_chooser.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/core/enable_if.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector.hpp\n-\nboost/fusion/container/vector/detail/vector_forward_ctor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector10_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/vector/vector10.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector20_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector20.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector20.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector30_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector30.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector30.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector40_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector40.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector40.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/vector50_fwd.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/vector/detail/at_impl.hpp\n-\nboost/fusion/container/vector/detail/value_at_impl.hpp\n-\nboost/fusion/container/vector/detail/begin_impl.hpp\n-\nboost/fusion/container/vector/detail/end_impl.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/vector50.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_shifted.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/container/vector/vector10.hpp\n-\nboost/fusion/container/vector/vector20.hpp\n-\nboost/fusion/container/vector/vector30.hpp\n-\nboost/fusion/container/vector/vector40.hpp\n-\nboost/fusion/container/vector/vector50.hpp\n-\nboost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/container/vector/detail/deref_impl.hpp\n-\nboost/fusion/container/vector/detail/value_of_impl.hpp\n-\nboost/fusion/container/vector/detail/next_impl.hpp\n-\nboost/fusion/container/vector/detail/prior_impl.hpp\n-\nboost/fusion/container/vector/detail/equal_to_impl.hpp\n-\nboost/fusion/container/vector/detail/distance_impl.hpp\n-\nboost/fusion/container/vector/detail/advance_impl.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/adapted/std_pair.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/advance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/iterator/iterator_facade.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/deref_data.hpp\n-\nboost/fusion/iterator/key_of.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\nboost/fusion/iterator/value_of_data.hpp\n-\nboost/fusion/iterator/detail/segmented_equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/fusion/support/is_iterator.hpp\n-\nboost/mpl/and.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/iterator/detail/advance.hpp\n-\nboost/fusion/iterator/detail/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/is_iterator.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/prior.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iterator_tags.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/segmented_iterator.hpp\n-\nboost/fusion/iterator/detail/segmented_next_impl.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/adapted/mpl/detail/begin_impl.hpp\n-\nboost/fusion/iterator/mpl/fusion_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/adapted/mpl/detail/end_impl.hpp\n-\nboost/fusion/iterator/mpl/fusion_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/comparison/equal_to.hpp\n-\nboost/fusion/sequence/comparison/greater.hpp\n-\nboost/fusion/sequence/comparison/greater_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\nboost/fusion/sequence/comparison/less_equal.hpp\n-\nboost/fusion/sequence/comparison/not_equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/support/as_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/detail/equal_to.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/greater.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/greater_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/detail/less.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/sequence/comparison/detail/less_equal.hpp\n-\nboost/fusion/sequence/comparison/less.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/comparison/enable_comparison.hpp\n-\nboost/fusion/sequence/comparison/detail/not_equal_to.hpp\n-\nboost/fusion/sequence/comparison/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n-\nboost/fusion/iterator/segmented_iterator.hpp\n-\nboost/fusion/view/iterator_range.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/empty.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n-\nboost/fusion/support/detail/segmented_fold_until_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n-\nboost/fusion/iterator/segmented_iterator.hpp\n-\nboost/fusion/container/list/cons.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/fold.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/size_t.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/mpl/begin.hpp\n-\nboost/fusion/mpl/end.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/empty_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/sequence/io/in.hpp\n-\nboost/fusion/sequence/io/out.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nboost/fusion/support/config.hpp\n-\nistream\n-\nboost/fusion/sequence/io/detail/manip.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nboost/fusion/support/config.hpp\n-\nboost/config.hpp\n-\nstring\n-\nvector\n-\ncctype\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nboost/fusion/support/config.hpp\n-\nostream\n-\nboost/fusion/sequence/io/detail/manip.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nboost/fusion/support/config.hpp\n-\nistream\n-\nboost/fusion/sequence/io/detail/in.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nboost/fusion/support/config.hpp\n-\nostream\n-\nboost/fusion/sequence/io/detail/out.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/mpl/or.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/category_of.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nboost/fusion/support/config.hpp\n-\nboost/ref.hpp\n-\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/is_sequence.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nboost/fusion/support/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comparison/less.hpp\n-\nboost/preprocessor/control/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/utility/result_of.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/void.hpp\n-\nboost/fusion/container/list/cons_fwd.hpp\n-\nboost/fusion/sequence/intrinsic_fwd.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/mpl/is_sequence.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/fusion/support/detail/is_view.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nboost/config.hpp\n-\nboost/fusion/support/config.hpp\n-\nboost/mpl/begin_end_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nboost/fusion/support/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/fusion/support/tag_of_fwd.hpp\n-\nboost/fusion/support/detail/is_mpl_sequence.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/tuple/make_tuple.hpp\n-\nboost/fusion/tuple/tuple_tie.hpp\n-\nboost/fusion/container/generation/ignore.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nboost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nboost/fusion/tuple/detail/preprocessed/tuple10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nboost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nboost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/tuple/tuple_fwd.hpp\n-\nboost/fusion/container/vector/vector.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/sequence/intrinsic/value_at.hpp\n-\nboost/fusion/sequence/intrinsic/at.hpp\n-\nboost/fusion/sequence/comparison.hpp\n-\nboost/fusion/sequence/io.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/config/no_tr1/utility.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple.hpp\n-\nboost/fusion/tuple/detail/tuple_expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/container/vector/limits.hpp\n-\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/fusion/tuple/tuple.hpp\n-\nboost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/view/iterator_range/iterator_range.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/fusion/support/tag_of.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/deref.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\nboost/fusion/algorithm/transformation/push_back.hpp\n-\nboost/fusion/algorithm/transformation/push_front.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/container/list/detail/reverse_cons.hpp\n-\nboost/fusion/iterator/detail/segment_sequence.hpp\n-\nboost/fusion/support/is_sequence.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/fusion/sequence/intrinsic/segments.hpp\n-\nboost/fusion/support/is_segmented.hpp\n-\nboost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/advance.hpp\n-\nboost/fusion/iterator/value_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/support/category_of.hpp\n-\nboost/fusion/iterator/distance.hpp\n-\nboost/fusion/iterator/mpl/convert_iterator.hpp\n-\nboost/fusion/view/iterator_range/detail/begin_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/end_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/at_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/size_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/value_at_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n-\nboost/fusion/view/iterator_range/detail/segments_impl.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/deref_data.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/adapt_deref_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/key_of.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/next.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/value_of_data.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/iterator/detail/adapt_value_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/view/joint_view/joint_view_fwd.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/is_view.hpp\n-\nboost/fusion/sequence/intrinsic/begin.hpp\n-\nboost/fusion/sequence/intrinsic/end.hpp\n-\nboost/fusion/sequence/intrinsic/size.hpp\n-\nboost/fusion/view/joint_view/joint_view_iterator.hpp\n-\nboost/fusion/view/joint_view/detail/begin_impl.hpp\n-\nboost/fusion/view/joint_view/detail/end_impl.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/inherit.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/iterator/equal_to.hpp\n-\nboost/fusion/iterator/mpl/convert_iterator.hpp\n-\nboost/fusion/adapted/mpl/mpl_iterator.hpp\n-\nboost/fusion/view/joint_view/detail/deref_impl.hpp\n-\nboost/fusion/view/joint_view/detail/next_impl.hpp\n-\nboost/fusion/view/joint_view/detail/value_of_impl.hpp\n-\nboost/fusion/view/joint_view/detail/deref_data_impl.hpp\n-\nboost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n-\nboost/fusion/view/joint_view/detail/key_of_impl.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/plus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/minus.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/next.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/fusion/sequence/intrinsic/value_at.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nboost/fusion/support/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/equal_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/detail/as_fusion_element.hpp\n-\nboost/fusion/support/sequence_base.hpp\n-\nboost/fusion/view/single_view/single_view_iterator.hpp\n-\nboost/fusion/view/single_view/detail/at_impl.hpp\n-\nboost/fusion/view/single_view/detail/begin_impl.hpp\n-\nboost/fusion/view/single_view/detail/end_impl.hpp\n-\nboost/fusion/view/single_view/detail/size_impl.hpp\n-\nboost/fusion/view/single_view/detail/value_at_impl.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nboost/fusion/support/config.hpp\n-\nboost/fusion/support/detail/access.hpp\n-\nboost/fusion/support/iterator_base.hpp\n-\nboost/fusion/view/single_view/detail/deref_impl.hpp\n-\nboost/fusion/view/single_view/detail/next_impl.hpp\n-\nboost/fusion/view/single_view/detail/prior_impl.hpp\n-\nboost/fusion/view/single_view/detail/advance_impl.hpp\n-\nboost/fusion/view/single_view/detail/distance_impl.hpp\n-\nboost/fusion/view/single_view/detail/equal_to_impl.hpp\n-\nboost/fusion/view/single_view/detail/value_of_impl.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nassert.h\n-\nclimits\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nboost/integer_fwd.hpp\n-\nboost/config.hpp\n-\nboost/integer.hpp\n-\nclimits\n-\ncstddef\n-\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nboost/integer_fwd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/boost/integer_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nboost/math/special_functions/trunc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nboost/math/tools/config.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/utility/declval.hpp\n-\nboost/math/constants/calculate_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nboost/math/distributions/fwd.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/distributions/detail/common_error_handling.hpp\n-\nboost/math/distributions/complement.hpp\n-\nutility\n-\nboost/math/distributions/detail/derived_accessors.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nboost/math/distributions/fwd.hpp\n-\nboost/math/special_functions/erf.hpp\n-\nboost/math/distributions/complement.hpp\n-\nboost/math/distributions/detail/common_error_handling.hpp\n-\nutility\n-\nboost/math/distributions/detail/derived_accessors.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nstdexcept\n-\niomanip\n-\nstring\n-\ncerrno\n-\nboost/config/no_tr1/complex.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nstdexcept\n-\nboost/math/tools/config.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/cstdint.hpp\n-\nboost/format.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/unchecked_bernoulli.hpp\n-\nboost/math/special_functions/detail/bernoulli_details.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nboost/config.hpp\n-\nboost/detail/lightweight_mutex.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/math/tools/toms748_solve.hpp\n-\natomic\n-\nboost/atomic.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nboost/math/tools/toms748_solve.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nboost/math/tools/tuple.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/tools/roots.hpp\n-\nboost/math/policies/error_handling.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nemmintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nboost/math/tools/big_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nlimits\n-\ncmath\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/constants/constants.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nboost/array.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/gamma.hpp\n-\nboost/math/tools/roots.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/special_functions/detail/erf_inv.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nboost/config/no_tr1/cmath.hpp\n-\nmath.h\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nboost/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/fraction.hpp\n-\nboost/math/tools/precision.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/constants/constants.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/trunc.hpp\n-\nboost/math/special_functions/powm1.hpp\n-\nboost/math/special_functions/sqrt1pm1.hpp\n-\nboost/math/special_functions/lanczos.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/math/special_functions/detail/igamma_large.hpp\n-\nboost/math/special_functions/detail/unchecked_factorial.hpp\n-\nboost/math/special_functions/detail/lgamma_small.hpp\n-\nboost/math/special_functions/bernoulli.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/assert.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/equal_to.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nalgorithm\n-\nboost/math/special_functions/detail/igamma_inverse.hpp\n-\nboost/math/special_functions/detail/gamma_inva.hpp\n-\nboost/math/special_functions/erf.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nboost/config.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/mpl/if.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/less_equal.hpp\n-\nlimits.h\n-\nboost/math/special_functions/detail/lanczos_sse2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nboost/config/no_tr1/cmath.hpp\n-\nmath.h\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/tools/series.hpp\n-\nboost/math/tools/rational.hpp\n-\nboost/math/tools/big_constant.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/expm1.hpp\n-\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/log1p.hpp\n-\nboost/math/special_functions/expm1.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nboost/math/tools/config.hpp\n-\nboost/lexical_cast.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nboost/config/no_tr1/cmath.hpp\n-\nboost/cstdint.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/if.hpp\n-\nboost/math/tools/precision.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nboost/limits.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/math/policies/policy.hpp\n-\nlimits.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nboost/array.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/mpl/int.hpp\n-\nboost/math/tools/detail/polynomial_horner1_2.hpp\n-\nboost/math/tools/detail/polynomial_horner1_3.hpp\n-\nboost/math/tools/detail/polynomial_horner1_4.hpp\n-\nboost/math/tools/detail/polynomial_horner1_5.hpp\n-\nboost/math/tools/detail/polynomial_horner1_6.hpp\n-\nboost/math/tools/detail/polynomial_horner1_7.hpp\n-\nboost/math/tools/detail/polynomial_horner1_8.hpp\n-\nboost/math/tools/detail/polynomial_horner1_9.hpp\n-\nboost/math/tools/detail/polynomial_horner1_10.hpp\n-\nboost/math/tools/detail/polynomial_horner1_11.hpp\n-\nboost/math/tools/detail/polynomial_horner1_12.hpp\n-\nboost/math/tools/detail/polynomial_horner1_13.hpp\n-\nboost/math/tools/detail/polynomial_horner1_14.hpp\n-\nboost/math/tools/detail/polynomial_horner1_15.hpp\n-\nboost/math/tools/detail/polynomial_horner1_16.hpp\n-\nboost/math/tools/detail/polynomial_horner1_17.hpp\n-\nboost/math/tools/detail/polynomial_horner1_18.hpp\n-\nboost/math/tools/detail/polynomial_horner1_19.hpp\n-\nboost/math/tools/detail/polynomial_horner1_20.hpp\n-\nboost/math/tools/detail/polynomial_horner2_2.hpp\n-\nboost/math/tools/detail/polynomial_horner2_3.hpp\n-\nboost/math/tools/detail/polynomial_horner2_4.hpp\n-\nboost/math/tools/detail/polynomial_horner2_5.hpp\n-\nboost/math/tools/detail/polynomial_horner2_6.hpp\n-\nboost/math/tools/detail/polynomial_horner2_7.hpp\n-\nboost/math/tools/detail/polynomial_horner2_8.hpp\n-\nboost/math/tools/detail/polynomial_horner2_9.hpp\n-\nboost/math/tools/detail/polynomial_horner2_10.hpp\n-\nboost/math/tools/detail/polynomial_horner2_11.hpp\n-\nboost/math/tools/detail/polynomial_horner2_12.hpp\n-\nboost/math/tools/detail/polynomial_horner2_13.hpp\n-\nboost/math/tools/detail/polynomial_horner2_14.hpp\n-\nboost/math/tools/detail/polynomial_horner2_15.hpp\n-\nboost/math/tools/detail/polynomial_horner2_16.hpp\n-\nboost/math/tools/detail/polynomial_horner2_17.hpp\n-\nboost/math/tools/detail/polynomial_horner2_18.hpp\n-\nboost/math/tools/detail/polynomial_horner2_19.hpp\n-\nboost/math/tools/detail/polynomial_horner2_20.hpp\n-\nboost/math/tools/detail/polynomial_horner3_2.hpp\n-\nboost/math/tools/detail/polynomial_horner3_3.hpp\n-\nboost/math/tools/detail/polynomial_horner3_4.hpp\n-\nboost/math/tools/detail/polynomial_horner3_5.hpp\n-\nboost/math/tools/detail/polynomial_horner3_6.hpp\n-\nboost/math/tools/detail/polynomial_horner3_7.hpp\n-\nboost/math/tools/detail/polynomial_horner3_8.hpp\n-\nboost/math/tools/detail/polynomial_horner3_9.hpp\n-\nboost/math/tools/detail/polynomial_horner3_10.hpp\n-\nboost/math/tools/detail/polynomial_horner3_11.hpp\n-\nboost/math/tools/detail/polynomial_horner3_12.hpp\n-\nboost/math/tools/detail/polynomial_horner3_13.hpp\n-\nboost/math/tools/detail/polynomial_horner3_14.hpp\n-\nboost/math/tools/detail/polynomial_horner3_15.hpp\n-\nboost/math/tools/detail/polynomial_horner3_16.hpp\n-\nboost/math/tools/detail/polynomial_horner3_17.hpp\n-\nboost/math/tools/detail/polynomial_horner3_18.hpp\n-\nboost/math/tools/detail/polynomial_horner3_19.hpp\n-\nboost/math/tools/detail/polynomial_horner3_20.hpp\n-\nboost/math/tools/detail/rational_horner1_2.hpp\n-\nboost/math/tools/detail/rational_horner1_3.hpp\n-\nboost/math/tools/detail/rational_horner1_4.hpp\n-\nboost/math/tools/detail/rational_horner1_5.hpp\n-\nboost/math/tools/detail/rational_horner1_6.hpp\n-\nboost/math/tools/detail/rational_horner1_7.hpp\n-\nboost/math/tools/detail/rational_horner1_8.hpp\n-\nboost/math/tools/detail/rational_horner1_9.hpp\n-\nboost/math/tools/detail/rational_horner1_10.hpp\n-\nboost/math/tools/detail/rational_horner1_11.hpp\n-\nboost/math/tools/detail/rational_horner1_12.hpp\n-\nboost/math/tools/detail/rational_horner1_13.hpp\n-\nboost/math/tools/detail/rational_horner1_14.hpp\n-\nboost/math/tools/detail/rational_horner1_15.hpp\n-\nboost/math/tools/detail/rational_horner1_16.hpp\n-\nboost/math/tools/detail/rational_horner1_17.hpp\n-\nboost/math/tools/detail/rational_horner1_18.hpp\n-\nboost/math/tools/detail/rational_horner1_19.hpp\n-\nboost/math/tools/detail/rational_horner1_20.hpp\n-\nboost/math/tools/detail/rational_horner2_2.hpp\n-\nboost/math/tools/detail/rational_horner2_3.hpp\n-\nboost/math/tools/detail/rational_horner2_4.hpp\n-\nboost/math/tools/detail/rational_horner2_5.hpp\n-\nboost/math/tools/detail/rational_horner2_6.hpp\n-\nboost/math/tools/detail/rational_horner2_7.hpp\n-\nboost/math/tools/detail/rational_horner2_8.hpp\n-\nboost/math/tools/detail/rational_horner2_9.hpp\n-\nboost/math/tools/detail/rational_horner2_10.hpp\n-\nboost/math/tools/detail/rational_horner2_11.hpp\n-\nboost/math/tools/detail/rational_horner2_12.hpp\n-\nboost/math/tools/detail/rational_horner2_13.hpp\n-\nboost/math/tools/detail/rational_horner2_14.hpp\n-\nboost/math/tools/detail/rational_horner2_15.hpp\n-\nboost/math/tools/detail/rational_horner2_16.hpp\n-\nboost/math/tools/detail/rational_horner2_17.hpp\n-\nboost/math/tools/detail/rational_horner2_18.hpp\n-\nboost/math/tools/detail/rational_horner2_19.hpp\n-\nboost/math/tools/detail/rational_horner2_20.hpp\n-\nboost/math/tools/detail/rational_horner3_2.hpp\n-\nboost/math/tools/detail/rational_horner3_3.hpp\n-\nboost/math/tools/detail/rational_horner3_4.hpp\n-\nboost/math/tools/detail/rational_horner3_5.hpp\n-\nboost/math/tools/detail/rational_horner3_6.hpp\n-\nboost/math/tools/detail/rational_horner3_7.hpp\n-\nboost/math/tools/detail/rational_horner3_8.hpp\n-\nboost/math/tools/detail/rational_horner3_9.hpp\n-\nboost/math/tools/detail/rational_horner3_10.hpp\n-\nboost/math/tools/detail/rational_horner3_11.hpp\n-\nboost/math/tools/detail/rational_horner3_12.hpp\n-\nboost/math/tools/detail/rational_horner3_13.hpp\n-\nboost/math/tools/detail/rational_horner3_14.hpp\n-\nboost/math/tools/detail/rational_horner3_15.hpp\n-\nboost/math/tools/detail/rational_horner3_16.hpp\n-\nboost/math/tools/detail/rational_horner3_17.hpp\n-\nboost/math/tools/detail/rational_horner3_18.hpp\n-\nboost/math/tools/detail/rational_horner3_19.hpp\n-\nboost/math/tools/detail/rational_horner3_20.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nutility\n-\nboost/config/no_tr1/cmath.hpp\n-\nstdexcept\n-\nboost/math/tools/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/math/tools/tuple.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/tools/toms748_solve.hpp\n-\nboost/math/policies/error_handling.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nboost/config/no_tr1/cmath.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nboost/math/tools/precision.hpp\n-\nboost/math/policies/error_handling.hpp\n-\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/cstdint.hpp\n-\nlimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nboost/config.hpp\n-\ntuple\n-\nboost/tuple/tuple.hpp\n-\nboost/tuple/tuple_comparison.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/fusion/include/tuple.hpp\n-\nboost/fusion/include/std_pair.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nboost/bind/mem_fn.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/iterator.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nalgorithm\n-\nmemory\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/iterator_traits.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility.hpp\n-\nboost/move/iterator.hpp\n-\nboost/move/traits.hpp\n-\nboost/move/algorithm.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/utility_core.hpp\n-\nboost/move/traits.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nboost/mpl/begin_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_empty.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nboost/mpl/begin_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nboost/mpl/empty_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nboost/mpl/back_fwd.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/vector/aux_/vector0.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nboost/mpl/empty_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nboost/mpl/front_fwd.hpp\n-\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/next_prior.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/iterator_tags.hpp\n-\nboost/mpl/plus.hpp\n-\nboost/mpl/minus.hpp\n-\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/prior.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nboost/mpl/pop_back_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nboost/mpl/pop_front_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/vector/aux_/O1_size.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nboost/mpl/long.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nboost/mpl/vector/aux_/at.hpp\n-\nboost/mpl/vector/aux_/front.hpp\n-\nboost/mpl/vector/aux_/push_front.hpp\n-\nboost/mpl/vector/aux_/pop_front.hpp\n-\nboost/mpl/vector/aux_/push_back.hpp\n-\nboost/mpl/vector/aux_/pop_back.hpp\n-\nboost/mpl/vector/aux_/back.hpp\n-\nboost/mpl/vector/aux_/clear.hpp\n-\nboost/mpl/vector/aux_/O1_size.hpp\n-\nboost/mpl/vector/aux_/size.hpp\n-\nboost/mpl/vector/aux_/empty.hpp\n-\nboost/mpl/vector/aux_/item.hpp\n-\nboost/mpl/vector/aux_/iterator.hpp\n-\nboost/mpl/vector/aux_/vector0.hpp\n-\nboost/mpl/vector/aux_/begin_end.hpp\n-\nboost/mpl/vector/aux_/tag.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nboost/mpl/vector/vector0.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nboost/mpl/vector/vector10.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nboost/mpl/vector/vector20.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nboost/mpl/vector/vector30.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nboost/mpl/vector/vector40.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/vector/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/typeof.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nboost/none_t.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/none_t.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nboost/optional/optional.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/optional/optional.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nstdexcept\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nnew\n-\nalgorithm\n-\niosfwd\n-\nboost/config.hpp\n-\nboost/assert.hpp\n-\nboost/core/explicit_operator_bool.hpp\n-\nboost/optional/bad_optional_access.hpp\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/type.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/has_nothrow_constructor.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_nothrow_move_assignable.hpp\n-\nboost/type_traits/is_nothrow_move_constructible.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/not.hpp\n-\nboost/detail/reference_content.hpp\n-\nboost/move/utility.hpp\n-\nboost/none.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/utility/compare_pointees.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/in_place_factory.hpp\n-\nboost/utility/swap.hpp\n-\nboost/optional/optional_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nboost/integer/integer_log2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nassert.h\n-\nboost/pending/integer_log2.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/boost/pending/integer_log2.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nboost/preprocessor/comparison/not_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/comparison/not_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nboost/preprocessor/control/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/to_seq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/program_options/parsers.hpp\n-\nboost/program_options/variables_map.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/program_options/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nboost/program_options/config.hpp\n-\nboost/detail/workaround.hpp\n-\nstring\n-\nvector\n-\nlocale\n-\ncwchar\n-\nstdexcept\n-\nwchar.h\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nboost/program_options/detail/convert.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nstdexcept\n-\nvector\n-\nmap\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/function.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/any.hpp\n-\nstring\n-\nvector\n-\nset\n-\nmap\n-\nstdexcept\n-\niosfwd\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/detail/cmdline.hpp\n-\nboost/function/function1.hpp\n-\niosfwd\n-\nvector\n-\nutility\n-\nboost/program_options/detail/parsers.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/parsers.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nboost/program_options/config.hpp\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/any.hpp\n-\nboost/function/function1.hpp\n-\nboost/lexical_cast.hpp\n-\nstring\n-\nvector\n-\ntypeinfo\n-\nboost/program_options/detail/value_semantic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/value_semantic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nboost/program_options/config.hpp\n-\nboost/any.hpp\n-\nboost/shared_ptr.hpp\n-\nstring\n-\nmap\n-\nset\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\nboost/timer.hpp\n-\nboost/noncopyable.hpp\n-\nboost/cstdint.hpp\n-\niostream\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nboost/random/additive_combine.hpp\n-\nboost/random/discard_block.hpp\n-\nboost/random/independent_bits.hpp\n-\nboost/random/inversive_congruential.hpp\n-\nboost/random/lagged_fibonacci.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/linear_feedback_shift.hpp\n-\nboost/random/mersenne_twister.hpp\n-\nboost/random/ranlux.hpp\n-\nboost/random/shuffle_order.hpp\n-\nboost/random/shuffle_output.hpp\n-\nboost/random/subtract_with_carry.hpp\n-\nboost/random/taus88.hpp\n-\nboost/random/xor_combine.hpp\n-\nboost/random/generate_canonical.hpp\n-\nboost/random/seed_seq.hpp\n-\nboost/random/random_number_generator.hpp\n-\nboost/random/variate_generator.hpp\n-\nboost/random/bernoulli_distribution.hpp\n-\nboost/random/binomial_distribution.hpp\n-\nboost/random/cauchy_distribution.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/exponential_distribution.hpp\n-\nboost/random/extreme_value_distribution.hpp\n-\nboost/random/fisher_f_distribution.hpp\n-\nboost/random/gamma_distribution.hpp\n-\nboost/random/geometric_distribution.hpp\n-\nboost/random/lognormal_distribution.hpp\n-\nboost/random/negative_binomial_distribution.hpp\n-\nboost/random/non_central_chi_squared_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\nboost/random/piecewise_constant_distribution.hpp\n-\nboost/random/piecewise_linear_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\nboost/random/student_t_distribution.hpp\n-\nboost/random/triangle_distribution.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/uniform_on_sphere.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\nboost/random/uniform_smallint.hpp\n-\nboost/random/weibull_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nistream\n-\niosfwd\n-\nalgorithm\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/linear_congruential.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\niosfwd\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncstdlib\n-\niosfwd\n-\nboost/random/detail/config.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\niosfwd\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/gamma_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer_traits.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/large_arithmetic.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/pending/integer_log2.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nboost/cstdint.hpp\n-\nboost/integer.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nboost/random/detail/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\ncstddef\n-\nlimits\n-\nvector\n-\nalgorithm\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nboost/config.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nstdexcept\n-\nboost/cstdint.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/integer.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nvector\n-\niosfwd\n-\nistream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\niostream\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nvector\n-\nlimits\n-\nnumeric\n-\nutility\n-\niterator\n-\nboost/assert.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/exponential_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nalgorithm\n-\nboost/assert.hpp\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/detail/generator_bits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nios\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\niosfwd\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nistream\n-\niosfwd\n-\nalgorithm\n-\niterator\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\niostream\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/const_mod.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\niosfwd\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncassert\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\niosfwd\n-\nistream\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\nboost/random/detail/polynomial.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\niosfwd\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/gamma_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/limits.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/poisson_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/integer_log2.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/exponential_distribution.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nvector\n-\nnumeric\n-\nboost/assert.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nvector\n-\nalgorithm\n-\ncmath\n-\ncstdlib\n-\nboost/assert.hpp\n-\nboost/random/uniform_real.hpp\n-\nboost/random/discrete_distribution.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/vector_io.hpp\n-\ninitializer_list\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\ncstdlib\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/limits.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nboost/assert.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nboost/config.hpp\n-\nboost/random/subtract_with_carry.hpp\n-\nboost/random/discard_block.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\ncstddef\n-\nvector\n-\nalgorithm\n-\niterator\n-\ninitializer_list\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\niostream\n-\nalgorithm\n-\ncassert\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/linear_congruential.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nboost/random/shuffle_order.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/chi_squared_distribution.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nboost/config/no_tr1/cmath.hpp\n-\niostream\n-\nalgorithm\n-\nstdexcept\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\nboost/integer/static_log2.hpp\n-\nboost/integer/integer_mask.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/generator_seed_seq.hpp\n-\nboost/random/linear_congruential.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nboost/random/linear_feedback_shift.hpp\n-\nboost/random/xor_combine.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nios\n-\nistream\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\niostream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/static_assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nboost/assert.hpp\n-\nboost/random/uniform_int_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\niosfwd\n-\nios\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/uniform_int_float.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nvector\n-\nalgorithm\n-\nfunctional\n-\nboost/assert.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/normal_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/uniform_real_distribution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\niosfwd\n-\nios\n-\nistream\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nistream\n-\niosfwd\n-\nboost/assert.hpp\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/detail/signed_unsigned_tools.hpp\n-\nboost/random/uniform_01.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nboost/random/detail/ptr_helper.hpp\n-\nboost/random/detail/disable_warnings.hpp\n-\nboost/random/detail/enable_warnings.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nboost/config/no_tr1/cmath.hpp\n-\niosfwd\n-\nistream\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/random/detail/operators.hpp\n-\nboost/random/uniform_01.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nistream\n-\niosfwd\n-\ncassert\n-\nalgorithm\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/random/detail/config.hpp\n-\nboost/random/detail/seed.hpp\n-\nboost/random/detail/seed_impl.hpp\n-\nboost/random/detail/operators.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\nboost/config.hpp\n-\nctime\n-\nboost/limits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nutility\n-\nboost/type_traits/cv_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/type_traits/cv_traits.hpp\nboost/type_traits/function_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/type_traits/function_traits.hpp\nboost/utility/swap.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/utility/swap.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/boost/detail/workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/config.hpp\nboost/static_assert.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/static_assert.hpp\nboost/ref.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/ref.hpp\nboost/tuple/detail/tuple_basic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/tuple/detail/tuple_basic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nboost/tuple/tuple.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/boost/tuple/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nboost/config.hpp\n-\nboost/type_index/stl_type_index.hpp\n-\nboost/type_index/detail/stl_register_class.hpp\n-\nboost/type_index/ctti_type_index.hpp\n-\nboost/type_index/detail/ctti_register_class.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\nboost/type_index/detail/compile_time_type_info.hpp\n-\ncstring\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/bool.hpp\n-\nalgorithm\n-\nboost/preprocessor/facilities/expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nboost/type_index/ctti_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nboost/type_index/stl_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\ntypeinfo\n-\ncstring\n-\nstdexcept\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/core/demangle.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nboost/config.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nstring\n-\ncstring\n-\niosfwd\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_union.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/add_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nboost/type_traits/has_trivial_assign.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nboost/type_traits/has_trivial_constructor.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nboost/config.hpp\n-\nboost/type_traits/has_trivial_move_assign.hpp\n-\nboost/type_traits/has_nothrow_assign.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/has_trivial_move_constructor.hpp\n-\nboost/type_traits/has_nothrow_copy.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/utility/declval.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nboost/mpl/deref.hpp\n-\nboost/mpl/next.hpp\n-\nboost/typeof/message.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/size_t.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nboost/typeof/encode_decode.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/int.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nboost/typeof/encode_decode_params.hpp\n-\nboost/typeof/encode_decode.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/if.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nboost/typeof/typeof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repetition/enum_trailing.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/detail/is_unary.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/typeof/encode_decode.hpp\n-\nboost/typeof/int_encoding.hpp\n-\nboost/typeof/type_template_param.hpp\n-\nboost/typeof/integral_template_param.hpp\n-\nboost/typeof/template_template_param.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nboost/preprocessor/logical/or.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nboost/typeof/dmc/typeof_impl.hpp\n-\nboost/typeof/msvc/typeof_impl.hpp\n-\nboost/typeof/msvc/typeof_impl.hpp\n-\nboost/typeof/unsupported.hpp\n-\nboost/typeof/message.hpp\n-\nboost/typeof/typeof_impl.hpp\n-\nboost/typeof/type_encoding.hpp\n-\nboost/typeof/template_encoding.hpp\n-\nboost/typeof/modifiers.hpp\n-\nboost/typeof/pointers_data_members.hpp\n-\nboost/typeof/register_functions.hpp\n-\nboost/typeof/register_fundamental.hpp\n-\nboost/typeof/message.hpp\n-\nboost/typeof/native.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nboost/mpl/size_t.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/typeof/encode_decode.hpp\n-\nboost/typeof/vector.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nboost/mpl/int.hpp\n-\nboost/preprocessor/iteration/self.hpp\n-\nboost/typeof/vector50.hpp\n-\nboost/typeof/vector100.hpp\n-\nboost/typeof/vector150.hpp\n-\nboost/typeof/vector200.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/repeat_from_to.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iteration/local.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nnew\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/punctuation/paren.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/repetition/enum.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nboost/utility/detail/in_place_factory_prefix.hpp\n-\nboost/utility/detail/in_place_factory_suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc\nalgorithm\n-\nrandom\n-\ncmath\n-\nunordered_map\n-\nfunctional\n-\ncluster_util.h\n-\nutils.h\n-\nported_boost_progress.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nstring.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/string.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nsimdutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/simdutils.h\ncstdlib\n-\nlimits\n-\nalgorithm\n-\nimmintrin.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc\nalgorithm\n-\ncstdint\n-\nstdexcept\n-\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nstring.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/string.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nstring.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/string.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nsimdutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/simdutils.h\ncstdlib\n-\ncstdint\n-\nlimits\n-\nalgorithm\n-\nimmintrin.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nsimdutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/simdutils.h\nstring.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/string.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\npow.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/pow.h\ncstdlib\n-\nlimits\n-\nalgorithm\n-\ncmath\n-\nimmintrin.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc\ncmath\n-\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nsimdutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/simdutils.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nstring.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/string.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\ncstdlib\n-\nlimits\n-\nalgorithm\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc\nmemory\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nsimdutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/simdutils.h\nspace/space_sparse_vector_inter.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.h\nfactory/init_methods.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/factory/init_methods.h\nfactory/init_spaces.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/factory/init_spaces.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc\niostream\n-\nalgorithm\n-\nmemory\n-\nstdexcept\n-\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnqueue.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nindex.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/index.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc\ntime.h\n-\nstdio.h\n-\nstdlib.h\n-\nassert.h\n-\niostream\n-\nstring\n-\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc\nmemory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nsys/types.h\n-\nunistd.h\n-\nstring.h\n-\nstdio.h\n-\nwindows.h\n-\nPsapi.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc\ncmath\n-\nmemory\n-\nspace/space_bregman.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space/space_bregman.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nmethod/bbtree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/bbtree.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/dummy.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/dummy.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc\nlimits\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nmethod/ghtree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/ghtree.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc\ncmath\n-\nmemory\n-\niostream\n-\nmmintrin.h\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nmethod/hnsw.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/hnsw.h\nspace/space_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space/space_lp.h\nvector\n-\nset\n-\nmap\n-\nsstream\n-\ntypeinfo\n-\nomp.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nmethod/hnsw.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/hnsw.h\nvector\n-\nlimits\n-\nalgorithm\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nmethod/list_clusters.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/list_clusters.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/logging.h\nqueue\n-\nutility\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc\nlimits\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nmethod/lsh_space.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/lsh_space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nmethod/lsh.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/lsh.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc\nlimits\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nmethod/lsh_space.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/lsh_space.h\nmethod/lsh_multiprobe.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/lsh_multiprobe.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/distcomp.h\nmethod/lsh_space.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/lsh_space.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc\nalgorithm\n-\niostream\n-\nsstream\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnqueue.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nmethodfactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/methodfactory.h\nmethod/multi_index.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/multi_index.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc\nalgorithm\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\nmethod/multi_vantage_point_tree_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/multi_vantage_point_tree_utils.h\nmethod/multi_vantage_point_tree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/multi_vantage_point_tree.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc\niomanip\n-\nmap\n-\nunordered_set\n-\nqueue\n-\nboost/format.hpp\n-\nboost/program_options.hpp\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/nndes.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/nndes.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc\ncmath\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\ncluster_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/cluster_util.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/nonmetr_list_clust.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/nonmetr_list_clust.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc\nunordered_map\n-\nalgorithm\n-\ncmath\n-\nqueue\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_utils.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/omedrank.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/omedrank.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc\nalgorithm\n-\nsstream\n-\nmemory\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nspace/space_bit_hamming.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space/space_bit_hamming.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnqueue.h\nmethod/perm_bin_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/perm_bin_vptree.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/distcomp.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/logging.h\nreport_intr_dim.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/report_intr_dim.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc\nalgorithm\n-\nsstream\n-\nmemory\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nincremental_quick_select.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/incremental_quick_select.h\nmethod/perm_index_incr_bin.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/perm_index_incr_bin.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc\nalgorithm\n-\nsstream\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/params.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/perm_lsh_bin.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/perm_lsh_bin.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc\nalgorithm\n-\nsstream\n-\nunordered_map\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nincremental_quick_select.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/incremental_quick_select.h\nmethod/permutation_inverted_index.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/permutation_inverted_index.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc\nsstream\n-\nunordered_map\n-\nunordered_set\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_utils.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nmethod/permutation_prefix_index.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/permutation_prefix_index.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc\nalgorithm\n-\nsstream\n-\nthread\n-\nmemory\n-\nfstream\n-\nthread\n-\nunordered_map\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nincremental_quick_select.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/incremental_quick_select.h\nmethod/pivot_neighb_invindx.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/pivot_neighb_invindx.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc\nalgorithm\n-\nsstream\n-\nmemory\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnqueue.h\nmethod/proj_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/proj_vptree.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/distcomp.h\nprojection.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spacefactory.h\nreport_intr_dim.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/report_intr_dim.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc\nalgorithm\n-\nmap\n-\nstring\n-\nsstream\n-\nstdexcept\n-\nlimits\n-\nqueue\n-\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/distcomp.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nincremental_quick_select.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/incremental_quick_select.h\nmethod/projection_index_incremental.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/projection_index_incremental.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/utils.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc\nthread\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnqueue.h\nmethod/seqsearch.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/seqsearch.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc\ncmath\n-\nmemory\n-\niostream\n-\nmmintrin.h\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nmethod/small_world_rand.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/small_world_rand.h\nsort_arr_bi.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/sort_arr_bi.h\nvector\n-\nset\n-\nmap\n-\nsstream\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc\ncmath\n-\nmemory\n-\niostream\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nported_boost_progress.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ported_boost_progress.h\nmethod/small_world_rand_split.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/small_world_rand_split.h\nvector\n-\nset\n-\nmap\n-\nsstream\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc\nalgorithm\n-\ntuple\n-\nqueue\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nmethod/spatial_approx_tree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/spatial_approx_tree.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc\nalgorithm\n-\niostream\n-\nfstream\n-\nsstream\n-\nstring\n-\ncmath\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/space.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/rangequery.h\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/knnquery.h\nsearchoracle.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/searchoracle.h\nmethod/vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/vptree.h\nmethod/vptree_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/method/vptree_utils.h\nmethodfactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/methodfactory.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc\ncstring\n-\nmap\n-\nlimits\n-\niostream\n-\nstdexcept\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\ncmath\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc\ncstring\n-\nmap\n-\nlimits\n-\niostream\n-\nstdexcept\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nparams_cmdline.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.h\nparams_def.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_def.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\ncmath\n-\nboost/program_options.hpp\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc\nvector\n-\nstdexcept\n-\nlimits\n-\ncmath\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nprojection.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.h\nrandproj_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/permutation_utils.h\nspace/space_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc\nstdio.h\n-\nalgorithm\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/object.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc\ncmath\n-\nrandom\n-\nvector\n-\nsstream\n-\nstdexcept\n-\nrandproj_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc\niostream\n-\nalgorithm\n-\nset\n-\niterator\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/object.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nrangequery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc\nsearchoracle.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.h\nmethod/vptree_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree_utils.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nmethod/vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.h\ntune.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune.h\nvector\n-\niostream\n-\nqueue\n-\ncmath\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nbitset\n-\nspace/space_bit_hamming.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_bit_hamming.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/permutation_utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_bregman.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_bregman.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_dummy.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_dummy.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_js.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_js.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_lp.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_scalar.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nspace/space_sparse_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sparse_lp.h\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sparse_vector.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc\nmemory\n-\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\ncstdint\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/utils.h\nspace/space_sparse_scalar_fast.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sparse_scalar_fast.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc\ncmath\n-\nfstream\n-\nstring\n-\nlimits\n-\niomanip\n-\nsstream\n-\nrandom\n-\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sparse_vector.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/object.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nrandom\n-\nspace/space_sparse_vector_inter.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sparse_vector_inter.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\niomanip\n-\nlimits\n-\nalgorithm\n-\nEigen/Dense\n-\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/object.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\nspace/space_sqfd.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_sqfd.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc\ncmath\n-\nfstream\n-\nstring\n-\nsstream\n-\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/object.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\nspace/space_string.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_string.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc\ncmath\n-\nfstream\n-\nsstream\n-\nstring\n-\nsstream\n-\nmemory\n-\niomanip\n-\nlimits\n-\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/object.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\nspace/space_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_vector.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc\ncmath\n-\nfstream\n-\nsstream\n-\nstring\n-\nsstream\n-\nmemory\n-\niomanip\n-\nlimits\n-\ncctype\n-\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/object.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/logging.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/distcomp.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/experimentconf.h\nspace/space_word_embed.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space/space_word_embed.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc\ncmath\n-\ncstring\n-\ncstdint\n-\ntime.h\n-\nio.h\n-\ndirect.h\n-\nunistd.h\n-\nsys/time.h\n-\nsys/stat.h\n-\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nfloatdiff.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/floatdiff.h\n\n/usr/include/eigen3/Eigen/Cholesky\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/misc/Solve.h\n/usr/include/eigen3/Eigen/src/misc/Solve.h\nsrc/Cholesky/LLT.h\n/usr/include/eigen3/Eigen/src/Cholesky/LLT.h\nsrc/Cholesky/LDLT.h\n/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h\nsrc/Cholesky/LLT_MKL.h\n/usr/include/eigen3/Eigen/src/Cholesky/LLT_MKL.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/Core/util/Macros.h\n/usr/include/eigen3/Eigen/src/Core/util/Macros.h\ncomplex\n-\nsrc/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h\nmalloc.h\n-\nimmintrin.h\n-\nemmintrin.h\n-\nxmmintrin.h\n-\npmmintrin.h\n-\ntmmintrin.h\n-\nsmmintrin.h\n-\nnmmintrin.h\n-\naltivec.h\n-\narm_neon.h\n-\nomp.h\n-\ncerrno\n-\ncstddef\n-\ncstdlib\n-\ncmath\n-\ncassert\n-\nfunctional\n-\niosfwd\n-\ncstring\n-\nstring\n-\nlimits\n-\nclimits\n-\nalgorithm\n-\niostream\n-\nintrin.h\n-\nnew\n-\nsrc/Core/util/Constants.h\n/usr/include/eigen3/Eigen/src/Core/util/Constants.h\nsrc/Core/util/ForwardDeclarations.h\n/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h\nsrc/Core/util/Meta.h\n/usr/include/eigen3/Eigen/src/Core/util/Meta.h\nsrc/Core/util/StaticAssert.h\n/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h\nsrc/Core/util/XprHelper.h\n/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h\nsrc/Core/util/Memory.h\n/usr/include/eigen3/Eigen/src/Core/util/Memory.h\nsrc/Core/NumTraits.h\n/usr/include/eigen3/Eigen/src/Core/NumTraits.h\nsrc/Core/MathFunctions.h\n/usr/include/eigen3/Eigen/src/Core/MathFunctions.h\nsrc/Core/GenericPacketMath.h\n/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h\nsrc/Core/arch/SSE/PacketMath.h\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h\nsrc/Core/arch/SSE/MathFunctions.h\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h\nsrc/Core/arch/SSE/Complex.h\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h\nsrc/Core/arch/AltiVec/PacketMath.h\n/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h\nsrc/Core/arch/AltiVec/Complex.h\n/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h\nsrc/Core/arch/NEON/PacketMath.h\n/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h\nsrc/Core/arch/NEON/Complex.h\n/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h\nsrc/Core/arch/Default/Settings.h\n/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h\nsrc/Core/Functors.h\n/usr/include/eigen3/Eigen/src/Core/Functors.h\nsrc/Core/DenseCoeffsBase.h\n/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h\nsrc/Core/DenseBase.h\n/usr/include/eigen3/Eigen/src/Core/DenseBase.h\nsrc/Core/MatrixBase.h\n/usr/include/eigen3/Eigen/src/Core/MatrixBase.h\nsrc/Core/EigenBase.h\n/usr/include/eigen3/Eigen/src/Core/EigenBase.h\nsrc/Core/Assign.h\n/usr/include/eigen3/Eigen/src/Core/Assign.h\nsrc/Core/util/BlasUtil.h\n/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h\nsrc/Core/DenseStorage.h\n/usr/include/eigen3/Eigen/src/Core/DenseStorage.h\nsrc/Core/NestByValue.h\n/usr/include/eigen3/Eigen/src/Core/NestByValue.h\nsrc/Core/ForceAlignedAccess.h\n/usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h\nsrc/Core/ReturnByValue.h\n/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h\nsrc/Core/NoAlias.h\n/usr/include/eigen3/Eigen/src/Core/NoAlias.h\nsrc/Core/PlainObjectBase.h\n/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h\nsrc/Core/Matrix.h\n/usr/include/eigen3/Eigen/src/Core/Matrix.h\nsrc/Core/Array.h\n/usr/include/eigen3/Eigen/src/Core/Array.h\nsrc/Core/CwiseBinaryOp.h\n/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h\nsrc/Core/CwiseUnaryOp.h\n/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h\nsrc/Core/CwiseNullaryOp.h\n/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h\nsrc/Core/CwiseUnaryView.h\n/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h\nsrc/Core/SelfCwiseBinaryOp.h\n/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h\nsrc/Core/Dot.h\n/usr/include/eigen3/Eigen/src/Core/Dot.h\nsrc/Core/StableNorm.h\n/usr/include/eigen3/Eigen/src/Core/StableNorm.h\nsrc/Core/MapBase.h\n/usr/include/eigen3/Eigen/src/Core/MapBase.h\nsrc/Core/Stride.h\n/usr/include/eigen3/Eigen/src/Core/Stride.h\nsrc/Core/Map.h\n/usr/include/eigen3/Eigen/src/Core/Map.h\nsrc/Core/Block.h\n/usr/include/eigen3/Eigen/src/Core/Block.h\nsrc/Core/VectorBlock.h\n/usr/include/eigen3/Eigen/src/Core/VectorBlock.h\nsrc/Core/Ref.h\n/usr/include/eigen3/Eigen/src/Core/Ref.h\nsrc/Core/Transpose.h\n/usr/include/eigen3/Eigen/src/Core/Transpose.h\nsrc/Core/DiagonalMatrix.h\n/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h\nsrc/Core/Diagonal.h\n/usr/include/eigen3/Eigen/src/Core/Diagonal.h\nsrc/Core/DiagonalProduct.h\n/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h\nsrc/Core/PermutationMatrix.h\n/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h\nsrc/Core/Transpositions.h\n/usr/include/eigen3/Eigen/src/Core/Transpositions.h\nsrc/Core/Redux.h\n/usr/include/eigen3/Eigen/src/Core/Redux.h\nsrc/Core/Visitor.h\n/usr/include/eigen3/Eigen/src/Core/Visitor.h\nsrc/Core/Fuzzy.h\n/usr/include/eigen3/Eigen/src/Core/Fuzzy.h\nsrc/Core/IO.h\n/usr/include/eigen3/Eigen/src/Core/IO.h\nsrc/Core/Swap.h\n/usr/include/eigen3/Eigen/src/Core/Swap.h\nsrc/Core/CommaInitializer.h\n/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h\nsrc/Core/Flagged.h\n/usr/include/eigen3/Eigen/src/Core/Flagged.h\nsrc/Core/ProductBase.h\n/usr/include/eigen3/Eigen/src/Core/ProductBase.h\nsrc/Core/GeneralProduct.h\n/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h\nsrc/Core/TriangularMatrix.h\n/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h\nsrc/Core/SelfAdjointView.h\n/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h\nsrc/Core/products/GeneralBlockPanelKernel.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h\nsrc/Core/products/Parallelizer.h\n/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h\nsrc/Core/products/CoeffBasedProduct.h\n/usr/include/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h\nsrc/Core/products/GeneralMatrixVector.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h\nsrc/Core/products/GeneralMatrixMatrix.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h\nsrc/Core/SolveTriangular.h\n/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h\nsrc/Core/products/GeneralMatrixMatrixTriangular.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h\nsrc/Core/products/SelfadjointMatrixVector.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h\nsrc/Core/products/SelfadjointMatrixMatrix.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h\nsrc/Core/products/SelfadjointProduct.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h\nsrc/Core/products/SelfadjointRank2Update.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h\nsrc/Core/products/TriangularMatrixVector.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h\nsrc/Core/products/TriangularMatrixMatrix.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h\nsrc/Core/products/TriangularSolverMatrix.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h\nsrc/Core/products/TriangularSolverVector.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h\nsrc/Core/BandMatrix.h\n/usr/include/eigen3/Eigen/src/Core/BandMatrix.h\nsrc/Core/CoreIterators.h\n/usr/include/eigen3/Eigen/src/Core/CoreIterators.h\nsrc/Core/BooleanRedux.h\n/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h\nsrc/Core/Select.h\n/usr/include/eigen3/Eigen/src/Core/Select.h\nsrc/Core/VectorwiseOp.h\n/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h\nsrc/Core/Random.h\n/usr/include/eigen3/Eigen/src/Core/Random.h\nsrc/Core/Replicate.h\n/usr/include/eigen3/Eigen/src/Core/Replicate.h\nsrc/Core/Reverse.h\n/usr/include/eigen3/Eigen/src/Core/Reverse.h\nsrc/Core/ArrayBase.h\n/usr/include/eigen3/Eigen/src/Core/ArrayBase.h\nsrc/Core/ArrayWrapper.h\n/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h\nsrc/Core/products/GeneralMatrixMatrix_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h\nsrc/Core/products/GeneralMatrixVector_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h\nsrc/Core/products/GeneralMatrixMatrixTriangular_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h\nsrc/Core/products/SelfadjointMatrixMatrix_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h\nsrc/Core/products/SelfadjointMatrixVector_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h\nsrc/Core/products/TriangularMatrixMatrix_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h\nsrc/Core/products/TriangularMatrixVector_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h\nsrc/Core/products/TriangularSolverMatrix_MKL.h\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h\nsrc/Core/Assign_MKL.h\n/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h\nsrc/Core/GlobalFunctions.h\n/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\nEigen2Support\n/usr/include/eigen3/Eigen/Eigen2Support\n\n/usr/include/eigen3/Eigen/Dense\nCore\n/usr/include/eigen3/Eigen/Core\nLU\n/usr/include/eigen3/Eigen/LU\nCholesky\n/usr/include/eigen3/Eigen/Cholesky\nQR\n/usr/include/eigen3/Eigen/QR\nSVD\n/usr/include/eigen3/Eigen/SVD\nGeometry\n/usr/include/eigen3/Eigen/Geometry\nEigenvalues\n/usr/include/eigen3/Eigen/Eigenvalues\n\n/usr/include/eigen3/Eigen/Eigen2Support\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/Eigen2Support/Macros.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Macros.h\nsrc/Eigen2Support/Memory.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Memory.h\nsrc/Eigen2Support/Meta.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Meta.h\nsrc/Eigen2Support/Lazy.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Lazy.h\nsrc/Eigen2Support/Cwise.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Cwise.h\nsrc/Eigen2Support/CwiseOperators.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h\nsrc/Eigen2Support/TriangularSolver.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h\nsrc/Eigen2Support/Block.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Block.h\nsrc/Eigen2Support/VectorBlock.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/VectorBlock.h\nsrc/Eigen2Support/Minor.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Minor.h\nsrc/Eigen2Support/MathFunctions.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/MathFunctions.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\niostream\n-\n\n/usr/include/eigen3/Eigen/Eigenvalues\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nCholesky\n/usr/include/eigen3/Eigen/Cholesky\nJacobi\n/usr/include/eigen3/Eigen/Jacobi\nHouseholder\n/usr/include/eigen3/Eigen/Householder\nLU\n/usr/include/eigen3/Eigen/LU\nGeometry\n/usr/include/eigen3/Eigen/Geometry\nsrc/Eigenvalues/Tridiagonalization.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h\nsrc/Eigenvalues/RealSchur.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h\nsrc/Eigenvalues/EigenSolver.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h\nsrc/Eigenvalues/SelfAdjointEigenSolver.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h\nsrc/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h\nsrc/Eigenvalues/HessenbergDecomposition.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h\nsrc/Eigenvalues/ComplexSchur.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h\nsrc/Eigenvalues/ComplexEigenSolver.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h\nsrc/Eigenvalues/RealQZ.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h\nsrc/Eigenvalues/GeneralizedEigenSolver.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h\nsrc/Eigenvalues/MatrixBaseEigenvalues.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h\nsrc/Eigenvalues/RealSchur_MKL.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h\nsrc/Eigenvalues/ComplexSchur_MKL.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h\nsrc/Eigenvalues/SelfAdjointEigenSolver_MKL.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/Geometry\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nSVD\n/usr/include/eigen3/Eigen/SVD\nLU\n/usr/include/eigen3/Eigen/LU\nlimits\n-\nsrc/Geometry/OrthoMethods.h\n/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h\nsrc/Geometry/EulerAngles.h\n/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h\nsrc/Geometry/Homogeneous.h\n/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h\nsrc/Geometry/RotationBase.h\n/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h\nsrc/Geometry/Rotation2D.h\n/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h\nsrc/Geometry/Quaternion.h\n/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h\nsrc/Geometry/AngleAxis.h\n/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h\nsrc/Geometry/Transform.h\n/usr/include/eigen3/Eigen/src/Geometry/Transform.h\nsrc/Geometry/Translation.h\n/usr/include/eigen3/Eigen/src/Geometry/Translation.h\nsrc/Geometry/Scaling.h\n/usr/include/eigen3/Eigen/src/Geometry/Scaling.h\nsrc/Geometry/Hyperplane.h\n/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h\nsrc/Geometry/ParametrizedLine.h\n/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h\nsrc/Geometry/AlignedBox.h\n/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h\nsrc/Geometry/Umeyama.h\n/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h\nsrc/Geometry/arch/Geometry_SSE.h\n/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h\nsrc/Eigen2Support/Geometry/All.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/All.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/Householder\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/Householder/Householder.h\n/usr/include/eigen3/Eigen/src/Householder/Householder.h\nsrc/Householder/HouseholderSequence.h\n/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h\nsrc/Householder/BlockHouseholder.h\n/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/Jacobi\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/Jacobi/Jacobi.h\n/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/LU\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/misc/Solve.h\n/usr/include/eigen3/Eigen/src/misc/Solve.h\nsrc/misc/Kernel.h\n/usr/include/eigen3/Eigen/src/misc/Kernel.h\nsrc/misc/Image.h\n/usr/include/eigen3/Eigen/src/misc/Image.h\nsrc/LU/FullPivLU.h\n/usr/include/eigen3/Eigen/src/LU/FullPivLU.h\nsrc/LU/PartialPivLU.h\n/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h\nsrc/LU/PartialPivLU_MKL.h\n/usr/include/eigen3/Eigen/src/LU/PartialPivLU_MKL.h\nsrc/LU/Determinant.h\n/usr/include/eigen3/Eigen/src/LU/Determinant.h\nsrc/LU/Inverse.h\n/usr/include/eigen3/Eigen/src/LU/Inverse.h\nsrc/LU/arch/Inverse_SSE.h\n/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h\nsrc/Eigen2Support/LU.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/LU.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/QR\nCore\n/usr/include/eigen3/Eigen/Core\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nCholesky\n/usr/include/eigen3/Eigen/Cholesky\nJacobi\n/usr/include/eigen3/Eigen/Jacobi\nHouseholder\n/usr/include/eigen3/Eigen/Householder\nsrc/misc/Solve.h\n/usr/include/eigen3/Eigen/src/misc/Solve.h\nsrc/QR/HouseholderQR.h\n/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h\nsrc/QR/FullPivHouseholderQR.h\n/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h\nsrc/QR/ColPivHouseholderQR.h\n/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h\nsrc/QR/HouseholderQR_MKL.h\n/usr/include/eigen3/Eigen/src/QR/HouseholderQR_MKL.h\nsrc/QR/ColPivHouseholderQR_MKL.h\n/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h\nsrc/Eigen2Support/QR.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/QR.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\nEigenvalues\n/usr/include/eigen3/Eigen/Eigenvalues\n\n/usr/include/eigen3/Eigen/SVD\nQR\n/usr/include/eigen3/Eigen/QR\nHouseholder\n/usr/include/eigen3/Eigen/Householder\nJacobi\n/usr/include/eigen3/Eigen/Jacobi\nsrc/Core/util/DisableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/misc/Solve.h\n/usr/include/eigen3/Eigen/src/misc/Solve.h\nsrc/SVD/JacobiSVD.h\n/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h\nsrc/SVD/JacobiSVD_MKL.h\n/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h\nsrc/SVD/UpperBidiagonalization.h\n/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h\nsrc/Eigen2Support/SVD.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/SVD.h\nsrc/Core/util/ReenableStupidWarnings.h\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h\n\n/usr/include/eigen3/Eigen/src/Cholesky/LLT.h\n\n/usr/include/eigen3/Eigen/src/Cholesky/LLT_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Cholesky/Eigen/src/Core/util/MKL_support.h\niostream\n-\n\n/usr/include/eigen3/Eigen/src/Core/Array.h\n\n/usr/include/eigen3/Eigen/src/Core/ArrayBase.h\n../plugins/CommonCwiseUnaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h\n../plugins/MatrixCwiseUnaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h\n../plugins/ArrayCwiseUnaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h\n../plugins/CommonCwiseBinaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h\n../plugins/MatrixCwiseBinaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h\n../plugins/ArrayCwiseBinaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h\n\n/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h\n\n/usr/include/eigen3/Eigen/src/Core/Assign.h\n\n/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/BandMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/Block.h\n\n/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h\n\n/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h\n\n/usr/include/eigen3/Eigen/src/Core/CoreIterators.h\n\n/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h\n\n/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h\n\n/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h\n\n/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h\n\n/usr/include/eigen3/Eigen/src/Core/DenseBase.h\n../plugins/BlockMethods.h\n/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h\n\n/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h\n\n/usr/include/eigen3/Eigen/src/Core/DenseStorage.h\n\n/usr/include/eigen3/Eigen/src/Core/Diagonal.h\n\n/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h\n\n/usr/include/eigen3/Eigen/src/Core/Dot.h\n\n/usr/include/eigen3/Eigen/src/Core/EigenBase.h\n\n/usr/include/eigen3/Eigen/src/Core/Flagged.h\n\n/usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h\n\n/usr/include/eigen3/Eigen/src/Core/Functors.h\n\n/usr/include/eigen3/Eigen/src/Core/Fuzzy.h\n\n/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h\n\n/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h\n\n/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h\n\n/usr/include/eigen3/Eigen/src/Core/IO.h\n\n/usr/include/eigen3/Eigen/src/Core/Map.h\n\n/usr/include/eigen3/Eigen/src/Core/MapBase.h\n\n/usr/include/eigen3/Eigen/src/Core/MathFunctions.h\n\n/usr/include/eigen3/Eigen/src/Core/Matrix.h\n\n/usr/include/eigen3/Eigen/src/Core/MatrixBase.h\n../plugins/CommonCwiseUnaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h\n../plugins/CommonCwiseBinaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h\n../plugins/MatrixCwiseUnaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h\n../plugins/MatrixCwiseBinaryOps.h\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h\n\n/usr/include/eigen3/Eigen/src/Core/NestByValue.h\n\n/usr/include/eigen3/Eigen/src/Core/NoAlias.h\n\n/usr/include/eigen3/Eigen/src/Core/NumTraits.h\n\n/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h\n\n/usr/include/eigen3/Eigen/src/Core/ProductBase.h\n\n/usr/include/eigen3/Eigen/src/Core/Random.h\n\n/usr/include/eigen3/Eigen/src/Core/Redux.h\n\n/usr/include/eigen3/Eigen/src/Core/Ref.h\n\n/usr/include/eigen3/Eigen/src/Core/Replicate.h\n\n/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h\n\n/usr/include/eigen3/Eigen/src/Core/Reverse.h\n\n/usr/include/eigen3/Eigen/src/Core/Select.h\n\n/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h\n\n/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h\n\n/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h\n\n/usr/include/eigen3/Eigen/src/Core/StableNorm.h\n\n/usr/include/eigen3/Eigen/src/Core/Stride.h\n\n/usr/include/eigen3/Eigen/src/Core/Swap.h\n\n/usr/include/eigen3/Eigen/src/Core/Transpose.h\n\n/usr/include/eigen3/Eigen/src/Core/Transpositions.h\n\n/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/VectorBlock.h\n\n/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h\n\n/usr/include/eigen3/Eigen/src/Core/Visitor.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h\n\n/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h\n\n/usr/include/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h\n\n/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h\n\n/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h\n\n/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h\n\n/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h\n\n/usr/include/eigen3/Eigen/src/Core/util/Constants.h\n\n/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h\n\n/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h\nmkl.h\n-\nmkl_lapacke.h\n-\n\n/usr/include/eigen3/Eigen/src/Core/util/Macros.h\ncstdlib\n-\niostream\n-\n\n/usr/include/eigen3/Eigen/src/Core/util/Memory.h\nunistd.h\n-\n\n/usr/include/eigen3/Eigen/src/Core/util/Meta.h\n\n/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n\n/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h\n\n/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Block.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Cwise.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/All.h\nlimits\n-\nRotationBase.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h\nRotation2D.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h\nQuaternion.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h\nAngleAxis.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h\nTransform.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h\nTranslation.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h\nScaling.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h\nAlignedBox.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h\nHyperplane.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h\nParametrizedLine.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h\nRotationBase.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h\nRotation2D.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h\nQuaternion.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h\nAngleAxis.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h\nTransform.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h\nTranslation.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h\nScaling.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h\nAlignedBox.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h\nHyperplane.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h\nParametrizedLine.h\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/LU.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Lazy.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Macros.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/MathFunctions.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Memory.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Meta.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/Minor.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/QR.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/SVD.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h\n\n/usr/include/eigen3/Eigen/src/Eigen2Support/VectorBlock.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/./ComplexSchur.h\n./HessenbergDecomposition.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/././HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/./HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/./RealQZ.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/./RealSchur.h\n./HessenbergDecomposition.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/././HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/./Tridiagonalization.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h\n./ComplexSchur.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./ComplexSchur.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h\n./HessenbergDecomposition.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h\n./RealSchur.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./RealSchur.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h\n./RealQZ.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./RealQZ.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h\n./Tridiagonalization.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./Tridiagonalization.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h\n./HessenbergDecomposition.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./HessenbergDecomposition.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h\n./Tridiagonalization.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/./Tridiagonalization.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Eigenvalues/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h\n\n/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h\n\n/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h\n\n/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h\n\n/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h\n\n/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h\n\n/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Scaling.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Transform.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Translation.h\n\n/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h\n\n/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h\n\n/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h\n\n/usr/include/eigen3/Eigen/src/Householder/Householder.h\n\n/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h\n\n/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h\n\n/usr/include/eigen3/Eigen/src/LU/Determinant.h\n\n/usr/include/eigen3/Eigen/src/LU/FullPivLU.h\n\n/usr/include/eigen3/Eigen/src/LU/Inverse.h\n\n/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h\n\n/usr/include/eigen3/Eigen/src/LU/PartialPivLU_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/LU/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h\n\n/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h\n\n/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/QR/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h\n\n/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h\n\n/usr/include/eigen3/Eigen/src/QR/HouseholderQR_MKL.h\n../Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h\n\n/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h\nEigen/src/Core/util/MKL_support.h\n/usr/include/eigen3/Eigen/src/SVD/Eigen/src/Core/util/MKL_support.h\n\n/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h\n\n/usr/include/eigen3/Eigen/src/misc/Image.h\n\n/usr/include/eigen3/Eigen/src/misc/Kernel.h\n\n/usr/include/eigen3/Eigen/src/misc/Solve.h\n\n/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h\n\n/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h\n\n/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h\n\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h\n\n/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h\n\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h\n\n/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h\n\ninclude/cluster_util.h\nspace.h\n-\nidtype.h\n-\nobject.h\n-\nvector\n-\nstring\n-\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/eval_results.h\niostream\n-\nalgorithm\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nstdexcept\n-\nunordered_map\n-\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nindex.h\ninclude/index.h\nknnqueue.h\ninclude/knnqueue.h\neval_metrics.h\ninclude/eval_metrics.h\n\ninclude/experimentconf.h\nstring.h\n-\nstring\n-\nunordered_map\n-\nvector\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\n\ninclude/experiments.h\nerrno.h\n-\nstring.h\n-\niostream\n-\nvector\n-\nset\n-\nsstream\n-\nstring\n-\nutility\n-\nthread\n-\nmutex\n-\nmemory\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nmemory.h\ninclude/memory.h\nztimer.h\ninclude/ztimer.h\nutils.h\ninclude/utils.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\nlogging.h\ninclude/logging.h\nmethodfactory.h\ninclude/methodfactory.h\neval_results.h\ninclude/eval_results.h\nmeta_analysis.h\ninclude/meta_analysis.h\nquery_creator.h\ninclude/query_creator.h\n\ninclude/factory/init_methods.h\nmethodfactory.h\ninclude/factory/methodfactory.h\nfactory/method/lsh.h\ninclude/factory/factory/method/lsh.h\nfactory/method/lsh_multiprobe.h\ninclude/factory/factory/method/lsh_multiprobe.h\nfactory/method/dummy.h\ninclude/factory/factory/method/dummy.h\nfactory/method/bbtree.h\ninclude/factory/factory/method/bbtree.h\nfactory/method/ghtree.h\ninclude/factory/factory/method/ghtree.h\nfactory/method/list_clusters.h\ninclude/factory/factory/method/list_clusters.h\nfactory/method/nonmetr_list_clust.h\ninclude/factory/factory/method/nonmetr_list_clust.h\nfactory/method/multi_index.h\ninclude/factory/factory/method/multi_index.h\nfactory/method/multi_vantage_point_tree.h\ninclude/factory/factory/method/multi_vantage_point_tree.h\nfactory/method/perm_bin_vptree.h\ninclude/factory/factory/method/perm_bin_vptree.h\nfactory/method/perm_index_incr_bin.h\ninclude/factory/factory/method/perm_index_incr_bin.h\nfactory/method/perm_lsh_bin.h\ninclude/factory/factory/method/perm_lsh_bin.h\nfactory/method/permutation_inverted_index.h\ninclude/factory/factory/method/permutation_inverted_index.h\nfactory/method/permutation_prefix_index.h\ninclude/factory/factory/method/permutation_prefix_index.h\nfactory/method/pivot_neighb_invindx.h\ninclude/factory/factory/method/pivot_neighb_invindx.h\nfactory/method/proj_vptree.h\ninclude/factory/factory/method/proj_vptree.h\nfactory/method/projection_index_incremental.h\ninclude/factory/factory/method/projection_index_incremental.h\nfactory/method/seqsearch.h\ninclude/factory/factory/method/seqsearch.h\nfactory/method/small_world_rand.h\ninclude/factory/factory/method/small_world_rand.h\nfactory/method/hnsw.h\ninclude/factory/factory/method/hnsw.h\nfactory/method/spatial_approx_tree.h\ninclude/factory/factory/method/spatial_approx_tree.h\nfactory/method/vptree.h\ninclude/factory/factory/method/vptree.h\nfactory/method/omedrank.h\ninclude/factory/factory/method/omedrank.h\nfactory/method/nndes.h\ninclude/factory/factory/method/nndes.h\n\ninclude/factory/init_spaces.h\nspacefactory.h\ninclude/factory/spacefactory.h\nfactory/space/space_edist.h\ninclude/factory/factory/space/space_edist.h\nfactory/space/space_bit_hamming.h\ninclude/factory/factory/space/space_bit_hamming.h\nfactory/space/space_bregman.h\ninclude/factory/factory/space/space_bregman.h\nfactory/space/space_dummy.h\ninclude/factory/factory/space/space_dummy.h\nfactory/space/space_js.h\ninclude/factory/factory/space/space_js.h\nfactory/space/space_lp.h\ninclude/factory/factory/space/space_lp.h\nfactory/space/space_scalar.h\ninclude/factory/factory/space/space_scalar.h\nfactory/space/space_sparse_lp.h\ninclude/factory/factory/space/space_sparse_lp.h\nfactory/space/space_sparse_scalar.h\ninclude/factory/factory/space/space_sparse_scalar.h\nfactory/space/space_savch.h\ninclude/factory/factory/space/space_savch.h\nfactory/space/space_word_embed.h\ninclude/factory/factory/space/space_word_embed.h\nfactory/space/space_sqfd.h\ninclude/factory/factory/space/space_sqfd.h\n\ninclude/factory/method/bbtree.h\nmethod/bbtree.h\n-\n\ninclude/factory/method/dummy.h\nmethod/dummy.h\n-\n\ninclude/factory/method/ghtree.h\nmethod/ghtree.h\n-\n\ninclude/factory/method/hnsw.h\nmethod/hnsw.h\n-\n\ninclude/factory/method/list_clusters.h\nmethod/list_clusters.h\n-\n\ninclude/factory/method/lsh.h\nmethod/lsh.h\n-\n\ninclude/factory/method/lsh_multiprobe.h\nmethod/lsh_multiprobe.h\n-\nlogging.h\ninclude/factory/method/logging.h\n\ninclude/factory/method/multi_index.h\nmethod/multi_index.h\n-\n\ninclude/factory/method/multi_vantage_point_tree.h\nmethod/multi_vantage_point_tree.h\n-\n\ninclude/factory/method/nndes.h\nmethod/nndes.h\n-\n\ninclude/factory/method/nonmetr_list_clust.h\nmethod/nonmetr_list_clust.h\n-\n\ninclude/factory/method/omedrank.h\nmethod/omedrank.h\n-\n\ninclude/factory/method/perm_bin_vptree.h\nmethod/perm_bin_vptree.h\n-\n\ninclude/factory/method/perm_index_incr_bin.h\nmethod/perm_index_incr_bin.h\n-\n\ninclude/factory/method/perm_lsh_bin.h\nmethod/perm_lsh_bin.h\n-\n\ninclude/factory/method/permutation_inverted_index.h\nmethod/permutation_inverted_index.h\n-\n\ninclude/factory/method/permutation_prefix_index.h\nmethod/permutation_prefix_index.h\n-\n\ninclude/factory/method/pivot_neighb_invindx.h\nmethod/pivot_neighb_invindx.h\n-\n\ninclude/factory/method/proj_vptree.h\nmethod/proj_vptree.h\n-\nspace/space_sparse_scalar.h\n-\nspace/space_sparse_scalar_fast.h\n-\n\ninclude/factory/method/projection_index_incremental.h\nmethod/projection_index_incremental.h\n-\n\ninclude/factory/method/seqsearch.h\nmethod/seqsearch.h\n-\n\ninclude/factory/method/small_world_rand.h\nmethod/small_world_rand.h\n-\nmethod/small_world_rand_split.h\n-\n\ninclude/factory/method/spatial_approx_tree.h\nmethod/spatial_approx_tree.h\n-\n\ninclude/factory/method/vptree.h\nsearchoracle.h\ninclude/factory/method/searchoracle.h\nmethod/vptree.h\n-\n\ninclude/factory/space/space_bit_hamming.h\nspace/space_bit_hamming.h\n-\n\ninclude/factory/space/space_bregman.h\nspace/space_bregman.h\n-\n\ninclude/factory/space/space_dummy.h\nspace/space_dummy.h\n-\n\ninclude/factory/space/space_edist.h\nspace/space_leven.h\n-\n\ninclude/factory/space/space_js.h\nspace/space_js.h\n-\n\ninclude/factory/space/space_lp.h\nspace/space_lp.h\n-\n\ninclude/factory/space/space_savch.h\nlimits.h\n-\ncmath\n-\nspace/space_vector_gen.h\n-\n\ninclude/factory/space/space_scalar.h\nspace/space_scalar.h\n-\n\ninclude/factory/space/space_sparse_lp.h\nspace/space_sparse_lp.h\n-\n\ninclude/factory/space/space_sparse_scalar.h\nspace/space_sparse_scalar.h\n-\nspace/space_sparse_scalar_fast.h\n-\n\ninclude/factory/space/space_sqfd.h\nspace/space_sqfd.h\ninclude/factory/space/space/space_sqfd.h\n\ninclude/factory/space/space_word_embed.h\nspace/space_word_embed.h\n-\n\ninclude/floatdiff.h\ncstdint\n-\nlimits\n-\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/incremental_quick_select.h\nvector\n-\nstack\n-\nglobal.h\ninclude/global.h\n\ninclude/index.h\nstdio.h\n-\nstring\n-\nvector\n-\nparams.h\ninclude/params.h\nobject.h\ninclude/object.h\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/memory.h\n\ninclude/meta_analysis.h\nvector\n-\nstring\n-\nutils.h\ninclude/utils.h\n\ninclude/method/bbtree.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\n\ninclude/method/dummy.h\nstring\n-\nsstream\n-\nindex.h\ninclude/method/index.h\n\ninclude/method/ghtree.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\n\ninclude/method/hnsw.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nset\n-\nlimits\n-\niostream\n-\nmap\n-\nunordered_set\n-\nthread\n-\nmemory\n-\nmutex\n-\nthread\n-\ncondition_variable\n-\nqueue\n-\n\ninclude/method/lcstrategy.h\niostream\n-\n\ninclude/method/list_clusters.h\nindex.h\ninclude/method/index.h\nlcstrategy.h\ninclude/method/lcstrategy.h\nparams.h\ninclude/method/params.h\n\ninclude/method/lsh.h\nindex.h\ninclude/method/index.h\nspace.h\ninclude/method/space.h\nlshkit.h\ninclude/method/lshkit.h\n\ninclude/method/lsh_multiprobe.h\nindex.h\ninclude/method/index.h\nspace.h\ninclude/method/space.h\nlshkit.h\ninclude/method/lshkit.h\n\ninclude/method/lsh_space.h\ncmath\n-\nknnquery.h\ninclude/method/knnquery.h\n\ninclude/method/multi_index.h\nvector\n-\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nmethodfactory.h\ninclude/method/methodfactory.h\n\ninclude/method/multi_vantage_point_tree.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\n\ninclude/method/multi_vantage_point_tree_utils.h\n\ninclude/method/nndes.h\nstring\n-\nsstream\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nspace.h\ninclude/method/space.h\nnndes/nndes-common.h\ninclude/method/nndes/nndes-common.h\nnndes/nndes.h\ninclude/method/nndes/nndes.h\n\ninclude/method/nonmetr_list_clust.h\nstring\n-\nsstream\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nobject.h\ninclude/method/object.h\n\ninclude/method/omedrank.h\nstring\n-\nvector\n-\nsstream\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nprojection.h\ninclude/method/projection.h\nported_boost_progress.h\ninclude/method/ported_boost_progress.h\n\ninclude/method/perm_bin_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_bit_hamming.h\ninclude/method/space/space_bit_hamming.h\npermutation_utils.h\ninclude/method/permutation_utils.h\nvptree.h\ninclude/method/vptree.h\nparams.h\ninclude/method/params.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/perm_index_incr_bin.h\nvector\n-\nindex.h\ninclude/method/index.h\npermutation_utils.h\ninclude/method/permutation_utils.h\n\ninclude/method/perm_lsh_bin.h\nvector\n-\nindex.h\ninclude/method/index.h\npermutation_utils.h\ninclude/method/permutation_utils.h\n\ninclude/method/permutation_inverted_index.h\nvector\n-\nindex.h\ninclude/method/index.h\npermutation_utils.h\ninclude/method/permutation_utils.h\n\ninclude/method/permutation_prefix_index.h\nstring\n-\nindex.h\ninclude/method/index.h\npermutation_utils.h\ninclude/method/permutation_utils.h\n\ninclude/method/pivot_neighb_common.h\nidtype.h\n-\nvector\n-\n\ninclude/method/pivot_neighb_invindx.h\nvector\n-\nmutex\n-\nindex.h\ninclude/method/index.h\npermutation_utils.h\ninclude/method/permutation_utils.h\nported_boost_progress.h\ninclude/method/ported_boost_progress.h\nmethod/pivot_neighb_common.h\n-\n\ninclude/method/proj_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_lp.h\ninclude/method/space/space_lp.h\nspace/space_vector.h\ninclude/method/space/space_vector.h\nmethod/vptree.h\ninclude/method/method/vptree.h\nparams.h\ninclude/method/params.h\nprojection.h\ninclude/method/projection.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/projection_index_incremental.h\nvector\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nprojection.h\ninclude/method/projection.h\nspace/space_vector.h\ninclude/method/space/space_vector.h\n\ninclude/method/seqsearch.h\nstring\n-\nindex.h\ninclude/method/index.h\n\ninclude/method/small_world_rand.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nset\n-\nlimits\n-\niostream\n-\nmap\n-\nunordered_set\n-\nthread\n-\nmemory\n-\nmutex\n-\ncondition_variable\n-\nqueue\n-\n\ninclude/method/small_world_rand_split.h\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nset\n-\nlimits\n-\niostream\n-\nmap\n-\nunordered_set\n-\nthread\n-\nmemory\n-\nmutex\n-\ncondition_variable\n-\nqueue\n-\n\ninclude/method/spatial_approx_tree.h\nstring\n-\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\n\ninclude/method/vptree.h\nstring\n-\nvector\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nported_boost_progress.h\ninclude/method/ported_boost_progress.h\n\ninclude/method/vptree_utils.h\nvector\n-\ncmath\n-\ncstdlib\n-\nobject.h\ninclude/method/object.h\nutils.h\ninclude/method/utils.h\n\ninclude/methodfactory.h\nstring\n-\niostream\n-\nindex.h\ninclude/index.h\nspace.h\ninclude/space.h\nlogging.h\ninclude/logging.h\n\ninclude/nndes/nndes-common.h\ncmath\n-\nvector\n-\niostream\n-\nfstream\n-\nalgorithm\n-\nlimits\n-\nboost/assert.hpp\n-\nboost/foreach.hpp\n-\nboost/progress.hpp\n-\nboost/random.hpp\n-\nmutex\n-\nboost/smart_ptr/detail/spinlock.hpp\ninclude/nndes/boost/smart_ptr/detail/spinlock.hpp\nomp.h\n-\n\ninclude/nndes/nndes.h\nnndes-common.h\ninclude/nndes/nndes-common.h\nported_boost_progress.h\ninclude/nndes/ported_boost_progress.h\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/params_cmdline.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\nparams.h\ninclude/params.h\n\ninclude/params_def.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/permutation_utils.h\nalgorithm\n-\niostream\n-\nunordered_set\n-\nspace.h\ninclude/space.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\npermutation_type.h\ninclude/permutation_type.h\ndistcomp.h\ninclude/distcomp.h\nutils.h\ninclude/utils.h\n\ninclude/ported_boost_progress.h\niostream\n-\nstring\n-\n\ninclude/pow.h\ncmath\n-\n\ninclude/projection.h\ndistcomp.h\ninclude/distcomp.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nstring\n-\ncstddef\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/randproj_util.h\nvector\n-\ndistcomp.h\ninclude/distcomp.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/report_intr_dim.h\nstring\n-\nobject.h\ninclude/object.h\n\ninclude/searchoracle.h\nstring\n-\ncmath\n-\nvector\n-\nsstream\n-\nobject.h\ninclude/object.h\nspace.h\ninclude/space.h\npow.h\ninclude/pow.h\nparams.h\ninclude/params.h\nexperimentconf.h\ninclude/experimentconf.h\nlogging.h\ninclude/logging.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/sort_arr_bi.h\ncstdint\n-\ncstdlib\n-\nstdexcept\n-\nvector\n-\nalgorithm\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bit_hamming.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_dummy.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_js.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\n\ninclude/space/space_leven.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nstring.h\n-\ndistcomp.h\ninclude/space/distcomp.h\nspace/space_string.h\ninclude/space/space/space_string.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_scalar.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_lp.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sparse_scalar.h\nstring\n-\nmap\n-\ncmath\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_scalar_fast.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector_inter.h\ninclude/space/space_sparse_vector_inter.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nostream\n-\nfunctional\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector_inter.h\ncstdint\n-\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nlimits\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sqfd.h\nstring\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_string.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/space/space_vector_gen.h\nstring\n-\nmap\n-\nstdexcept\n-\nspace/space_vector.h\n-\n\ninclude/space/space_word_embed.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/tune.h\nvector\n-\nmap\n-\nutility\n-\nmemory\n-\nstring\n-\nsstream\n-\nthread\n-\nexperimentconf.h\ninclude/experimentconf.h\nsearchoracle.h\ninclude/searchoracle.h\nlogging.h\ninclude/logging.h\nztimer.h\ninclude/ztimer.h\nexperiments.h\ninclude/experiments.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\nlshkit/include/lshkit.h\nlshkit/common.h\n-\nlshkit/composite.h\n-\nlshkit/lsh.h\n-\nlshkit/lsh-index.h\n-\nlshkit/sketch.h\n-\nlshkit/histogram.h\n-\nlshkit/metric.h\n-\nlshkit/kernel.h\n-\nlshkit/mplsh.h\n-\nlshkit/apost.h\n-\nlshkit/forest.h\n-\nlshkit/topk.h\n-\nlshkit/matrix.h\n-\nlshkit/eval.h\n-\nlshkit/spectral-hash.h\n-\nlshkit/multiprobelsh-fitdata.h\n-\nlshkit/multiprobelsh-tune.h\n-\n\nlshkit/include/lshkit/apost.h\nlshkit/common.h\n-\nlshkit/lsh.h\n-\nlshkit/composite.h\n-\nlshkit/metric.h\n-\nlshkit/lsh-index.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/archive.h\nvector\n-\niostream\n-\n\nlshkit/include/lshkit/common.h\ncmath\n-\nlimits\n-\nvector\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/foreach.hpp\n-\nboost/random.hpp\n-\nlshkit/concept.h\n-\n\nlshkit/include/lshkit/composite.h\n\nlshkit/include/lshkit/concept.h\nboost/concept/assert.hpp\n-\nboost/concept/usage.hpp\n-\n\nlshkit/include/lshkit/eval.h\ncmath\n-\nlimits\n-\nvector\n-\nalgorithm\n-\nfstream\n-\nboost/random.hpp\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/forest.h\nalgorithm\n-\nlshkit/common.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/histogram.h\n\nlshkit/include/lshkit/kernel.h\nfunctional\n-\n\nlshkit/include/lshkit/lsh-index.h\nstdexcept\n-\nalgorithm\n-\niostream\n-\nlshkit/common.h\n-\nlshkit/topk.h\n-\nlshkit/archive.h\n-\n\nlshkit/include/lshkit/lsh.h\n\nlshkit/include/lshkit/matrix-io.h\nlshkit/common.h\n-\ncassert\n-\nfstream\n-\nsys/types.h\n-\nsys/stat.h\n-\nfcntl.h\n-\nunistd.h\n-\nsys/mman.h\n-\nerrno.h\n-\n\nlshkit/include/lshkit/matrix.h\nfstream\n-\nboost/dynamic_bitset.hpp\n-\nlshkit/matrix-io.h\n-\n\nlshkit/include/lshkit/metric.h\nfunctional\n-\niostream\n-\n\nlshkit/include/lshkit/mplsh-model.h\nfstream\n-\nsstream\n-\nboost/math/distributions/gamma.hpp\n-\nboost/math/distributions/normal.hpp\n-\nlshkit/matrix.h\n-\n\nlshkit/include/lshkit/mplsh.h\nlshkit/common.h\n-\nlshkit/lsh.h\n-\nlshkit/composite.h\n-\nlshkit/metric.h\n-\nlshkit/lsh-index.h\n-\nlshkit/mplsh-model.h\n-\nlshkit/topk.h\n-\n\nlshkit/include/lshkit/multiprobelsh-fitdata.h\nlogging.h\nlshkit/include/lshkit/logging.h\ncstdlib\n-\nsstream\n-\ngsl/gsl_multifit.h\n-\n\nlshkit/include/lshkit/multiprobelsh-tune.h\nlogging.h\nlshkit/include/lshkit/logging.h\nboost/format.hpp\n-\nlshkit.h\n-\nlshkit/tune.h\n-\n\nlshkit/include/lshkit/sketch.h\nlshkit/matrix.h\n-\n\nlshkit/include/lshkit/spectral-hash.h\nmath.h\n-\ncmath\n-\nvector\n-\nalgorithm\n-\n\nlshkit/include/lshkit/topk.h\nvector\n-\nlimits\n-\nalgorithm\n-\nfstream\n-\niostream\n-\nlshkit/metric.h\n-\n\nlshkit/include/lshkit/tune.h\ncassert\n-\nvector\n-\nmap\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude src/CMakeFiles/NonMetricSpaceLib.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/CMakeFiles/NonMetricSpaceLib.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: src/cluster_util.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc > CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc -o CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: src/distcomp_bregman.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: src/distcomp_edist.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: src/distcomp_js.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: src/distcomp_rankcorr.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_5)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: src/distcomp_scalar.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_6)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: src/distcomp_sparse_scalar_fast.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_7)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: src/experimentconf.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_8)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc > CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc -o CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o: src/global.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_9)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/global.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/global.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc > CMakeFiles/NonMetricSpaceLib.dir/global.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/global.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc -o CMakeFiles/NonMetricSpaceLib.dir/global.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: src/init.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_10)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/init.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/init.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc > CMakeFiles/NonMetricSpaceLib.dir/init.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/init.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc -o CMakeFiles/NonMetricSpaceLib.dir/init.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: src/knnquery.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_11)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc > CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc -o CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o: src/logging.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_12)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/logging.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc > CMakeFiles/NonMetricSpaceLib.dir/logging.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/logging.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc -o CMakeFiles/NonMetricSpaceLib.dir/logging.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o: src/memory.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_13)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/memory.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc > CMakeFiles/NonMetricSpaceLib.dir/memory.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/memory.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc -o CMakeFiles/NonMetricSpaceLib.dir/memory.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: src/params.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_14)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/params.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/params.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc > CMakeFiles/NonMetricSpaceLib.dir/params.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/params.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc -o CMakeFiles/NonMetricSpaceLib.dir/params.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: src/params_cmdline.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_15)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc > CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc -o CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: src/projection.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_16)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/projection.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc > CMakeFiles/NonMetricSpaceLib.dir/projection.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/projection.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc -o CMakeFiles/NonMetricSpaceLib.dir/projection.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: src/query.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_17)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/query.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/query.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc > CMakeFiles/NonMetricSpaceLib.dir/query.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/query.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc -o CMakeFiles/NonMetricSpaceLib.dir/query.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: src/randproj_util.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_18)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc > CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc -o CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: src/rangequery.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_19)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc > CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc -o CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: src/searchoracle.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_20)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc > CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc -o CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: src/space.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_21)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc > CMakeFiles/NonMetricSpaceLib.dir/space.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc -o CMakeFiles/NonMetricSpaceLib.dir/space.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: src/utils.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_22)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/utils.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc > CMakeFiles/NonMetricSpaceLib.dir/utils.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/utils.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc -o CMakeFiles/NonMetricSpaceLib.dir/utils.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: src/distcomp_lp.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_23)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc > CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc -o CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: src/space/space_bit_hamming.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_24)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: src/space/space_bregman.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_25)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: src/space/space_dummy.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_26)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: src/space/space_js.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_27)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: src/space/space_lp.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_28)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: src/space/space_scalar.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_29)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: src/space/space_sparse_lp.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_30)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: src/space/space_sparse_scalar_fast.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_31)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: src/space/space_sparse_vector.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_32)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: src/space/space_sparse_vector_inter.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_33)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: src/space/space_sqfd.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_34)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: src/space/space_string.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_35)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: src/space/space_vector.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_36)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: src/space/space_word_embed.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_37)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc > CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc -o CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: src/method/perm_bin_vptree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_38)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: src/method/perm_index_incr_bin.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_39)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc > CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: src/method/perm_lsh_bin.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_40)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc > CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: src/method/permutation_inverted_index.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_41)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc > CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: src/method/permutation_prefix_index.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_42)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc > CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: src/method/pivot_neighb_invindx.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_43)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc > CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: src/method/proj_vptree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_44)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: src/method/projection_index_incremental.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_45)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc > CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: src/method/seqsearch.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_46)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc > CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: src/method/small_world_rand_split.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_47)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc > CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: src/method/spatial_approx_tree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_48)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: src/method/vptree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_49)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: src/method/bbtree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_50)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: src/method/dummy.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_51)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc > CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: src/method/ghtree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_52)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: src/method/list_clusters.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_53)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc > CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: src/method/lsh.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_54)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc > CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: src/method/lsh_multiprobe.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_55)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc > CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: src/method/lsh_space.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_56)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc > CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: src/method/multi_index.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_57)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc > CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: src/method/multi_vantage_point_tree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_58)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc > CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: src/method/nndes.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_59)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc > CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: src/method/nonmetr_list_clust.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_60)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc > CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: src/method/omedrank.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_61)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc > CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: src/method/hnsw_distfunc_opt.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_62)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc > CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: src/method/hnsw.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_63)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc > CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: src/CMakeFiles/NonMetricSpaceLib.dir/flags.make\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: src/method/small_world_rand.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_64)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc > CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.i\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc -o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.s\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.requires:\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.provides: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.provides.build\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.provides\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.provides.build: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\n\n# Object files for target NonMetricSpaceLib\nNonMetricSpaceLib_OBJECTS = \\\n\"CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\" \\\n\"CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\"\n\n# External object files for target NonMetricSpaceLib\nNonMetricSpaceLib_EXTERNAL_OBJECTS =\n\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/build.make\nrelease/libNonMetricSpaceLib.a: src/CMakeFiles/NonMetricSpaceLib.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX static library ../release/libNonMetricSpaceLib.a\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -P CMakeFiles/NonMetricSpaceLib.dir/cmake_clean_target.cmake\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/NonMetricSpaceLib.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/CMakeFiles/NonMetricSpaceLib.dir/build: release/libNonMetricSpaceLib.a\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/build\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o.requires\nsrc/CMakeFiles/NonMetricSpaceLib.dir/requires: src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o.requires\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/requires\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -P CMakeFiles/NonMetricSpaceLib.dir/cmake_clean.cmake\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/clean\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\"\n  \"CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\"\n  \"../release/libNonMetricSpaceLib.pdb\"\n  \"../release/libNonMetricSpaceLib.a\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/NonMetricSpaceLib.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/cmake_clean_target.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../release/libNonMetricSpaceLib.a\"\n)\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/cluster_util.cc\n include/cluster_util.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_bregman.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/permutation_type.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_edist.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/permutation_type.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_js.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/permutation_type.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_lp.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/logging.h\n include/permutation_type.h\n include/pow.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_rankcorr.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/permutation_type.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_scalar.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/idtype.h\n include/permutation_type.h\n include/simdutils.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.cc\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.cc\n include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/factory/init_methods.h\n include/factory/init_spaces.h\n include/factory/method/bbtree.h\n include/factory/method/dummy.h\n include/factory/method/ghtree.h\n include/factory/method/hnsw.h\n include/factory/method/list_clusters.h\n include/factory/method/lsh.h\n include/factory/method/lsh_multiprobe.h\n include/factory/method/multi_index.h\n include/factory/method/multi_vantage_point_tree.h\n include/factory/method/nndes.h\n include/factory/method/nonmetr_list_clust.h\n include/factory/method/omedrank.h\n include/factory/method/perm_bin_vptree.h\n include/factory/method/perm_index_incr_bin.h\n include/factory/method/perm_lsh_bin.h\n include/factory/method/permutation_inverted_index.h\n include/factory/method/permutation_prefix_index.h\n include/factory/method/pivot_neighb_invindx.h\n include/factory/method/proj_vptree.h\n include/factory/method/projection_index_incremental.h\n include/factory/method/seqsearch.h\n include/factory/method/small_world_rand.h\n include/factory/method/spatial_approx_tree.h\n include/factory/method/vptree.h\n include/factory/space/space_bit_hamming.h\n include/factory/space/space_bregman.h\n include/factory/space/space_dummy.h\n include/factory/space/space_edist.h\n include/factory/space/space_js.h\n include/factory/space/space_lp.h\n include/factory/space/space_savch.h\n include/factory/space/space_scalar.h\n include/factory/space/space_sparse_lp.h\n include/factory/space/space_sparse_scalar.h\n include/factory/space/space_sqfd.h\n include/factory/space/space_word_embed.h\n include/global.h\n include/idtype.h\n include/index.h\n include/init.h\n include/knnquery.h\n include/logging.h\n include/method/bbtree.h\n include/method/dummy.h\n include/method/ghtree.h\n include/method/hnsw.h\n include/method/lcstrategy.h\n include/method/list_clusters.h\n include/method/lsh.h\n include/method/lsh_multiprobe.h\n include/method/multi_index.h\n include/method/multi_vantage_point_tree.h\n include/method/nndes.h\n include/method/nonmetr_list_clust.h\n include/method/omedrank.h\n include/method/perm_bin_vptree.h\n include/method/perm_index_incr_bin.h\n include/method/perm_lsh_bin.h\n include/method/permutation_inverted_index.h\n include/method/permutation_prefix_index.h\n include/method/pivot_neighb_common.h\n include/method/pivot_neighb_invindx.h\n include/method/proj_vptree.h\n include/method/projection_index_incremental.h\n include/method/seqsearch.h\n include/method/small_world_rand.h\n include/method/small_world_rand_split.h\n include/method/spatial_approx_tree.h\n include/method/vptree.h\n include/methodfactory.h\n include/nndes/nndes-common.h\n include/nndes/nndes.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/pow.h\n include/projection.h\n include/query.h\n include/rangequery.h\n include/searchoracle.h\n include/simdutils.h\n include/space.h\n include/space/space_bit_hamming.h\n include/space/space_bregman.h\n include/space/space_dummy.h\n include/space/space_js.h\n include/space/space_leven.h\n include/space/space_lp.h\n include/space/space_scalar.h\n include/space/space_sparse_lp.h\n include/space/space_sparse_scalar.h\n include/space/space_sparse_scalar_fast.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/space/space_sqfd.h\n include/space/space_string.h\n include/space/space_vector.h\n include/space/space_vector_gen.h\n include/space/space_word_embed.h\n include/spacefactory.h\n include/utils.h\n lshkit/include/lshkit.h\n lshkit/include/lshkit/apost.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/eval.h\n lshkit/include/lshkit/forest.h\n lshkit/include/lshkit/histogram.h\n lshkit/include/lshkit/kernel.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/multiprobelsh-fitdata.h\n lshkit/include/lshkit/multiprobelsh-tune.h\n lshkit/include/lshkit/sketch.h\n lshkit/include/lshkit/spectral-hash.h\n lshkit/include/lshkit/topk.h\n lshkit/include/lshkit/tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/knnquery.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.cc\n include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.cc\n include/logging.h\n include/memory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/bbtree.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/bbtree.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/dummy.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/dummy.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/ghtree.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/ghtree.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/hnsw.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/hnsw.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/list_clusters.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/lcstrategy.h\n include/method/list_clusters.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/lsh.h\n include/method/lsh_space.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\n lshkit/include/lshkit.h\n lshkit/include/lshkit/apost.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/eval.h\n lshkit/include/lshkit/forest.h\n lshkit/include/lshkit/histogram.h\n lshkit/include/lshkit/kernel.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/multiprobelsh-fitdata.h\n lshkit/include/lshkit/multiprobelsh-tune.h\n lshkit/include/lshkit/sketch.h\n lshkit/include/lshkit/spectral-hash.h\n lshkit/include/lshkit/topk.h\n lshkit/include/lshkit/tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/lsh_multiprobe.h\n include/method/lsh_space.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\n lshkit/include/lshkit.h\n lshkit/include/lshkit/apost.h\n lshkit/include/lshkit/archive.h\n lshkit/include/lshkit/common.h\n lshkit/include/lshkit/composite.h\n lshkit/include/lshkit/concept.h\n lshkit/include/lshkit/eval.h\n lshkit/include/lshkit/forest.h\n lshkit/include/lshkit/histogram.h\n lshkit/include/lshkit/kernel.h\n lshkit/include/lshkit/lsh-index.h\n lshkit/include/lshkit/lsh.h\n lshkit/include/lshkit/matrix-io.h\n lshkit/include/lshkit/matrix.h\n lshkit/include/lshkit/metric.h\n lshkit/include/lshkit/mplsh-model.h\n lshkit/include/lshkit/mplsh.h\n lshkit/include/lshkit/multiprobelsh-fitdata.h\n lshkit/include/lshkit/multiprobelsh-tune.h\n lshkit/include/lshkit/sketch.h\n lshkit/include/lshkit/spectral-hash.h\n lshkit/include/lshkit/topk.h\n lshkit/include/lshkit/tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/lsh_space.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/knnquery.h\n include/logging.h\n include/method/lsh_space.h\n include/object.h\n include/permutation_type.h\n include/query.h\n include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_index.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/method/multi_index.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/multi_vantage_point_tree.h\n include/method/multi_vantage_point_tree_utils.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nndes.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/nndes.h\n include/nndes/nndes-common.h\n include/nndes/nndes.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc\n include/cluster_util.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/nonmetr_list_clust.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/omedrank.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/omedrank.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/projection.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/method/perm_bin_vptree.h\n include/method/vptree.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/pow.h\n include/query.h\n include/rangequery.h\n include/report_intr_dim.h\n include/searchoracle.h\n include/simdutils.h\n include/space.h\n include/space/space_bit_hamming.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/incremental_quick_select.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/perm_index_incr_bin.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/perm_lsh_bin.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/incremental_quick_select.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/permutation_inverted_index.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/permutation_prefix_index.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/incremental_quick_select.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/pivot_neighb_common.h\n include/method/pivot_neighb_invindx.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/method/proj_vptree.h\n include/method/vptree.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/pow.h\n include/projection.h\n include/query.h\n include/rangequery.h\n include/report_intr_dim.h\n include/searchoracle.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/projection_index_incremental.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/incremental_quick_select.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/projection_index_incremental.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/projection.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/seqsearch.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/method/seqsearch.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/small_world_rand.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/sort_arr_bi.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/small_world_rand_split.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/small_world_rand_split.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/spatial_approx_tree.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.cc\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/logging.h\n include/method/vptree.h\n include/method/vptree_utils.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/pow.h\n include/query.h\n include/rangequery.h\n include/searchoracle.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/params.h\n include/params_cmdline.h\n include/params_def.h\n include/permutation_type.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/projection.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/knnquery.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/permutation_utils.h\n include/projection.h\n include/query.h\n include/randproj_util.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/query.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/query.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/randproj_util.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/logging.h\n include/permutation_type.h\n include/randproj_util.h\n include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/rangequery.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/query.h\n include/rangequery.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/searchoracle.cc\n include/eval_metrics.h\n include/eval_results.h\n include/experimentconf.h\n include/experiments.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/index.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/memory.h\n include/meta_analysis.h\n include/method/vptree.h\n include/method/vptree_utils.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/ported_boost_progress.h\n include/pow.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/searchoracle.h\n include/space.h\n include/tune.h\n include/utils.h\n include/ztimer.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/space.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bit_hamming.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/knnquery.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/permutation_utils.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_bit_hamming.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_bregman.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_dummy.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_dummy.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_js.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_js.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_lp.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_scalar.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_scalar.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_lp.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_lp.h\n include/space/space_sparse_lp.h\n include/space/space_sparse_vector.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sparse_scalar_fast.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sparse_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_sqfd.cc\n /usr/include/eigen3/Eigen/Cholesky\n /usr/include/eigen3/Eigen/Core\n /usr/include/eigen3/Eigen/Dense\n /usr/include/eigen3/Eigen/Eigen2Support\n /usr/include/eigen3/Eigen/Eigenvalues\n /usr/include/eigen3/Eigen/Geometry\n /usr/include/eigen3/Eigen/Householder\n /usr/include/eigen3/Eigen/Jacobi\n /usr/include/eigen3/Eigen/LU\n /usr/include/eigen3/Eigen/QR\n /usr/include/eigen3/Eigen/SVD\n /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h\n /usr/include/eigen3/Eigen/src/Cholesky/LLT.h\n /usr/include/eigen3/Eigen/src/Cholesky/LLT_MKL.h\n /usr/include/eigen3/Eigen/src/Core/Array.h\n /usr/include/eigen3/Eigen/src/Core/ArrayBase.h\n /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h\n /usr/include/eigen3/Eigen/src/Core/Assign.h\n /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h\n /usr/include/eigen3/Eigen/src/Core/BandMatrix.h\n /usr/include/eigen3/Eigen/src/Core/Block.h\n /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h\n /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h\n /usr/include/eigen3/Eigen/src/Core/CoreIterators.h\n /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h\n /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h\n /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h\n /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h\n /usr/include/eigen3/Eigen/src/Core/DenseBase.h\n /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h\n /usr/include/eigen3/Eigen/src/Core/DenseStorage.h\n /usr/include/eigen3/Eigen/src/Core/Diagonal.h\n /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h\n /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h\n /usr/include/eigen3/Eigen/src/Core/Dot.h\n /usr/include/eigen3/Eigen/src/Core/EigenBase.h\n /usr/include/eigen3/Eigen/src/Core/Flagged.h\n /usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h\n /usr/include/eigen3/Eigen/src/Core/Functors.h\n /usr/include/eigen3/Eigen/src/Core/Fuzzy.h\n /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h\n /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h\n /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h\n /usr/include/eigen3/Eigen/src/Core/IO.h\n /usr/include/eigen3/Eigen/src/Core/Map.h\n /usr/include/eigen3/Eigen/src/Core/MapBase.h\n /usr/include/eigen3/Eigen/src/Core/MathFunctions.h\n /usr/include/eigen3/Eigen/src/Core/Matrix.h\n /usr/include/eigen3/Eigen/src/Core/MatrixBase.h\n /usr/include/eigen3/Eigen/src/Core/NestByValue.h\n /usr/include/eigen3/Eigen/src/Core/NoAlias.h\n /usr/include/eigen3/Eigen/src/Core/NumTraits.h\n /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h\n /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h\n /usr/include/eigen3/Eigen/src/Core/ProductBase.h\n /usr/include/eigen3/Eigen/src/Core/Random.h\n /usr/include/eigen3/Eigen/src/Core/Redux.h\n /usr/include/eigen3/Eigen/src/Core/Ref.h\n /usr/include/eigen3/Eigen/src/Core/Replicate.h\n /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h\n /usr/include/eigen3/Eigen/src/Core/Reverse.h\n /usr/include/eigen3/Eigen/src/Core/Select.h\n /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h\n /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h\n /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h\n /usr/include/eigen3/Eigen/src/Core/StableNorm.h\n /usr/include/eigen3/Eigen/src/Core/Stride.h\n /usr/include/eigen3/Eigen/src/Core/Swap.h\n /usr/include/eigen3/Eigen/src/Core/Transpose.h\n /usr/include/eigen3/Eigen/src/Core/Transpositions.h\n /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h\n /usr/include/eigen3/Eigen/src/Core/VectorBlock.h\n /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h\n /usr/include/eigen3/Eigen/src/Core/Visitor.h\n /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h\n /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h\n /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h\n /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h\n /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h\n /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h\n /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h\n /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h\n /usr/include/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h\n /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h\n /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h\n /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h\n /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h\n /usr/include/eigen3/Eigen/src/Core/util/Constants.h\n /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\n /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h\n /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h\n /usr/include/eigen3/Eigen/src/Core/util/Macros.h\n /usr/include/eigen3/Eigen/src/Core/util/Memory.h\n /usr/include/eigen3/Eigen/src/Core/util/Meta.h\n /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\n /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h\n /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Block.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Cwise.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/All.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/LU.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Lazy.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Macros.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/MathFunctions.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Memory.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Meta.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/Minor.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/QR.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/SVD.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h\n /usr/include/eigen3/Eigen/src/Eigen2Support/VectorBlock.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/./ComplexSchur.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/./HessenbergDecomposition.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/./RealQZ.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/./RealSchur.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/./Tridiagonalization.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h\n /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h\n /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h\n /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h\n /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h\n /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h\n /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h\n /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h\n /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h\n /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h\n /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h\n /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h\n /usr/include/eigen3/Eigen/src/Geometry/Scaling.h\n /usr/include/eigen3/Eigen/src/Geometry/Transform.h\n /usr/include/eigen3/Eigen/src/Geometry/Translation.h\n /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h\n /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h\n /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h\n /usr/include/eigen3/Eigen/src/Householder/Householder.h\n /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h\n /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h\n /usr/include/eigen3/Eigen/src/LU/Determinant.h\n /usr/include/eigen3/Eigen/src/LU/FullPivLU.h\n /usr/include/eigen3/Eigen/src/LU/Inverse.h\n /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h\n /usr/include/eigen3/Eigen/src/LU/PartialPivLU_MKL.h\n /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h\n /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h\n /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h\n /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h\n /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h\n /usr/include/eigen3/Eigen/src/QR/HouseholderQR_MKL.h\n /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h\n /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h\n /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h\n /usr/include/eigen3/Eigen/src/misc/Image.h\n /usr/include/eigen3/Eigen/src/misc/Kernel.h\n /usr/include/eigen3/Eigen/src/misc/Solve.h\n /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h\n /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h\n /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h\n /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h\n /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h\n /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h\n /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sqfd.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_string.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_string.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_vector.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_vector.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space/space_word_embed.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/experimentconf.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_vector.h\n include/space/space_word_embed.h\n include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.cc\n include/floatdiff.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/utils.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: src/cluster_util.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/cluster_util.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: src/distcomp_bregman.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: src/distcomp_edist.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: src/distcomp_js.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: src/distcomp_lp.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: src/distcomp_rankcorr.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: src/distcomp_scalar.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: src/distcomp_sparse_scalar_fast.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/space/space_sparse_vector_inter.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: src/experimentconf.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o: src/global.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o: include/global.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: src/init.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/init_methods.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/init_spaces.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/bbtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/ghtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/hnsw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/list_clusters.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/lsh_multiprobe.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/multi_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/multi_vantage_point_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/nndes.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/nonmetr_list_clust.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/omedrank.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/perm_bin_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/perm_index_incr_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/perm_lsh_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/permutation_inverted_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/permutation_prefix_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/pivot_neighb_invindx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/proj_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/projection_index_incremental.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/seqsearch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/small_world_rand.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/spatial_approx_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_bit_hamming.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_bregman.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_js.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_savch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_scalar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_sparse_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_sparse_scalar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_sqfd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/factory/space/space_word_embed.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/init.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/bbtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/ghtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/hnsw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/lcstrategy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/list_clusters.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/lsh_multiprobe.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/multi_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/multi_vantage_point_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/nndes.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/nonmetr_list_clust.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/omedrank.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/perm_bin_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/perm_index_incr_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/perm_lsh_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/permutation_inverted_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/permutation_prefix_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/pivot_neighb_common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/pivot_neighb_invindx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/proj_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/projection_index_incremental.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/seqsearch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/small_world_rand.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/small_world_rand_split.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/spatial_approx_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/methodfactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/nndes/nndes-common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/nndes/nndes.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/projection.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/searchoracle.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_bit_hamming.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_js.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_leven.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_scalar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sparse_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sparse_scalar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sparse_scalar_fast.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sparse_vector_inter.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_sqfd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_string.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_vector_gen.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/space/space_word_embed.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/spacefactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/apost.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/archive.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/composite.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/concept.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/eval.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/forest.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/histogram.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/kernel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/lsh-index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/matrix-io.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/matrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/metric.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/mplsh-model.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/mplsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/multiprobelsh-fitdata.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/multiprobelsh-tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/sketch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/spectral-hash.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/topk.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o: lshkit/include/lshkit/tune.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: src/knnquery.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o: src/logging.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o: include/logging.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o: src/memory.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o: include/memory.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: src/method/bbtree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/method/bbtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: src/method/dummy.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/method/dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: src/method/ghtree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/method/ghtree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: src/method/hnsw.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/method/hnsw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: src/method/hnsw_distfunc_opt.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/method/hnsw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: src/method/list_clusters.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/method/lcstrategy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/method/list_clusters.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: src/method/lsh.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/method/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/method/lsh_space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/apost.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/archive.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/composite.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/concept.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/eval.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/forest.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/histogram.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/kernel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/lsh-index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/matrix-io.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/matrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/metric.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/mplsh-model.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/mplsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/multiprobelsh-fitdata.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/multiprobelsh-tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/sketch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/spectral-hash.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/topk.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o: lshkit/include/lshkit/tune.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/capabilities.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_flag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/atomic_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/casts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/int_sizes.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/lockpool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/operations_lockfree.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/ops_emulated.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/platform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/detail/storage_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/atomic/fences.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset/dynamic_bitset.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/dynamic_bitset_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/mpl/mpl_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/adapt_struct.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/extension.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/algorithm/transformation/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/generation/ignore.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/cons_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/empty_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/reverse_cons.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/list_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/list/nil.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/container/vector/vector_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/std_pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/include/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/basic_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/deref_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/adapt_value_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segment_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/detail/segmented_next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/key_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/convert_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/mpl/fusion_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/segmented_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/iterator/value_of_data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/enable_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/comparison/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/segments.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic/value_at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/intrinsic_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/manip.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/detail/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/in.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/sequence/io/out.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/as_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/as_fusion_element.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/category_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_mpl_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/mpl_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/pp_round.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_segmented.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/is_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/iterator_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/sequence_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/tag_of_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/support/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/detail/tuple_expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/make_tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/tuple/tuple_tie.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/iterator_range/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/joint_view/joint_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/advance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/begin_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/deref_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/distance_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/next_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/prior_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/detail/value_of_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/fusion/view/single_view/single_view_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/calculate_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/constants/constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/complement.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/common_error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/detail/derived_accessors.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/distributions/normal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/error_handling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/bernoulli_details.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/erf_inv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/gamma_inva.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_inverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/igamma_large.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lanczos_sse2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/lgamma_small.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/unchecked_factorial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/erf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/expm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/gamma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/lanczos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/log1p.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/powm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sqrt1pm1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/trunc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/big_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/polynomial_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner1_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner2_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_11.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_12.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_13.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_14.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_15.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_16.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_17.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_18.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_19.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/detail/rational_horner3_9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/fraction.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/rational.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/roots.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/series.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/toms748_solve.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/memory_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/move.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/empty_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inherit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_sequence.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_tags.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pop_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/item.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/pop_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/aux_/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector20.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector30.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector40.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/lowest_bit.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/not_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_unary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/local.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/self.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/to_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/detail/tuple_basic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/tuple/tuple_comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/cv_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/dmc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/encode_decode_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/int_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/integral_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/message.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/modifiers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/msvc/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/native.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/pointers_data_members.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/register_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/template_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_encoding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/type_template_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/typeof_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/unsupported.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector100.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector150.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector200.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/typeof/vector50.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/result_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: src/method/lsh_multiprobe.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/method/lsh_multiprobe.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/method/lsh_space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/apost.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/archive.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/composite.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/concept.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/eval.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/forest.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/histogram.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/kernel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/lsh-index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/lsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/matrix-io.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/matrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/metric.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/mplsh-model.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/mplsh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/multiprobelsh-fitdata.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/multiprobelsh-tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/sketch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/spectral-hash.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/topk.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o: lshkit/include/lshkit/tune.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: src/method/lsh_space.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/method/lsh_space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o: include/simdutils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: src/method/multi_index.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/method/multi_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/methodfactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: src/method/multi_vantage_point_tree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/method/multi_vantage_point_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/method/multi_vantage_point_tree_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/aligned_storage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/explicit_operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/reference_content.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/foreach_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/alt_sstream_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/compat_workarounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/config_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/msvc_disambiguater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/unset_macros.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_gcc-2_95.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/detail/workarounds_stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/exceptions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/feed_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/format_implementation.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/free_funcs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/group.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/internals_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/format/parsing.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/integer_mask.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer/static_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/none_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/bad_optional_access.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/optional/optional_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/pending/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/paren.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/progress.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/additive_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/bernoulli_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/cauchy_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/const_mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/disable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/enable_warnings.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/generator_seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/integer_log2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/large_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/operators.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/polynomial.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/seed_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/signed_unsigned_tools.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/uniform_int_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/detail/vector_io.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discard_block.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/discrete_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/exponential_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/extreme_value_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/fisher_f_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/gamma_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/generate_canonical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/geometric_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/independent_bits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/inversive_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lagged_fibonacci.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_congruential.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/linear_feedback_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/lognormal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/mersenne_twister.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/negative_binomial_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/non_central_chi_squared_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/normal_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_constant_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/piecewise_linear_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/poisson_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/random_number_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/ranlux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/seed_seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_order.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/shuffle_output.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/student_t_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/subtract_with_carry.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/taus88.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/triangle_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_01.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_int_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_on_sphere.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_real_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/uniform_smallint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/variate_generator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/weibull_distribution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/random/xor_combine.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/timer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_nothrow_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_move_constructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_assignable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_nothrow_move_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/compare_pointees.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_prefix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/detail/in_place_factory_suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/in_place_factory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: src/method/nndes.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/method/nndes.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/nndes/nndes-common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/nndes/nndes.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: src/method/nonmetr_list_clust.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/cluster_util.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/method/nonmetr_list_clust.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: src/method/omedrank.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/method/omedrank.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/projection.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: src/method/perm_bin_vptree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/method/perm_bin_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/report_intr_dim.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/searchoracle.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/space/space_bit_hamming.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: src/method/perm_index_incr_bin.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/incremental_quick_select.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/method/perm_index_incr_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: src/method/perm_lsh_bin.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/method/perm_lsh_bin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: src/method/permutation_inverted_index.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/incremental_quick_select.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/method/permutation_inverted_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: src/method/permutation_prefix_index.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/method/permutation_prefix_index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: src/method/pivot_neighb_invindx.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/incremental_quick_select.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/method/pivot_neighb_common.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/method/pivot_neighb_invindx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: src/method/proj_vptree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/method/proj_vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/projection.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/report_intr_dim.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/searchoracle.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/spacefactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: src/method/projection_index_incremental.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/incremental_quick_select.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/method/projection_index_incremental.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/projection.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: src/method/seqsearch.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/method/seqsearch.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: src/method/small_world_rand.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/method/small_world_rand.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/sort_arr_bi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: src/method/small_world_rand_split.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/method/small_world_rand_split.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: src/method/spatial_approx_tree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/method/spatial_approx_tree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: src/method/vptree.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/method/vptree_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/methodfactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/searchoracle.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: src/params.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: src/params_cmdline.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/params_cmdline.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/params_def.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: src/projection.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/projection.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/randproj_util.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: src/query.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: src/randproj_util.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/randproj_util.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o: include/simdutils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: src/rangequery.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: src/searchoracle.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/eval_metrics.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/eval_results.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/experiments.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/gold_standard.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/index.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/knnqueue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/memory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/meta_analysis.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/method/vptree.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/method/vptree_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/methodfactory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/params.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/pow.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/query_creator.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/searchoracle.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/tune.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o: include/ztimer.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: src/space.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: src/space/space_bit_hamming.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/knnquery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/query.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/rangequery.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/space/space_bit_hamming.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: src/space/space_bregman.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: src/space/space_dummy.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/space/space_dummy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: src/space/space_js.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/space/space_js.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: src/space/space_lp.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: src/space/space_scalar.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/space/space_scalar.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: src/space/space_sparse_lp.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/space/space_sparse_lp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: src/space/space_sparse_scalar_fast.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/space/space_sparse_scalar_fast.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/space/space_sparse_vector_inter.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: src/space/space_sparse_vector.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: src/space/space_sparse_vector_inter.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/space/space_sparse_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/space/space_sparse_vector_inter.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: src/space/space_sqfd.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Cholesky\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Core\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Dense\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Eigen2Support\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Eigenvalues\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Geometry\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Householder\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/Jacobi\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/LU\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/QR\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/SVD\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Array.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/BandMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Block.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CoreIterators.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Diagonal.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Dot.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/EigenBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Flagged.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Functors.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Fuzzy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/IO.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Map.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/MapBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/MathFunctions.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Matrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/MatrixBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/NestByValue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/NoAlias.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/NumTraits.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/ProductBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Random.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Redux.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Ref.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Replicate.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Reverse.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Select.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/StableNorm.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Stride.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Swap.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpose.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpositions.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorBlock.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/Visitor.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Constants.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Macros.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Memory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Meta.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Block.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Cwise.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/All.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/LU.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Lazy.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Macros.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/MathFunctions.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Memory.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Meta.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/Minor.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/QR.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/SVD.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigen2Support/VectorBlock.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/./ComplexSchur.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/./HessenbergDecomposition.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/./RealQZ.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/./RealSchur.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/./Tridiagonalization.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Scaling.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Transform.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Translation.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Householder/Householder.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/Determinant.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/FullPivLU.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/Inverse.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/misc/Image.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/misc/Kernel.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/misc/Solve.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/space/space_sqfd.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: src/space/space_string.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/space/space_string.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: src/space/space_vector.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: src/space/space_word_embed.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/distcomp.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/experimentconf.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/object.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/permutation_type.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/simdutils.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/space.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/space/space_word_embed.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o: include/utils.h\n\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: src/utils.cc\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: include/floatdiff.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: include/global.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: include/idtype.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: include/logging.h\nsrc/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o: include/utils.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/ar cq ../release/libNonMetricSpaceLib.a  CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o CMakeFiles/NonMetricSpaceLib.dir/global.cc.o CMakeFiles/NonMetricSpaceLib.dir/init.cc.o CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o CMakeFiles/NonMetricSpaceLib.dir/params.cc.o CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o CMakeFiles/NonMetricSpaceLib.dir/query.cc.o CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o CMakeFiles/NonMetricSpaceLib.dir/space.cc.o CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\n/opt/rh/devtoolset-2/root/usr/bin/ranlib ../release/libNonMetricSpaceLib.a\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 1\nCMAKE_PROGRESS_2 = 2\nCMAKE_PROGRESS_3 = 3\nCMAKE_PROGRESS_4 = 4\nCMAKE_PROGRESS_5 = 5\nCMAKE_PROGRESS_6 = 6\nCMAKE_PROGRESS_7 = 7\nCMAKE_PROGRESS_8 = 8\nCMAKE_PROGRESS_9 = 9\nCMAKE_PROGRESS_10 = 10\nCMAKE_PROGRESS_11 = 11\nCMAKE_PROGRESS_12 = 12\nCMAKE_PROGRESS_13 = 13\nCMAKE_PROGRESS_14 = 14\nCMAKE_PROGRESS_15 = 15\nCMAKE_PROGRESS_16 = 16\nCMAKE_PROGRESS_17 = 17\nCMAKE_PROGRESS_18 = 18\nCMAKE_PROGRESS_19 = 19\nCMAKE_PROGRESS_20 = 20\nCMAKE_PROGRESS_21 = 21\nCMAKE_PROGRESS_22 = 22\nCMAKE_PROGRESS_23 = 23\nCMAKE_PROGRESS_24 = 24\nCMAKE_PROGRESS_25 = 25\nCMAKE_PROGRESS_26 = 26\nCMAKE_PROGRESS_27 = 27\nCMAKE_PROGRESS_28 = 28\nCMAKE_PROGRESS_29 = 29\nCMAKE_PROGRESS_30 = 30\nCMAKE_PROGRESS_31 = 31\nCMAKE_PROGRESS_32 = 32\nCMAKE_PROGRESS_33 = 33\nCMAKE_PROGRESS_34 = 34\nCMAKE_PROGRESS_35 = 35\nCMAKE_PROGRESS_36 = 36\nCMAKE_PROGRESS_37 = 37\nCMAKE_PROGRESS_38 = 38\nCMAKE_PROGRESS_39 = 39\nCMAKE_PROGRESS_40 = 40\nCMAKE_PROGRESS_41 = 41\nCMAKE_PROGRESS_42 = 42\nCMAKE_PROGRESS_43 = 43\nCMAKE_PROGRESS_44 = 44\nCMAKE_PROGRESS_45 = 45\nCMAKE_PROGRESS_46 = 46\nCMAKE_PROGRESS_47 = 47\nCMAKE_PROGRESS_48 = 48\nCMAKE_PROGRESS_49 = 49\nCMAKE_PROGRESS_50 = 50\nCMAKE_PROGRESS_51 = 51\nCMAKE_PROGRESS_52 = 52\nCMAKE_PROGRESS_53 = 53\nCMAKE_PROGRESS_54 = 54\nCMAKE_PROGRESS_55 = 55\nCMAKE_PROGRESS_56 = 56\nCMAKE_PROGRESS_57 = 57\nCMAKE_PROGRESS_58 = 58\nCMAKE_PROGRESS_59 = 59\nCMAKE_PROGRESS_60 = 60\nCMAKE_PROGRESS_61 = 61\nCMAKE_PROGRESS_62 = 62\nCMAKE_PROGRESS_63 = 63\nCMAKE_PROGRESS_64 = 64\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc\niostream\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/dummy_app.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude src/CMakeFiles/dummy_app.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/CMakeFiles/dummy_app.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/CMakeFiles/dummy_app.dir/flags.make\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o: src/CMakeFiles/dummy_app.dir/flags.make\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o: src/dummy_app.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/dummy_app.dir/dummy_app.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/dummy_app.dir/dummy_app.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/dummy_app.dir/dummy_app.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc > CMakeFiles/dummy_app.dir/dummy_app.cc.i\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/dummy_app.dir/dummy_app.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc -o CMakeFiles/dummy_app.dir/dummy_app.cc.s\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o.requires:\n.PHONY : src/CMakeFiles/dummy_app.dir/dummy_app.cc.o.requires\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o.provides: src/CMakeFiles/dummy_app.dir/dummy_app.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/dummy_app.cc.o.provides.build\n.PHONY : src/CMakeFiles/dummy_app.dir/dummy_app.cc.o.provides\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o.provides.build: src/CMakeFiles/dummy_app.dir/dummy_app.cc.o\n\n# Object files for target dummy_app\ndummy_app_OBJECTS = \\\n\"CMakeFiles/dummy_app.dir/dummy_app.cc.o\"\n\n# External object files for target dummy_app\ndummy_app_EXTERNAL_OBJECTS =\n\nrelease/dummy_app: src/CMakeFiles/dummy_app.dir/dummy_app.cc.o\nrelease/dummy_app: src/CMakeFiles/dummy_app.dir/build.make\nrelease/dummy_app: release/libNonMetricSpaceLib.a\nrelease/dummy_app: release/liblshkit.a\nrelease/dummy_app: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/dummy_app: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/dummy_app: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/dummy_app: src/CMakeFiles/dummy_app.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/dummy_app\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/dummy_app.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/CMakeFiles/dummy_app.dir/build: release/dummy_app\n.PHONY : src/CMakeFiles/dummy_app.dir/build\n\nsrc/CMakeFiles/dummy_app.dir/requires: src/CMakeFiles/dummy_app.dir/dummy_app.cc.o.requires\n.PHONY : src/CMakeFiles/dummy_app.dir/requires\n\nsrc/CMakeFiles/dummy_app.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -P CMakeFiles/dummy_app.dir/cmake_clean.cmake\n.PHONY : src/CMakeFiles/dummy_app.dir/clean\n\nsrc/CMakeFiles/dummy_app.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/CMakeFiles/dummy_app.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/dummy_app.dir/dummy_app.cc.o\"\n  \"../release/dummy_app.pdb\"\n  \"../release/dummy_app\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/dummy_app.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/dummy_app.cc\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/dummy_app.dir/dummy_app.cc.o: src/dummy_app.cc\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/dummy_app.dir/dummy_app.cc.o  -o ../release/dummy_app  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -lgsl -lgslcblas -lm -lpthread -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/dummy_app.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 78\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc\ncstdio\n-\ncstdlib\n-\ncstring\n-\ncmath\n-\nlimits\n-\nstring\n-\nsstream\n-\nvector\n-\nfstream\n-\nmap\n-\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.h\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nmemory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/ztimer.h\nexperiments.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experiments.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/spacefactory.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nreport.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/report.h\nmethodfactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/methodfactory.h\nmeta_analysis.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/meta_analysis.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.h\nparams_cmdline.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_cmdline.h\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/eval_results.h\niostream\n-\nalgorithm\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nstdexcept\n-\nunordered_map\n-\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nindex.h\ninclude/index.h\nknnqueue.h\ninclude/knnqueue.h\neval_metrics.h\ninclude/eval_metrics.h\n\ninclude/experimentconf.h\nstring.h\n-\nstring\n-\nunordered_map\n-\nvector\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\n\ninclude/experiments.h\nerrno.h\n-\nstring.h\n-\niostream\n-\nvector\n-\nset\n-\nsstream\n-\nstring\n-\nutility\n-\nthread\n-\nmutex\n-\nmemory\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nmemory.h\ninclude/memory.h\nztimer.h\ninclude/ztimer.h\nutils.h\ninclude/utils.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\nlogging.h\ninclude/logging.h\nmethodfactory.h\ninclude/methodfactory.h\neval_results.h\ninclude/eval_results.h\nmeta_analysis.h\ninclude/meta_analysis.h\nquery_creator.h\ninclude/query_creator.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/index.h\nstdio.h\n-\nstring\n-\nvector\n-\nparams.h\ninclude/params.h\nobject.h\ninclude/object.h\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/memory.h\n\ninclude/meta_analysis.h\nvector\n-\nstring\n-\nutils.h\ninclude/utils.h\n\ninclude/methodfactory.h\nstring\n-\niostream\n-\nindex.h\ninclude/index.h\nspace.h\ninclude/space.h\nlogging.h\ninclude/logging.h\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/params_cmdline.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\nparams.h\ninclude/params.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/report.h\nsstream\n-\nstring\n-\nmeta_analysis.h\ninclude/meta_analysis.h\nexperiments.h\ninclude/experiments.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/main.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude src/CMakeFiles/experiment.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/CMakeFiles/experiment.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/CMakeFiles/experiment.dir/flags.make\n\nsrc/CMakeFiles/experiment.dir/main.cc.o: src/CMakeFiles/experiment.dir/flags.make\nsrc/CMakeFiles/experiment.dir/main.cc.o: src/main.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/experiment.dir/main.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/experiment.dir/main.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc\n\nsrc/CMakeFiles/experiment.dir/main.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/experiment.dir/main.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc > CMakeFiles/experiment.dir/main.cc.i\n\nsrc/CMakeFiles/experiment.dir/main.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/experiment.dir/main.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc -o CMakeFiles/experiment.dir/main.cc.s\n\nsrc/CMakeFiles/experiment.dir/main.cc.o.requires:\n.PHONY : src/CMakeFiles/experiment.dir/main.cc.o.requires\n\nsrc/CMakeFiles/experiment.dir/main.cc.o.provides: src/CMakeFiles/experiment.dir/main.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/main.cc.o.provides.build\n.PHONY : src/CMakeFiles/experiment.dir/main.cc.o.provides\n\nsrc/CMakeFiles/experiment.dir/main.cc.o.provides.build: src/CMakeFiles/experiment.dir/main.cc.o\n\n# Object files for target experiment\nexperiment_OBJECTS = \\\n\"CMakeFiles/experiment.dir/main.cc.o\"\n\n# External object files for target experiment\nexperiment_EXTERNAL_OBJECTS =\n\nrelease/experiment: src/CMakeFiles/experiment.dir/main.cc.o\nrelease/experiment: src/CMakeFiles/experiment.dir/build.make\nrelease/experiment: release/libNonMetricSpaceLib.a\nrelease/experiment: release/liblshkit.a\nrelease/experiment: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/experiment: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/experiment: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/experiment: src/CMakeFiles/experiment.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/experiment\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/experiment.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/CMakeFiles/experiment.dir/build: release/experiment\n.PHONY : src/CMakeFiles/experiment.dir/build\n\nsrc/CMakeFiles/experiment.dir/requires: src/CMakeFiles/experiment.dir/main.cc.o.requires\n.PHONY : src/CMakeFiles/experiment.dir/requires\n\nsrc/CMakeFiles/experiment.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -P CMakeFiles/experiment.dir/cmake_clean.cmake\n.PHONY : src/CMakeFiles/experiment.dir/clean\n\nsrc/CMakeFiles/experiment.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/CMakeFiles/experiment.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/experiment.dir/main.cc.o\"\n  \"../release/experiment.pdb\"\n  \"../release/experiment\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/experiment.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/experiment.dir/main.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/main.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/eval_metrics.h\n include/eval_results.h\n include/experimentconf.h\n include/experiments.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/index.h\n include/init.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/memory.h\n include/meta_analysis.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/params_cmdline.h\n include/permutation_type.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/report.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/utils.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/experiment.dir/main.cc.o: src/main.cc\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/distcomp.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/eval_metrics.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/eval_results.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/experimentconf.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/experiments.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/global.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/gold_standard.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/idtype.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/index.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/init.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/knnquery.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/knnqueue.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/logging.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/memory.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/meta_analysis.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/methodfactory.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/object.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/params.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/params_cmdline.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/permutation_type.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/query.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/query_creator.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/rangequery.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/report.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/simdutils.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/space.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/spacefactory.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/utils.h\nsrc/CMakeFiles/experiment.dir/main.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/experiment.dir/main.cc.o  -o ../release/experiment  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -lgsl -lgslcblas -lm -lpthread -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/experiment.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 79\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/progress.marks",
    "content": "73\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nalgorithm\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/type_index.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/throw_exception.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nboost/config.hpp\n-\nboost/get_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nfunctional\n-\nboost/preprocessor/iterate.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function/detail/prologue.hpp\n-\nboost/function/function0.hpp\n-\nboost/function/function1.hpp\n-\nboost/function/function2.hpp\n-\nboost/function/function3.hpp\n-\nboost/function/function4.hpp\n-\nboost/function/function5.hpp\n-\nboost/function/function6.hpp\n-\nboost/function/function7.hpp\n-\nboost/function/function8.hpp\n-\nboost/function/function9.hpp\n-\nboost/function/function10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ncassert\n-\nalgorithm\n-\nboost/config/no_tr1/functional.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config.hpp\n-\nboost/function/function_base.hpp\n-\nboost/mem_fn.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nstdexcept\n-\nstring\n-\nmemory\n-\nnew\n-\nboost/config.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\nboost/integer.hpp\n-\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/has_trivial_destructor.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/composite_traits.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/ref.hpp\n-\nboost/mpl/if.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/utility/enable_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/utility/enable_if.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/mpl/bool.hpp\nboost/function_equal.hpp\n-\nboost/function/function_fwd.hpp\n-\ncstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nboost/function/detail/prologue.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nboost/move/utility_core.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nboost/bind/mem_fn.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/program_options/parsers.hpp\n-\nboost/program_options/variables_map.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/program_options/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nboost/program_options/config.hpp\n-\nboost/detail/workaround.hpp\n-\nstring\n-\nvector\n-\nlocale\n-\ncwchar\n-\nstdexcept\n-\nwchar.h\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nboost/program_options/detail/convert.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nstdexcept\n-\nvector\n-\nmap\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/function.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/any.hpp\n-\nstring\n-\nvector\n-\nset\n-\nmap\n-\nstdexcept\n-\niosfwd\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/detail/cmdline.hpp\n-\nboost/function/function1.hpp\n-\niosfwd\n-\nvector\n-\nutility\n-\nboost/program_options/detail/parsers.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/parsers.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nboost/program_options/config.hpp\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/any.hpp\n-\nboost/function/function1.hpp\n-\nboost/lexical_cast.hpp\n-\nstring\n-\nvector\n-\ntypeinfo\n-\nboost/program_options/detail/value_semantic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/value_semantic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nboost/program_options/config.hpp\n-\nboost/any.hpp\n-\nboost/shared_ptr.hpp\n-\nstring\n-\nmap\n-\nset\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nboost/config.hpp\n-\nboost/type_index/stl_type_index.hpp\n-\nboost/type_index/detail/stl_register_class.hpp\n-\nboost/type_index/ctti_type_index.hpp\n-\nboost/type_index/detail/ctti_register_class.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\nboost/type_index/detail/compile_time_type_info.hpp\n-\ncstring\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/bool.hpp\n-\nalgorithm\n-\nboost/preprocessor/facilities/expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nboost/type_index/ctti_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nboost/type_index/stl_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\ntypeinfo\n-\ncstring\n-\nstdexcept\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/core/demangle.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nboost/config.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nstring\n-\ncstring\n-\niosfwd\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_union.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc\nstdio.h\n-\nstdlib.h\n-\nstring.h\n-\ntime.h\n-\ncmath\n-\nmemory\n-\nlimits\n-\nstring\n-\nsstream\n-\nvector\n-\nfstream\n-\nmap\n-\nboost/program_options.hpp\n-\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/init.h\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/global.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/utils.h\nmemory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/memory.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/ztimer.h\nexperiments.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experiments.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/experimentconf.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/space.h\nindex.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/index.h\ntune.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune.h\nmethod/vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/vptree.h\nmethod/proj_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/proj_vptree.h\nmethod/perm_bin_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/method/perm_bin_vptree.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/logging.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/spacefactory.h\nmethodfactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/methodfactory.h\nparams_def.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params_def.h\nmeta_analysis.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/meta_analysis.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/params.h\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/eval_results.h\niostream\n-\nalgorithm\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nstdexcept\n-\nunordered_map\n-\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nindex.h\ninclude/index.h\nknnqueue.h\ninclude/knnqueue.h\neval_metrics.h\ninclude/eval_metrics.h\n\ninclude/experimentconf.h\nstring.h\n-\nstring\n-\nunordered_map\n-\nvector\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\n\ninclude/experiments.h\nerrno.h\n-\nstring.h\n-\niostream\n-\nvector\n-\nset\n-\nsstream\n-\nstring\n-\nutility\n-\nthread\n-\nmutex\n-\nmemory\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nmemory.h\ninclude/memory.h\nztimer.h\ninclude/ztimer.h\nutils.h\ninclude/utils.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\nlogging.h\ninclude/logging.h\nmethodfactory.h\ninclude/methodfactory.h\neval_results.h\ninclude/eval_results.h\nmeta_analysis.h\ninclude/meta_analysis.h\nquery_creator.h\ninclude/query_creator.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/index.h\nstdio.h\n-\nstring\n-\nvector\n-\nparams.h\ninclude/params.h\nobject.h\ninclude/object.h\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/memory.h\n\ninclude/meta_analysis.h\nvector\n-\nstring\n-\nutils.h\ninclude/utils.h\n\ninclude/method/perm_bin_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_bit_hamming.h\ninclude/method/space/space_bit_hamming.h\npermutation_utils.h\ninclude/method/permutation_utils.h\nvptree.h\ninclude/method/vptree.h\nparams.h\ninclude/method/params.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/proj_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_lp.h\ninclude/method/space/space_lp.h\nspace/space_vector.h\ninclude/method/space/space_vector.h\nmethod/vptree.h\ninclude/method/method/vptree.h\nparams.h\ninclude/method/params.h\nprojection.h\ninclude/method/projection.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/vptree.h\nstring\n-\nvector\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nported_boost_progress.h\ninclude/method/ported_boost_progress.h\n\ninclude/methodfactory.h\nstring\n-\niostream\n-\nindex.h\ninclude/index.h\nspace.h\ninclude/space.h\nlogging.h\ninclude/logging.h\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/params_def.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/permutation_utils.h\nalgorithm\n-\niostream\n-\nunordered_set\n-\nspace.h\ninclude/space.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\npermutation_type.h\ninclude/permutation_type.h\ndistcomp.h\ninclude/distcomp.h\nutils.h\ninclude/utils.h\n\ninclude/ported_boost_progress.h\niostream\n-\nstring\n-\n\ninclude/pow.h\ncmath\n-\n\ninclude/projection.h\ndistcomp.h\ninclude/distcomp.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nstring\n-\ncstddef\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/searchoracle.h\nstring\n-\ncmath\n-\nvector\n-\nsstream\n-\nobject.h\ninclude/object.h\nspace.h\ninclude/space.h\npow.h\ninclude/pow.h\nparams.h\ninclude/params.h\nexperimentconf.h\ninclude/experimentconf.h\nlogging.h\ninclude/logging.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bit_hamming.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/tune.h\nvector\n-\nmap\n-\nutility\n-\nmemory\n-\nstring\n-\nsstream\n-\nthread\n-\nexperimentconf.h\ninclude/experimentconf.h\nsearchoracle.h\ninclude/searchoracle.h\nlogging.h\ninclude/logging.h\nztimer.h\ninclude/ztimer.h\nexperiments.h\ninclude/experiments.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude src/CMakeFiles/tune_vptree.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/CMakeFiles/tune_vptree.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/CMakeFiles/tune_vptree.dir/flags.make\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: src/CMakeFiles/tune_vptree.dir/flags.make\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: src/tune_vptree.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/tune_vptree.dir/tune_vptree.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/tune_vptree.dir/tune_vptree.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc > CMakeFiles/tune_vptree.dir/tune_vptree.cc.i\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/tune_vptree.dir/tune_vptree.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc -o CMakeFiles/tune_vptree.dir/tune_vptree.cc.s\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.requires:\n.PHONY : src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.requires\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.provides: src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.requires\n\t$(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.provides.build\n.PHONY : src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.provides\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.provides.build: src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\n\n# Object files for target tune_vptree\ntune_vptree_OBJECTS = \\\n\"CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\"\n\n# External object files for target tune_vptree\ntune_vptree_EXTERNAL_OBJECTS =\n\nrelease/tune_vptree: src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\nrelease/tune_vptree: src/CMakeFiles/tune_vptree.dir/build.make\nrelease/tune_vptree: release/libNonMetricSpaceLib.a\nrelease/tune_vptree: release/liblshkit.a\nrelease/tune_vptree: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/tune_vptree: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/tune_vptree: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/tune_vptree: src/CMakeFiles/tune_vptree.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/tune_vptree\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/tune_vptree.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/CMakeFiles/tune_vptree.dir/build: release/tune_vptree\n.PHONY : src/CMakeFiles/tune_vptree.dir/build\n\nsrc/CMakeFiles/tune_vptree.dir/requires: src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o.requires\n.PHONY : src/CMakeFiles/tune_vptree.dir/requires\n\nsrc/CMakeFiles/tune_vptree.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/src && $(CMAKE_COMMAND) -P CMakeFiles/tune_vptree.dir/cmake_clean.cmake\n.PHONY : src/CMakeFiles/tune_vptree.dir/clean\n\nsrc/CMakeFiles/tune_vptree.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/src /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/CMakeFiles/tune_vptree.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\"\n  \"../release/tune_vptree.pdb\"\n  \"../release/tune_vptree\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/tune_vptree.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/tune_vptree.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/eval_metrics.h\n include/eval_results.h\n include/experimentconf.h\n include/experiments.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/index.h\n include/init.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/memory.h\n include/meta_analysis.h\n include/method/perm_bin_vptree.h\n include/method/proj_vptree.h\n include/method/vptree.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/params_def.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/pow.h\n include/projection.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/searchoracle.h\n include/simdutils.h\n include/space.h\n include/space/space_bit_hamming.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/tune.h\n include/utils.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: src/tune_vptree.cc\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/distcomp.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/distcomp_edist.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/eval_metrics.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/eval_results.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/experimentconf.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/experiments.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/global.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/gold_standard.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/idtype.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/index.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/init.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/knnquery.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/knnqueue.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/logging.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/memory.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/meta_analysis.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/method/perm_bin_vptree.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/method/proj_vptree.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/method/vptree.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/methodfactory.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/object.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/params.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/params_def.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/permutation_type.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/permutation_utils.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/ported_boost_progress.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/pow.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/projection.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/query.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/query_creator.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/rangequery.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/searchoracle.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/simdutils.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/space.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/space/space_bit_hamming.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/space/space_bregman.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/space/space_lp.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/space/space_vector.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/spacefactory.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/tune.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/utils.h\nsrc/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/tune_vptree.dir/tune_vptree.cc.o  -o ../release/tune_vptree  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -lgsl -lgslcblas -lm -lpthread -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeFiles/tune_vptree.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 89\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/CMakeLists.txt",
    "content": "#\r\n# Non-metric Space Library\r\n#\r\n# Authors: Bilegsaikhan Naidan, Leonid Boytsov.\r\n#\r\n# This code is released under the\r\n# Apache License Version 2.0 http://www.apache.org/licenses/.\r\n#\r\n#\r\n\r\nfile(GLOB PROJ_HDR_FILES ${PROJECT_SOURCE_DIR}/include/*.h ${PROJECT_SOURCE_DIR}/include/method/*.h ${PROJECT_SOURCE_DIR}/include/space/*.h ${PROJECT_SOURCE_DIR}/include/factory/*.h ${PROJ_HDR_FILES}/include/factory/*/*.h)\r\nfile(GLOB OTH_HDR_FILES)\r\nset(HDR_FILES ${PROJ_HDR_FILES} ${OTH_HDR_FILES})\r\nfile(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cc ${PROJECT_SOURCE_DIR}/src/space/*.cc ${PROJECT_SOURCE_DIR}/src/method/*.cc)\r\nlist(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/main.cc)\r\nlist(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/tune_vptree.cc)\r\n# The dummy application file also needs to be removed from the list\r\n# of library source files:\r\nlist(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/dummy_app.cc)\r\n\r\n# NO lshkit for Win32 and MACOSX\r\nif (WITHOUT_LSH OR WIN32)\r\n\r\n  list(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/method/lsh.cc)\r\n  list(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/method/lsh_multiprobe.cc)\r\n  list(REMOVE_ITEM SRC_FILES ${PROJECT_SOURCE_DIR}/src/method/lsh_space.cc)\r\nendif()\r\n\r\ninclude_directories(${PROJECT_SOURCE_DIR}/include)\r\nmessage(STATUS \"Header files: ${HDR_FILES}\")\r\nmessage(STATUS \"Source files: ${SRC_FILES}\")\r\n\r\nlink_directories(${Boost_LIBRARY_DIRS})\r\n\r\nfind_package (Threads)\r\nif (Threads_FOUND)\r\n    message (STATUS \"Found Threads.\")\r\nelse (Threads_FOUND)\r\n    message (STATUS \"Could not locate Threads.\")\r\nendif (Threads_FOUND)\r\n\r\nadd_library (NonMetricSpaceLib ${SRC_FILES} ${HDR_FILES})\r\nif ((NOT WITHOUT_LSH) AND (NOT WIN32))\r\n  add_dependencies (NonMetricSpaceLib lshkit)\r\n  set(LSHKIT_LIB \"lshkit\")\r\nelse()\r\n# NO lshkit for Win32\r\n  set(LSHKIT_LIB \"\")\r\nendif()\r\nadd_executable (experiment main.cc)\r\nadd_executable (tune_vptree tune_vptree.cc)\r\n# The following line is necessary to create an executable for the dummy application:\r\nadd_executable (dummy_app dummy_app.cc)\r\n\r\ntarget_link_libraries (experiment NonMetricSpaceLib ${LSHKIT_LIB} ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})\r\ntarget_link_libraries (tune_vptree NonMetricSpaceLib ${LSHKIT_LIB} ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})\r\n# What are the libraries that we need to link with for dummy_app?\r\ntarget_link_libraries (dummy_app NonMetricSpaceLib ${LSHKIT_LIB} \r\n                                                          ${Boost_LIBRARIES} \r\n                                                          ${GSL_LIBRARIES} \r\n                                                          ${CMAKE_THREAD_LIBS_INIT})\r\n\r\nif (CMAKE_BUILD_TYPE STREQUAL \"Release\")\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\nelse ()\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\nendif ()\r\n\r\nstring(LENGTH ${PROJECT_SOURCE_DIR} PREFIX_LEN) \r\nMATH(EXPR PREFIX_LEN \"${PREFIX_LEN}+1\")\r\nforeach(F ${PROJ_HDR_FILES}) \r\n  GET_FILENAME_COMPONENT(FP ${F} PATH)\r\n  string(SUBSTRING ${FP} ${PREFIX_LEN} -1 FS)\r\n  #message(${PREFIX_LEN} \":\" ${FS})\r\n  install(FILES \"${F}\" DESTINATION ${FS})\r\nendforeach(F)\r\n\r\ninstall(TARGETS NonMetricSpaceLib   \r\n  ARCHIVE DESTINATION lib\r\n  LIBRARY DESTINATION lib\r\n  COMPONENT library\r\n)\r\n\r\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles /home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\nsrc/CMakeFiles/NonMetricSpaceLib.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/NonMetricSpaceLib.dir/rule\n.PHONY : src/CMakeFiles/NonMetricSpaceLib.dir/rule\n\n# Convenience name for target.\nNonMetricSpaceLib: src/CMakeFiles/NonMetricSpaceLib.dir/rule\n.PHONY : NonMetricSpaceLib\n\n# fast build rule for target.\nNonMetricSpaceLib/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/build\n.PHONY : NonMetricSpaceLib/fast\n\n# Convenience name for target.\nsrc/CMakeFiles/dummy_app.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/dummy_app.dir/rule\n.PHONY : src/CMakeFiles/dummy_app.dir/rule\n\n# Convenience name for target.\ndummy_app: src/CMakeFiles/dummy_app.dir/rule\n.PHONY : dummy_app\n\n# fast build rule for target.\ndummy_app/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/build\n.PHONY : dummy_app/fast\n\n# Convenience name for target.\nsrc/CMakeFiles/experiment.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/experiment.dir/rule\n.PHONY : src/CMakeFiles/experiment.dir/rule\n\n# Convenience name for target.\nexperiment: src/CMakeFiles/experiment.dir/rule\n.PHONY : experiment\n\n# fast build rule for target.\nexperiment/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/build\n.PHONY : experiment/fast\n\n# Convenience name for target.\nsrc/CMakeFiles/tune_vptree.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/tune_vptree.dir/rule\n.PHONY : src/CMakeFiles/tune_vptree.dir/rule\n\n# Convenience name for target.\ntune_vptree: src/CMakeFiles/tune_vptree.dir/rule\n.PHONY : tune_vptree\n\n# fast build rule for target.\ntune_vptree/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/build\n.PHONY : tune_vptree/fast\n\ncluster_util.o: cluster_util.cc.o\n.PHONY : cluster_util.o\n\n# target to build an object file\ncluster_util.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.o\n.PHONY : cluster_util.cc.o\n\ncluster_util.i: cluster_util.cc.i\n.PHONY : cluster_util.i\n\n# target to preprocess a source file\ncluster_util.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.i\n.PHONY : cluster_util.cc.i\n\ncluster_util.s: cluster_util.cc.s\n.PHONY : cluster_util.s\n\n# target to generate assembly for a file\ncluster_util.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/cluster_util.cc.s\n.PHONY : cluster_util.cc.s\n\ndistcomp_bregman.o: distcomp_bregman.cc.o\n.PHONY : distcomp_bregman.o\n\n# target to build an object file\ndistcomp_bregman.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.o\n.PHONY : distcomp_bregman.cc.o\n\ndistcomp_bregman.i: distcomp_bregman.cc.i\n.PHONY : distcomp_bregman.i\n\n# target to preprocess a source file\ndistcomp_bregman.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.i\n.PHONY : distcomp_bregman.cc.i\n\ndistcomp_bregman.s: distcomp_bregman.cc.s\n.PHONY : distcomp_bregman.s\n\n# target to generate assembly for a file\ndistcomp_bregman.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_bregman.cc.s\n.PHONY : distcomp_bregman.cc.s\n\ndistcomp_edist.o: distcomp_edist.cc.o\n.PHONY : distcomp_edist.o\n\n# target to build an object file\ndistcomp_edist.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.o\n.PHONY : distcomp_edist.cc.o\n\ndistcomp_edist.i: distcomp_edist.cc.i\n.PHONY : distcomp_edist.i\n\n# target to preprocess a source file\ndistcomp_edist.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.i\n.PHONY : distcomp_edist.cc.i\n\ndistcomp_edist.s: distcomp_edist.cc.s\n.PHONY : distcomp_edist.s\n\n# target to generate assembly for a file\ndistcomp_edist.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_edist.cc.s\n.PHONY : distcomp_edist.cc.s\n\ndistcomp_js.o: distcomp_js.cc.o\n.PHONY : distcomp_js.o\n\n# target to build an object file\ndistcomp_js.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.o\n.PHONY : distcomp_js.cc.o\n\ndistcomp_js.i: distcomp_js.cc.i\n.PHONY : distcomp_js.i\n\n# target to preprocess a source file\ndistcomp_js.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.i\n.PHONY : distcomp_js.cc.i\n\ndistcomp_js.s: distcomp_js.cc.s\n.PHONY : distcomp_js.s\n\n# target to generate assembly for a file\ndistcomp_js.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_js.cc.s\n.PHONY : distcomp_js.cc.s\n\ndistcomp_lp.o: distcomp_lp.cc.o\n.PHONY : distcomp_lp.o\n\n# target to build an object file\ndistcomp_lp.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.o\n.PHONY : distcomp_lp.cc.o\n\ndistcomp_lp.i: distcomp_lp.cc.i\n.PHONY : distcomp_lp.i\n\n# target to preprocess a source file\ndistcomp_lp.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.i\n.PHONY : distcomp_lp.cc.i\n\ndistcomp_lp.s: distcomp_lp.cc.s\n.PHONY : distcomp_lp.s\n\n# target to generate assembly for a file\ndistcomp_lp.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_lp.cc.s\n.PHONY : distcomp_lp.cc.s\n\ndistcomp_rankcorr.o: distcomp_rankcorr.cc.o\n.PHONY : distcomp_rankcorr.o\n\n# target to build an object file\ndistcomp_rankcorr.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.o\n.PHONY : distcomp_rankcorr.cc.o\n\ndistcomp_rankcorr.i: distcomp_rankcorr.cc.i\n.PHONY : distcomp_rankcorr.i\n\n# target to preprocess a source file\ndistcomp_rankcorr.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.i\n.PHONY : distcomp_rankcorr.cc.i\n\ndistcomp_rankcorr.s: distcomp_rankcorr.cc.s\n.PHONY : distcomp_rankcorr.s\n\n# target to generate assembly for a file\ndistcomp_rankcorr.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_rankcorr.cc.s\n.PHONY : distcomp_rankcorr.cc.s\n\ndistcomp_scalar.o: distcomp_scalar.cc.o\n.PHONY : distcomp_scalar.o\n\n# target to build an object file\ndistcomp_scalar.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.o\n.PHONY : distcomp_scalar.cc.o\n\ndistcomp_scalar.i: distcomp_scalar.cc.i\n.PHONY : distcomp_scalar.i\n\n# target to preprocess a source file\ndistcomp_scalar.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.i\n.PHONY : distcomp_scalar.cc.i\n\ndistcomp_scalar.s: distcomp_scalar.cc.s\n.PHONY : distcomp_scalar.s\n\n# target to generate assembly for a file\ndistcomp_scalar.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_scalar.cc.s\n.PHONY : distcomp_scalar.cc.s\n\ndistcomp_sparse_scalar_fast.o: distcomp_sparse_scalar_fast.cc.o\n.PHONY : distcomp_sparse_scalar_fast.o\n\n# target to build an object file\ndistcomp_sparse_scalar_fast.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.o\n.PHONY : distcomp_sparse_scalar_fast.cc.o\n\ndistcomp_sparse_scalar_fast.i: distcomp_sparse_scalar_fast.cc.i\n.PHONY : distcomp_sparse_scalar_fast.i\n\n# target to preprocess a source file\ndistcomp_sparse_scalar_fast.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.i\n.PHONY : distcomp_sparse_scalar_fast.cc.i\n\ndistcomp_sparse_scalar_fast.s: distcomp_sparse_scalar_fast.cc.s\n.PHONY : distcomp_sparse_scalar_fast.s\n\n# target to generate assembly for a file\ndistcomp_sparse_scalar_fast.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/distcomp_sparse_scalar_fast.cc.s\n.PHONY : distcomp_sparse_scalar_fast.cc.s\n\ndummy_app.o: dummy_app.cc.o\n.PHONY : dummy_app.o\n\n# target to build an object file\ndummy_app.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/dummy_app.cc.o\n.PHONY : dummy_app.cc.o\n\ndummy_app.i: dummy_app.cc.i\n.PHONY : dummy_app.i\n\n# target to preprocess a source file\ndummy_app.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/dummy_app.cc.i\n.PHONY : dummy_app.cc.i\n\ndummy_app.s: dummy_app.cc.s\n.PHONY : dummy_app.s\n\n# target to generate assembly for a file\ndummy_app.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/dummy_app.dir/build.make src/CMakeFiles/dummy_app.dir/dummy_app.cc.s\n.PHONY : dummy_app.cc.s\n\nexperimentconf.o: experimentconf.cc.o\n.PHONY : experimentconf.o\n\n# target to build an object file\nexperimentconf.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.o\n.PHONY : experimentconf.cc.o\n\nexperimentconf.i: experimentconf.cc.i\n.PHONY : experimentconf.i\n\n# target to preprocess a source file\nexperimentconf.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.i\n.PHONY : experimentconf.cc.i\n\nexperimentconf.s: experimentconf.cc.s\n.PHONY : experimentconf.s\n\n# target to generate assembly for a file\nexperimentconf.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/experimentconf.cc.s\n.PHONY : experimentconf.cc.s\n\nglobal.o: global.cc.o\n.PHONY : global.o\n\n# target to build an object file\nglobal.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.o\n.PHONY : global.cc.o\n\nglobal.i: global.cc.i\n.PHONY : global.i\n\n# target to preprocess a source file\nglobal.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.i\n.PHONY : global.cc.i\n\nglobal.s: global.cc.s\n.PHONY : global.s\n\n# target to generate assembly for a file\nglobal.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/global.cc.s\n.PHONY : global.cc.s\n\ninit.o: init.cc.o\n.PHONY : init.o\n\n# target to build an object file\ninit.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.o\n.PHONY : init.cc.o\n\ninit.i: init.cc.i\n.PHONY : init.i\n\n# target to preprocess a source file\ninit.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.i\n.PHONY : init.cc.i\n\ninit.s: init.cc.s\n.PHONY : init.s\n\n# target to generate assembly for a file\ninit.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/init.cc.s\n.PHONY : init.cc.s\n\nknnquery.o: knnquery.cc.o\n.PHONY : knnquery.o\n\n# target to build an object file\nknnquery.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.o\n.PHONY : knnquery.cc.o\n\nknnquery.i: knnquery.cc.i\n.PHONY : knnquery.i\n\n# target to preprocess a source file\nknnquery.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.i\n.PHONY : knnquery.cc.i\n\nknnquery.s: knnquery.cc.s\n.PHONY : knnquery.s\n\n# target to generate assembly for a file\nknnquery.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/knnquery.cc.s\n.PHONY : knnquery.cc.s\n\nlogging.o: logging.cc.o\n.PHONY : logging.o\n\n# target to build an object file\nlogging.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.o\n.PHONY : logging.cc.o\n\nlogging.i: logging.cc.i\n.PHONY : logging.i\n\n# target to preprocess a source file\nlogging.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.i\n.PHONY : logging.cc.i\n\nlogging.s: logging.cc.s\n.PHONY : logging.s\n\n# target to generate assembly for a file\nlogging.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/logging.cc.s\n.PHONY : logging.cc.s\n\nmain.o: main.cc.o\n.PHONY : main.o\n\n# target to build an object file\nmain.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/main.cc.o\n.PHONY : main.cc.o\n\nmain.i: main.cc.i\n.PHONY : main.i\n\n# target to preprocess a source file\nmain.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/main.cc.i\n.PHONY : main.cc.i\n\nmain.s: main.cc.s\n.PHONY : main.s\n\n# target to generate assembly for a file\nmain.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/experiment.dir/build.make src/CMakeFiles/experiment.dir/main.cc.s\n.PHONY : main.cc.s\n\nmemory.o: memory.cc.o\n.PHONY : memory.o\n\n# target to build an object file\nmemory.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.o\n.PHONY : memory.cc.o\n\nmemory.i: memory.cc.i\n.PHONY : memory.i\n\n# target to preprocess a source file\nmemory.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.i\n.PHONY : memory.cc.i\n\nmemory.s: memory.cc.s\n.PHONY : memory.s\n\n# target to generate assembly for a file\nmemory.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/memory.cc.s\n.PHONY : memory.cc.s\n\nmethod/bbtree.o: method/bbtree.cc.o\n.PHONY : method/bbtree.o\n\n# target to build an object file\nmethod/bbtree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.o\n.PHONY : method/bbtree.cc.o\n\nmethod/bbtree.i: method/bbtree.cc.i\n.PHONY : method/bbtree.i\n\n# target to preprocess a source file\nmethod/bbtree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.i\n.PHONY : method/bbtree.cc.i\n\nmethod/bbtree.s: method/bbtree.cc.s\n.PHONY : method/bbtree.s\n\n# target to generate assembly for a file\nmethod/bbtree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/bbtree.cc.s\n.PHONY : method/bbtree.cc.s\n\nmethod/dummy.o: method/dummy.cc.o\n.PHONY : method/dummy.o\n\n# target to build an object file\nmethod/dummy.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.o\n.PHONY : method/dummy.cc.o\n\nmethod/dummy.i: method/dummy.cc.i\n.PHONY : method/dummy.i\n\n# target to preprocess a source file\nmethod/dummy.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.i\n.PHONY : method/dummy.cc.i\n\nmethod/dummy.s: method/dummy.cc.s\n.PHONY : method/dummy.s\n\n# target to generate assembly for a file\nmethod/dummy.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/dummy.cc.s\n.PHONY : method/dummy.cc.s\n\nmethod/ghtree.o: method/ghtree.cc.o\n.PHONY : method/ghtree.o\n\n# target to build an object file\nmethod/ghtree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.o\n.PHONY : method/ghtree.cc.o\n\nmethod/ghtree.i: method/ghtree.cc.i\n.PHONY : method/ghtree.i\n\n# target to preprocess a source file\nmethod/ghtree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.i\n.PHONY : method/ghtree.cc.i\n\nmethod/ghtree.s: method/ghtree.cc.s\n.PHONY : method/ghtree.s\n\n# target to generate assembly for a file\nmethod/ghtree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/ghtree.cc.s\n.PHONY : method/ghtree.cc.s\n\nmethod/hnsw.o: method/hnsw.cc.o\n.PHONY : method/hnsw.o\n\n# target to build an object file\nmethod/hnsw.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.o\n.PHONY : method/hnsw.cc.o\n\nmethod/hnsw.i: method/hnsw.cc.i\n.PHONY : method/hnsw.i\n\n# target to preprocess a source file\nmethod/hnsw.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.i\n.PHONY : method/hnsw.cc.i\n\nmethod/hnsw.s: method/hnsw.cc.s\n.PHONY : method/hnsw.s\n\n# target to generate assembly for a file\nmethod/hnsw.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw.cc.s\n.PHONY : method/hnsw.cc.s\n\nmethod/hnsw_distfunc_opt.o: method/hnsw_distfunc_opt.cc.o\n.PHONY : method/hnsw_distfunc_opt.o\n\n# target to build an object file\nmethod/hnsw_distfunc_opt.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.o\n.PHONY : method/hnsw_distfunc_opt.cc.o\n\nmethod/hnsw_distfunc_opt.i: method/hnsw_distfunc_opt.cc.i\n.PHONY : method/hnsw_distfunc_opt.i\n\n# target to preprocess a source file\nmethod/hnsw_distfunc_opt.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.i\n.PHONY : method/hnsw_distfunc_opt.cc.i\n\nmethod/hnsw_distfunc_opt.s: method/hnsw_distfunc_opt.cc.s\n.PHONY : method/hnsw_distfunc_opt.s\n\n# target to generate assembly for a file\nmethod/hnsw_distfunc_opt.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/hnsw_distfunc_opt.cc.s\n.PHONY : method/hnsw_distfunc_opt.cc.s\n\nmethod/list_clusters.o: method/list_clusters.cc.o\n.PHONY : method/list_clusters.o\n\n# target to build an object file\nmethod/list_clusters.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.o\n.PHONY : method/list_clusters.cc.o\n\nmethod/list_clusters.i: method/list_clusters.cc.i\n.PHONY : method/list_clusters.i\n\n# target to preprocess a source file\nmethod/list_clusters.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.i\n.PHONY : method/list_clusters.cc.i\n\nmethod/list_clusters.s: method/list_clusters.cc.s\n.PHONY : method/list_clusters.s\n\n# target to generate assembly for a file\nmethod/list_clusters.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/list_clusters.cc.s\n.PHONY : method/list_clusters.cc.s\n\nmethod/lsh.o: method/lsh.cc.o\n.PHONY : method/lsh.o\n\n# target to build an object file\nmethod/lsh.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.o\n.PHONY : method/lsh.cc.o\n\nmethod/lsh.i: method/lsh.cc.i\n.PHONY : method/lsh.i\n\n# target to preprocess a source file\nmethod/lsh.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.i\n.PHONY : method/lsh.cc.i\n\nmethod/lsh.s: method/lsh.cc.s\n.PHONY : method/lsh.s\n\n# target to generate assembly for a file\nmethod/lsh.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh.cc.s\n.PHONY : method/lsh.cc.s\n\nmethod/lsh_multiprobe.o: method/lsh_multiprobe.cc.o\n.PHONY : method/lsh_multiprobe.o\n\n# target to build an object file\nmethod/lsh_multiprobe.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.o\n.PHONY : method/lsh_multiprobe.cc.o\n\nmethod/lsh_multiprobe.i: method/lsh_multiprobe.cc.i\n.PHONY : method/lsh_multiprobe.i\n\n# target to preprocess a source file\nmethod/lsh_multiprobe.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.i\n.PHONY : method/lsh_multiprobe.cc.i\n\nmethod/lsh_multiprobe.s: method/lsh_multiprobe.cc.s\n.PHONY : method/lsh_multiprobe.s\n\n# target to generate assembly for a file\nmethod/lsh_multiprobe.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_multiprobe.cc.s\n.PHONY : method/lsh_multiprobe.cc.s\n\nmethod/lsh_space.o: method/lsh_space.cc.o\n.PHONY : method/lsh_space.o\n\n# target to build an object file\nmethod/lsh_space.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.o\n.PHONY : method/lsh_space.cc.o\n\nmethod/lsh_space.i: method/lsh_space.cc.i\n.PHONY : method/lsh_space.i\n\n# target to preprocess a source file\nmethod/lsh_space.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.i\n.PHONY : method/lsh_space.cc.i\n\nmethod/lsh_space.s: method/lsh_space.cc.s\n.PHONY : method/lsh_space.s\n\n# target to generate assembly for a file\nmethod/lsh_space.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/lsh_space.cc.s\n.PHONY : method/lsh_space.cc.s\n\nmethod/multi_index.o: method/multi_index.cc.o\n.PHONY : method/multi_index.o\n\n# target to build an object file\nmethod/multi_index.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.o\n.PHONY : method/multi_index.cc.o\n\nmethod/multi_index.i: method/multi_index.cc.i\n.PHONY : method/multi_index.i\n\n# target to preprocess a source file\nmethod/multi_index.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.i\n.PHONY : method/multi_index.cc.i\n\nmethod/multi_index.s: method/multi_index.cc.s\n.PHONY : method/multi_index.s\n\n# target to generate assembly for a file\nmethod/multi_index.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_index.cc.s\n.PHONY : method/multi_index.cc.s\n\nmethod/multi_vantage_point_tree.o: method/multi_vantage_point_tree.cc.o\n.PHONY : method/multi_vantage_point_tree.o\n\n# target to build an object file\nmethod/multi_vantage_point_tree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.o\n.PHONY : method/multi_vantage_point_tree.cc.o\n\nmethod/multi_vantage_point_tree.i: method/multi_vantage_point_tree.cc.i\n.PHONY : method/multi_vantage_point_tree.i\n\n# target to preprocess a source file\nmethod/multi_vantage_point_tree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.i\n.PHONY : method/multi_vantage_point_tree.cc.i\n\nmethod/multi_vantage_point_tree.s: method/multi_vantage_point_tree.cc.s\n.PHONY : method/multi_vantage_point_tree.s\n\n# target to generate assembly for a file\nmethod/multi_vantage_point_tree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/multi_vantage_point_tree.cc.s\n.PHONY : method/multi_vantage_point_tree.cc.s\n\nmethod/nndes.o: method/nndes.cc.o\n.PHONY : method/nndes.o\n\n# target to build an object file\nmethod/nndes.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.o\n.PHONY : method/nndes.cc.o\n\nmethod/nndes.i: method/nndes.cc.i\n.PHONY : method/nndes.i\n\n# target to preprocess a source file\nmethod/nndes.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.i\n.PHONY : method/nndes.cc.i\n\nmethod/nndes.s: method/nndes.cc.s\n.PHONY : method/nndes.s\n\n# target to generate assembly for a file\nmethod/nndes.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nndes.cc.s\n.PHONY : method/nndes.cc.s\n\nmethod/nonmetr_list_clust.o: method/nonmetr_list_clust.cc.o\n.PHONY : method/nonmetr_list_clust.o\n\n# target to build an object file\nmethod/nonmetr_list_clust.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.o\n.PHONY : method/nonmetr_list_clust.cc.o\n\nmethod/nonmetr_list_clust.i: method/nonmetr_list_clust.cc.i\n.PHONY : method/nonmetr_list_clust.i\n\n# target to preprocess a source file\nmethod/nonmetr_list_clust.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.i\n.PHONY : method/nonmetr_list_clust.cc.i\n\nmethod/nonmetr_list_clust.s: method/nonmetr_list_clust.cc.s\n.PHONY : method/nonmetr_list_clust.s\n\n# target to generate assembly for a file\nmethod/nonmetr_list_clust.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/nonmetr_list_clust.cc.s\n.PHONY : method/nonmetr_list_clust.cc.s\n\nmethod/omedrank.o: method/omedrank.cc.o\n.PHONY : method/omedrank.o\n\n# target to build an object file\nmethod/omedrank.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.o\n.PHONY : method/omedrank.cc.o\n\nmethod/omedrank.i: method/omedrank.cc.i\n.PHONY : method/omedrank.i\n\n# target to preprocess a source file\nmethod/omedrank.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.i\n.PHONY : method/omedrank.cc.i\n\nmethod/omedrank.s: method/omedrank.cc.s\n.PHONY : method/omedrank.s\n\n# target to generate assembly for a file\nmethod/omedrank.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/omedrank.cc.s\n.PHONY : method/omedrank.cc.s\n\nmethod/perm_bin_vptree.o: method/perm_bin_vptree.cc.o\n.PHONY : method/perm_bin_vptree.o\n\n# target to build an object file\nmethod/perm_bin_vptree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.o\n.PHONY : method/perm_bin_vptree.cc.o\n\nmethod/perm_bin_vptree.i: method/perm_bin_vptree.cc.i\n.PHONY : method/perm_bin_vptree.i\n\n# target to preprocess a source file\nmethod/perm_bin_vptree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.i\n.PHONY : method/perm_bin_vptree.cc.i\n\nmethod/perm_bin_vptree.s: method/perm_bin_vptree.cc.s\n.PHONY : method/perm_bin_vptree.s\n\n# target to generate assembly for a file\nmethod/perm_bin_vptree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_bin_vptree.cc.s\n.PHONY : method/perm_bin_vptree.cc.s\n\nmethod/perm_index_incr_bin.o: method/perm_index_incr_bin.cc.o\n.PHONY : method/perm_index_incr_bin.o\n\n# target to build an object file\nmethod/perm_index_incr_bin.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.o\n.PHONY : method/perm_index_incr_bin.cc.o\n\nmethod/perm_index_incr_bin.i: method/perm_index_incr_bin.cc.i\n.PHONY : method/perm_index_incr_bin.i\n\n# target to preprocess a source file\nmethod/perm_index_incr_bin.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.i\n.PHONY : method/perm_index_incr_bin.cc.i\n\nmethod/perm_index_incr_bin.s: method/perm_index_incr_bin.cc.s\n.PHONY : method/perm_index_incr_bin.s\n\n# target to generate assembly for a file\nmethod/perm_index_incr_bin.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_index_incr_bin.cc.s\n.PHONY : method/perm_index_incr_bin.cc.s\n\nmethod/perm_lsh_bin.o: method/perm_lsh_bin.cc.o\n.PHONY : method/perm_lsh_bin.o\n\n# target to build an object file\nmethod/perm_lsh_bin.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.o\n.PHONY : method/perm_lsh_bin.cc.o\n\nmethod/perm_lsh_bin.i: method/perm_lsh_bin.cc.i\n.PHONY : method/perm_lsh_bin.i\n\n# target to preprocess a source file\nmethod/perm_lsh_bin.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.i\n.PHONY : method/perm_lsh_bin.cc.i\n\nmethod/perm_lsh_bin.s: method/perm_lsh_bin.cc.s\n.PHONY : method/perm_lsh_bin.s\n\n# target to generate assembly for a file\nmethod/perm_lsh_bin.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/perm_lsh_bin.cc.s\n.PHONY : method/perm_lsh_bin.cc.s\n\nmethod/permutation_inverted_index.o: method/permutation_inverted_index.cc.o\n.PHONY : method/permutation_inverted_index.o\n\n# target to build an object file\nmethod/permutation_inverted_index.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.o\n.PHONY : method/permutation_inverted_index.cc.o\n\nmethod/permutation_inverted_index.i: method/permutation_inverted_index.cc.i\n.PHONY : method/permutation_inverted_index.i\n\n# target to preprocess a source file\nmethod/permutation_inverted_index.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.i\n.PHONY : method/permutation_inverted_index.cc.i\n\nmethod/permutation_inverted_index.s: method/permutation_inverted_index.cc.s\n.PHONY : method/permutation_inverted_index.s\n\n# target to generate assembly for a file\nmethod/permutation_inverted_index.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_inverted_index.cc.s\n.PHONY : method/permutation_inverted_index.cc.s\n\nmethod/permutation_prefix_index.o: method/permutation_prefix_index.cc.o\n.PHONY : method/permutation_prefix_index.o\n\n# target to build an object file\nmethod/permutation_prefix_index.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.o\n.PHONY : method/permutation_prefix_index.cc.o\n\nmethod/permutation_prefix_index.i: method/permutation_prefix_index.cc.i\n.PHONY : method/permutation_prefix_index.i\n\n# target to preprocess a source file\nmethod/permutation_prefix_index.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.i\n.PHONY : method/permutation_prefix_index.cc.i\n\nmethod/permutation_prefix_index.s: method/permutation_prefix_index.cc.s\n.PHONY : method/permutation_prefix_index.s\n\n# target to generate assembly for a file\nmethod/permutation_prefix_index.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/permutation_prefix_index.cc.s\n.PHONY : method/permutation_prefix_index.cc.s\n\nmethod/pivot_neighb_invindx.o: method/pivot_neighb_invindx.cc.o\n.PHONY : method/pivot_neighb_invindx.o\n\n# target to build an object file\nmethod/pivot_neighb_invindx.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.o\n.PHONY : method/pivot_neighb_invindx.cc.o\n\nmethod/pivot_neighb_invindx.i: method/pivot_neighb_invindx.cc.i\n.PHONY : method/pivot_neighb_invindx.i\n\n# target to preprocess a source file\nmethod/pivot_neighb_invindx.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.i\n.PHONY : method/pivot_neighb_invindx.cc.i\n\nmethod/pivot_neighb_invindx.s: method/pivot_neighb_invindx.cc.s\n.PHONY : method/pivot_neighb_invindx.s\n\n# target to generate assembly for a file\nmethod/pivot_neighb_invindx.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/pivot_neighb_invindx.cc.s\n.PHONY : method/pivot_neighb_invindx.cc.s\n\nmethod/proj_vptree.o: method/proj_vptree.cc.o\n.PHONY : method/proj_vptree.o\n\n# target to build an object file\nmethod/proj_vptree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.o\n.PHONY : method/proj_vptree.cc.o\n\nmethod/proj_vptree.i: method/proj_vptree.cc.i\n.PHONY : method/proj_vptree.i\n\n# target to preprocess a source file\nmethod/proj_vptree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.i\n.PHONY : method/proj_vptree.cc.i\n\nmethod/proj_vptree.s: method/proj_vptree.cc.s\n.PHONY : method/proj_vptree.s\n\n# target to generate assembly for a file\nmethod/proj_vptree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/proj_vptree.cc.s\n.PHONY : method/proj_vptree.cc.s\n\nmethod/projection_index_incremental.o: method/projection_index_incremental.cc.o\n.PHONY : method/projection_index_incremental.o\n\n# target to build an object file\nmethod/projection_index_incremental.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.o\n.PHONY : method/projection_index_incremental.cc.o\n\nmethod/projection_index_incremental.i: method/projection_index_incremental.cc.i\n.PHONY : method/projection_index_incremental.i\n\n# target to preprocess a source file\nmethod/projection_index_incremental.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.i\n.PHONY : method/projection_index_incremental.cc.i\n\nmethod/projection_index_incremental.s: method/projection_index_incremental.cc.s\n.PHONY : method/projection_index_incremental.s\n\n# target to generate assembly for a file\nmethod/projection_index_incremental.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/projection_index_incremental.cc.s\n.PHONY : method/projection_index_incremental.cc.s\n\nmethod/seqsearch.o: method/seqsearch.cc.o\n.PHONY : method/seqsearch.o\n\n# target to build an object file\nmethod/seqsearch.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.o\n.PHONY : method/seqsearch.cc.o\n\nmethod/seqsearch.i: method/seqsearch.cc.i\n.PHONY : method/seqsearch.i\n\n# target to preprocess a source file\nmethod/seqsearch.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.i\n.PHONY : method/seqsearch.cc.i\n\nmethod/seqsearch.s: method/seqsearch.cc.s\n.PHONY : method/seqsearch.s\n\n# target to generate assembly for a file\nmethod/seqsearch.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/seqsearch.cc.s\n.PHONY : method/seqsearch.cc.s\n\nmethod/small_world_rand.o: method/small_world_rand.cc.o\n.PHONY : method/small_world_rand.o\n\n# target to build an object file\nmethod/small_world_rand.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.o\n.PHONY : method/small_world_rand.cc.o\n\nmethod/small_world_rand.i: method/small_world_rand.cc.i\n.PHONY : method/small_world_rand.i\n\n# target to preprocess a source file\nmethod/small_world_rand.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.i\n.PHONY : method/small_world_rand.cc.i\n\nmethod/small_world_rand.s: method/small_world_rand.cc.s\n.PHONY : method/small_world_rand.s\n\n# target to generate assembly for a file\nmethod/small_world_rand.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand.cc.s\n.PHONY : method/small_world_rand.cc.s\n\nmethod/small_world_rand_split.o: method/small_world_rand_split.cc.o\n.PHONY : method/small_world_rand_split.o\n\n# target to build an object file\nmethod/small_world_rand_split.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.o\n.PHONY : method/small_world_rand_split.cc.o\n\nmethod/small_world_rand_split.i: method/small_world_rand_split.cc.i\n.PHONY : method/small_world_rand_split.i\n\n# target to preprocess a source file\nmethod/small_world_rand_split.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.i\n.PHONY : method/small_world_rand_split.cc.i\n\nmethod/small_world_rand_split.s: method/small_world_rand_split.cc.s\n.PHONY : method/small_world_rand_split.s\n\n# target to generate assembly for a file\nmethod/small_world_rand_split.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/small_world_rand_split.cc.s\n.PHONY : method/small_world_rand_split.cc.s\n\nmethod/spatial_approx_tree.o: method/spatial_approx_tree.cc.o\n.PHONY : method/spatial_approx_tree.o\n\n# target to build an object file\nmethod/spatial_approx_tree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.o\n.PHONY : method/spatial_approx_tree.cc.o\n\nmethod/spatial_approx_tree.i: method/spatial_approx_tree.cc.i\n.PHONY : method/spatial_approx_tree.i\n\n# target to preprocess a source file\nmethod/spatial_approx_tree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.i\n.PHONY : method/spatial_approx_tree.cc.i\n\nmethod/spatial_approx_tree.s: method/spatial_approx_tree.cc.s\n.PHONY : method/spatial_approx_tree.s\n\n# target to generate assembly for a file\nmethod/spatial_approx_tree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/spatial_approx_tree.cc.s\n.PHONY : method/spatial_approx_tree.cc.s\n\nmethod/vptree.o: method/vptree.cc.o\n.PHONY : method/vptree.o\n\n# target to build an object file\nmethod/vptree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.o\n.PHONY : method/vptree.cc.o\n\nmethod/vptree.i: method/vptree.cc.i\n.PHONY : method/vptree.i\n\n# target to preprocess a source file\nmethod/vptree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.i\n.PHONY : method/vptree.cc.i\n\nmethod/vptree.s: method/vptree.cc.s\n.PHONY : method/vptree.s\n\n# target to generate assembly for a file\nmethod/vptree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/method/vptree.cc.s\n.PHONY : method/vptree.cc.s\n\nparams.o: params.cc.o\n.PHONY : params.o\n\n# target to build an object file\nparams.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.o\n.PHONY : params.cc.o\n\nparams.i: params.cc.i\n.PHONY : params.i\n\n# target to preprocess a source file\nparams.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.i\n.PHONY : params.cc.i\n\nparams.s: params.cc.s\n.PHONY : params.s\n\n# target to generate assembly for a file\nparams.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params.cc.s\n.PHONY : params.cc.s\n\nparams_cmdline.o: params_cmdline.cc.o\n.PHONY : params_cmdline.o\n\n# target to build an object file\nparams_cmdline.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.o\n.PHONY : params_cmdline.cc.o\n\nparams_cmdline.i: params_cmdline.cc.i\n.PHONY : params_cmdline.i\n\n# target to preprocess a source file\nparams_cmdline.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.i\n.PHONY : params_cmdline.cc.i\n\nparams_cmdline.s: params_cmdline.cc.s\n.PHONY : params_cmdline.s\n\n# target to generate assembly for a file\nparams_cmdline.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/params_cmdline.cc.s\n.PHONY : params_cmdline.cc.s\n\nprojection.o: projection.cc.o\n.PHONY : projection.o\n\n# target to build an object file\nprojection.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.o\n.PHONY : projection.cc.o\n\nprojection.i: projection.cc.i\n.PHONY : projection.i\n\n# target to preprocess a source file\nprojection.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.i\n.PHONY : projection.cc.i\n\nprojection.s: projection.cc.s\n.PHONY : projection.s\n\n# target to generate assembly for a file\nprojection.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/projection.cc.s\n.PHONY : projection.cc.s\n\nquery.o: query.cc.o\n.PHONY : query.o\n\n# target to build an object file\nquery.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.o\n.PHONY : query.cc.o\n\nquery.i: query.cc.i\n.PHONY : query.i\n\n# target to preprocess a source file\nquery.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.i\n.PHONY : query.cc.i\n\nquery.s: query.cc.s\n.PHONY : query.s\n\n# target to generate assembly for a file\nquery.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/query.cc.s\n.PHONY : query.cc.s\n\nrandproj_util.o: randproj_util.cc.o\n.PHONY : randproj_util.o\n\n# target to build an object file\nrandproj_util.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.o\n.PHONY : randproj_util.cc.o\n\nrandproj_util.i: randproj_util.cc.i\n.PHONY : randproj_util.i\n\n# target to preprocess a source file\nrandproj_util.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.i\n.PHONY : randproj_util.cc.i\n\nrandproj_util.s: randproj_util.cc.s\n.PHONY : randproj_util.s\n\n# target to generate assembly for a file\nrandproj_util.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/randproj_util.cc.s\n.PHONY : randproj_util.cc.s\n\nrangequery.o: rangequery.cc.o\n.PHONY : rangequery.o\n\n# target to build an object file\nrangequery.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.o\n.PHONY : rangequery.cc.o\n\nrangequery.i: rangequery.cc.i\n.PHONY : rangequery.i\n\n# target to preprocess a source file\nrangequery.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.i\n.PHONY : rangequery.cc.i\n\nrangequery.s: rangequery.cc.s\n.PHONY : rangequery.s\n\n# target to generate assembly for a file\nrangequery.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/rangequery.cc.s\n.PHONY : rangequery.cc.s\n\nsearchoracle.o: searchoracle.cc.o\n.PHONY : searchoracle.o\n\n# target to build an object file\nsearchoracle.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.o\n.PHONY : searchoracle.cc.o\n\nsearchoracle.i: searchoracle.cc.i\n.PHONY : searchoracle.i\n\n# target to preprocess a source file\nsearchoracle.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.i\n.PHONY : searchoracle.cc.i\n\nsearchoracle.s: searchoracle.cc.s\n.PHONY : searchoracle.s\n\n# target to generate assembly for a file\nsearchoracle.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/searchoracle.cc.s\n.PHONY : searchoracle.cc.s\n\nspace.o: space.cc.o\n.PHONY : space.o\n\n# target to build an object file\nspace.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.o\n.PHONY : space.cc.o\n\nspace.i: space.cc.i\n.PHONY : space.i\n\n# target to preprocess a source file\nspace.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.i\n.PHONY : space.cc.i\n\nspace.s: space.cc.s\n.PHONY : space.s\n\n# target to generate assembly for a file\nspace.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space.cc.s\n.PHONY : space.cc.s\n\nspace/space_bit_hamming.o: space/space_bit_hamming.cc.o\n.PHONY : space/space_bit_hamming.o\n\n# target to build an object file\nspace/space_bit_hamming.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.o\n.PHONY : space/space_bit_hamming.cc.o\n\nspace/space_bit_hamming.i: space/space_bit_hamming.cc.i\n.PHONY : space/space_bit_hamming.i\n\n# target to preprocess a source file\nspace/space_bit_hamming.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.i\n.PHONY : space/space_bit_hamming.cc.i\n\nspace/space_bit_hamming.s: space/space_bit_hamming.cc.s\n.PHONY : space/space_bit_hamming.s\n\n# target to generate assembly for a file\nspace/space_bit_hamming.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bit_hamming.cc.s\n.PHONY : space/space_bit_hamming.cc.s\n\nspace/space_bregman.o: space/space_bregman.cc.o\n.PHONY : space/space_bregman.o\n\n# target to build an object file\nspace/space_bregman.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.o\n.PHONY : space/space_bregman.cc.o\n\nspace/space_bregman.i: space/space_bregman.cc.i\n.PHONY : space/space_bregman.i\n\n# target to preprocess a source file\nspace/space_bregman.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.i\n.PHONY : space/space_bregman.cc.i\n\nspace/space_bregman.s: space/space_bregman.cc.s\n.PHONY : space/space_bregman.s\n\n# target to generate assembly for a file\nspace/space_bregman.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_bregman.cc.s\n.PHONY : space/space_bregman.cc.s\n\nspace/space_dummy.o: space/space_dummy.cc.o\n.PHONY : space/space_dummy.o\n\n# target to build an object file\nspace/space_dummy.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.o\n.PHONY : space/space_dummy.cc.o\n\nspace/space_dummy.i: space/space_dummy.cc.i\n.PHONY : space/space_dummy.i\n\n# target to preprocess a source file\nspace/space_dummy.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.i\n.PHONY : space/space_dummy.cc.i\n\nspace/space_dummy.s: space/space_dummy.cc.s\n.PHONY : space/space_dummy.s\n\n# target to generate assembly for a file\nspace/space_dummy.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_dummy.cc.s\n.PHONY : space/space_dummy.cc.s\n\nspace/space_js.o: space/space_js.cc.o\n.PHONY : space/space_js.o\n\n# target to build an object file\nspace/space_js.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.o\n.PHONY : space/space_js.cc.o\n\nspace/space_js.i: space/space_js.cc.i\n.PHONY : space/space_js.i\n\n# target to preprocess a source file\nspace/space_js.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.i\n.PHONY : space/space_js.cc.i\n\nspace/space_js.s: space/space_js.cc.s\n.PHONY : space/space_js.s\n\n# target to generate assembly for a file\nspace/space_js.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_js.cc.s\n.PHONY : space/space_js.cc.s\n\nspace/space_lp.o: space/space_lp.cc.o\n.PHONY : space/space_lp.o\n\n# target to build an object file\nspace/space_lp.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.o\n.PHONY : space/space_lp.cc.o\n\nspace/space_lp.i: space/space_lp.cc.i\n.PHONY : space/space_lp.i\n\n# target to preprocess a source file\nspace/space_lp.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.i\n.PHONY : space/space_lp.cc.i\n\nspace/space_lp.s: space/space_lp.cc.s\n.PHONY : space/space_lp.s\n\n# target to generate assembly for a file\nspace/space_lp.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_lp.cc.s\n.PHONY : space/space_lp.cc.s\n\nspace/space_scalar.o: space/space_scalar.cc.o\n.PHONY : space/space_scalar.o\n\n# target to build an object file\nspace/space_scalar.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.o\n.PHONY : space/space_scalar.cc.o\n\nspace/space_scalar.i: space/space_scalar.cc.i\n.PHONY : space/space_scalar.i\n\n# target to preprocess a source file\nspace/space_scalar.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.i\n.PHONY : space/space_scalar.cc.i\n\nspace/space_scalar.s: space/space_scalar.cc.s\n.PHONY : space/space_scalar.s\n\n# target to generate assembly for a file\nspace/space_scalar.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_scalar.cc.s\n.PHONY : space/space_scalar.cc.s\n\nspace/space_sparse_lp.o: space/space_sparse_lp.cc.o\n.PHONY : space/space_sparse_lp.o\n\n# target to build an object file\nspace/space_sparse_lp.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.o\n.PHONY : space/space_sparse_lp.cc.o\n\nspace/space_sparse_lp.i: space/space_sparse_lp.cc.i\n.PHONY : space/space_sparse_lp.i\n\n# target to preprocess a source file\nspace/space_sparse_lp.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.i\n.PHONY : space/space_sparse_lp.cc.i\n\nspace/space_sparse_lp.s: space/space_sparse_lp.cc.s\n.PHONY : space/space_sparse_lp.s\n\n# target to generate assembly for a file\nspace/space_sparse_lp.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_lp.cc.s\n.PHONY : space/space_sparse_lp.cc.s\n\nspace/space_sparse_scalar_fast.o: space/space_sparse_scalar_fast.cc.o\n.PHONY : space/space_sparse_scalar_fast.o\n\n# target to build an object file\nspace/space_sparse_scalar_fast.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.o\n.PHONY : space/space_sparse_scalar_fast.cc.o\n\nspace/space_sparse_scalar_fast.i: space/space_sparse_scalar_fast.cc.i\n.PHONY : space/space_sparse_scalar_fast.i\n\n# target to preprocess a source file\nspace/space_sparse_scalar_fast.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.i\n.PHONY : space/space_sparse_scalar_fast.cc.i\n\nspace/space_sparse_scalar_fast.s: space/space_sparse_scalar_fast.cc.s\n.PHONY : space/space_sparse_scalar_fast.s\n\n# target to generate assembly for a file\nspace/space_sparse_scalar_fast.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_scalar_fast.cc.s\n.PHONY : space/space_sparse_scalar_fast.cc.s\n\nspace/space_sparse_vector.o: space/space_sparse_vector.cc.o\n.PHONY : space/space_sparse_vector.o\n\n# target to build an object file\nspace/space_sparse_vector.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.o\n.PHONY : space/space_sparse_vector.cc.o\n\nspace/space_sparse_vector.i: space/space_sparse_vector.cc.i\n.PHONY : space/space_sparse_vector.i\n\n# target to preprocess a source file\nspace/space_sparse_vector.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.i\n.PHONY : space/space_sparse_vector.cc.i\n\nspace/space_sparse_vector.s: space/space_sparse_vector.cc.s\n.PHONY : space/space_sparse_vector.s\n\n# target to generate assembly for a file\nspace/space_sparse_vector.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector.cc.s\n.PHONY : space/space_sparse_vector.cc.s\n\nspace/space_sparse_vector_inter.o: space/space_sparse_vector_inter.cc.o\n.PHONY : space/space_sparse_vector_inter.o\n\n# target to build an object file\nspace/space_sparse_vector_inter.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.o\n.PHONY : space/space_sparse_vector_inter.cc.o\n\nspace/space_sparse_vector_inter.i: space/space_sparse_vector_inter.cc.i\n.PHONY : space/space_sparse_vector_inter.i\n\n# target to preprocess a source file\nspace/space_sparse_vector_inter.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.i\n.PHONY : space/space_sparse_vector_inter.cc.i\n\nspace/space_sparse_vector_inter.s: space/space_sparse_vector_inter.cc.s\n.PHONY : space/space_sparse_vector_inter.s\n\n# target to generate assembly for a file\nspace/space_sparse_vector_inter.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sparse_vector_inter.cc.s\n.PHONY : space/space_sparse_vector_inter.cc.s\n\nspace/space_sqfd.o: space/space_sqfd.cc.o\n.PHONY : space/space_sqfd.o\n\n# target to build an object file\nspace/space_sqfd.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.o\n.PHONY : space/space_sqfd.cc.o\n\nspace/space_sqfd.i: space/space_sqfd.cc.i\n.PHONY : space/space_sqfd.i\n\n# target to preprocess a source file\nspace/space_sqfd.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.i\n.PHONY : space/space_sqfd.cc.i\n\nspace/space_sqfd.s: space/space_sqfd.cc.s\n.PHONY : space/space_sqfd.s\n\n# target to generate assembly for a file\nspace/space_sqfd.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_sqfd.cc.s\n.PHONY : space/space_sqfd.cc.s\n\nspace/space_string.o: space/space_string.cc.o\n.PHONY : space/space_string.o\n\n# target to build an object file\nspace/space_string.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.o\n.PHONY : space/space_string.cc.o\n\nspace/space_string.i: space/space_string.cc.i\n.PHONY : space/space_string.i\n\n# target to preprocess a source file\nspace/space_string.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.i\n.PHONY : space/space_string.cc.i\n\nspace/space_string.s: space/space_string.cc.s\n.PHONY : space/space_string.s\n\n# target to generate assembly for a file\nspace/space_string.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_string.cc.s\n.PHONY : space/space_string.cc.s\n\nspace/space_vector.o: space/space_vector.cc.o\n.PHONY : space/space_vector.o\n\n# target to build an object file\nspace/space_vector.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.o\n.PHONY : space/space_vector.cc.o\n\nspace/space_vector.i: space/space_vector.cc.i\n.PHONY : space/space_vector.i\n\n# target to preprocess a source file\nspace/space_vector.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.i\n.PHONY : space/space_vector.cc.i\n\nspace/space_vector.s: space/space_vector.cc.s\n.PHONY : space/space_vector.s\n\n# target to generate assembly for a file\nspace/space_vector.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_vector.cc.s\n.PHONY : space/space_vector.cc.s\n\nspace/space_word_embed.o: space/space_word_embed.cc.o\n.PHONY : space/space_word_embed.o\n\n# target to build an object file\nspace/space_word_embed.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.o\n.PHONY : space/space_word_embed.cc.o\n\nspace/space_word_embed.i: space/space_word_embed.cc.i\n.PHONY : space/space_word_embed.i\n\n# target to preprocess a source file\nspace/space_word_embed.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.i\n.PHONY : space/space_word_embed.cc.i\n\nspace/space_word_embed.s: space/space_word_embed.cc.s\n.PHONY : space/space_word_embed.s\n\n# target to generate assembly for a file\nspace/space_word_embed.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/space/space_word_embed.cc.s\n.PHONY : space/space_word_embed.cc.s\n\ntune_vptree.o: tune_vptree.cc.o\n.PHONY : tune_vptree.o\n\n# target to build an object file\ntune_vptree.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.o\n.PHONY : tune_vptree.cc.o\n\ntune_vptree.i: tune_vptree.cc.i\n.PHONY : tune_vptree.i\n\n# target to preprocess a source file\ntune_vptree.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.i\n.PHONY : tune_vptree.cc.i\n\ntune_vptree.s: tune_vptree.cc.s\n.PHONY : tune_vptree.s\n\n# target to generate assembly for a file\ntune_vptree.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/tune_vptree.dir/build.make src/CMakeFiles/tune_vptree.dir/tune_vptree.cc.s\n.PHONY : tune_vptree.cc.s\n\nutils.o: utils.cc.o\n.PHONY : utils.o\n\n# target to build an object file\nutils.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.o\n.PHONY : utils.cc.o\n\nutils.i: utils.cc.i\n.PHONY : utils.i\n\n# target to preprocess a source file\nutils.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.i\n.PHONY : utils.cc.i\n\nutils.s: utils.cc.s\n.PHONY : utils.s\n\n# target to generate assembly for a file\nutils.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f src/CMakeFiles/NonMetricSpaceLib.dir/build.make src/CMakeFiles/NonMetricSpaceLib.dir/utils.cc.s\n.PHONY : utils.cc.s\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... tune_vptree\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... NonMetricSpaceLib\"\n\t@echo \"... dummy_app\"\n\t@echo \"... experiment\"\n\t@echo \"... install/local\"\n\t@echo \"... cluster_util.o\"\n\t@echo \"... cluster_util.i\"\n\t@echo \"... cluster_util.s\"\n\t@echo \"... distcomp_bregman.o\"\n\t@echo \"... distcomp_bregman.i\"\n\t@echo \"... distcomp_bregman.s\"\n\t@echo \"... distcomp_edist.o\"\n\t@echo \"... distcomp_edist.i\"\n\t@echo \"... distcomp_edist.s\"\n\t@echo \"... distcomp_js.o\"\n\t@echo \"... distcomp_js.i\"\n\t@echo \"... distcomp_js.s\"\n\t@echo \"... distcomp_lp.o\"\n\t@echo \"... distcomp_lp.i\"\n\t@echo \"... distcomp_lp.s\"\n\t@echo \"... distcomp_rankcorr.o\"\n\t@echo \"... distcomp_rankcorr.i\"\n\t@echo \"... distcomp_rankcorr.s\"\n\t@echo \"... distcomp_scalar.o\"\n\t@echo \"... distcomp_scalar.i\"\n\t@echo \"... distcomp_scalar.s\"\n\t@echo \"... distcomp_sparse_scalar_fast.o\"\n\t@echo \"... distcomp_sparse_scalar_fast.i\"\n\t@echo \"... distcomp_sparse_scalar_fast.s\"\n\t@echo \"... dummy_app.o\"\n\t@echo \"... dummy_app.i\"\n\t@echo \"... dummy_app.s\"\n\t@echo \"... experimentconf.o\"\n\t@echo \"... experimentconf.i\"\n\t@echo \"... experimentconf.s\"\n\t@echo \"... global.o\"\n\t@echo \"... global.i\"\n\t@echo \"... global.s\"\n\t@echo \"... init.o\"\n\t@echo \"... init.i\"\n\t@echo \"... init.s\"\n\t@echo \"... knnquery.o\"\n\t@echo \"... knnquery.i\"\n\t@echo \"... knnquery.s\"\n\t@echo \"... logging.o\"\n\t@echo \"... logging.i\"\n\t@echo \"... logging.s\"\n\t@echo \"... main.o\"\n\t@echo \"... main.i\"\n\t@echo \"... main.s\"\n\t@echo \"... memory.o\"\n\t@echo \"... memory.i\"\n\t@echo \"... memory.s\"\n\t@echo \"... method/bbtree.o\"\n\t@echo \"... method/bbtree.i\"\n\t@echo \"... method/bbtree.s\"\n\t@echo \"... method/dummy.o\"\n\t@echo \"... method/dummy.i\"\n\t@echo \"... method/dummy.s\"\n\t@echo \"... method/ghtree.o\"\n\t@echo \"... method/ghtree.i\"\n\t@echo \"... method/ghtree.s\"\n\t@echo \"... method/hnsw.o\"\n\t@echo \"... method/hnsw.i\"\n\t@echo \"... method/hnsw.s\"\n\t@echo \"... method/hnsw_distfunc_opt.o\"\n\t@echo \"... method/hnsw_distfunc_opt.i\"\n\t@echo \"... method/hnsw_distfunc_opt.s\"\n\t@echo \"... method/list_clusters.o\"\n\t@echo \"... method/list_clusters.i\"\n\t@echo \"... method/list_clusters.s\"\n\t@echo \"... method/lsh.o\"\n\t@echo \"... method/lsh.i\"\n\t@echo \"... method/lsh.s\"\n\t@echo \"... method/lsh_multiprobe.o\"\n\t@echo \"... method/lsh_multiprobe.i\"\n\t@echo \"... method/lsh_multiprobe.s\"\n\t@echo \"... method/lsh_space.o\"\n\t@echo \"... method/lsh_space.i\"\n\t@echo \"... method/lsh_space.s\"\n\t@echo \"... method/multi_index.o\"\n\t@echo \"... method/multi_index.i\"\n\t@echo \"... method/multi_index.s\"\n\t@echo \"... method/multi_vantage_point_tree.o\"\n\t@echo \"... method/multi_vantage_point_tree.i\"\n\t@echo \"... method/multi_vantage_point_tree.s\"\n\t@echo \"... method/nndes.o\"\n\t@echo \"... method/nndes.i\"\n\t@echo \"... method/nndes.s\"\n\t@echo \"... method/nonmetr_list_clust.o\"\n\t@echo \"... method/nonmetr_list_clust.i\"\n\t@echo \"... method/nonmetr_list_clust.s\"\n\t@echo \"... method/omedrank.o\"\n\t@echo \"... method/omedrank.i\"\n\t@echo \"... method/omedrank.s\"\n\t@echo \"... method/perm_bin_vptree.o\"\n\t@echo \"... method/perm_bin_vptree.i\"\n\t@echo \"... method/perm_bin_vptree.s\"\n\t@echo \"... method/perm_index_incr_bin.o\"\n\t@echo \"... method/perm_index_incr_bin.i\"\n\t@echo \"... method/perm_index_incr_bin.s\"\n\t@echo \"... method/perm_lsh_bin.o\"\n\t@echo \"... method/perm_lsh_bin.i\"\n\t@echo \"... method/perm_lsh_bin.s\"\n\t@echo \"... method/permutation_inverted_index.o\"\n\t@echo \"... method/permutation_inverted_index.i\"\n\t@echo \"... method/permutation_inverted_index.s\"\n\t@echo \"... method/permutation_prefix_index.o\"\n\t@echo \"... method/permutation_prefix_index.i\"\n\t@echo \"... method/permutation_prefix_index.s\"\n\t@echo \"... method/pivot_neighb_invindx.o\"\n\t@echo \"... method/pivot_neighb_invindx.i\"\n\t@echo \"... method/pivot_neighb_invindx.s\"\n\t@echo \"... method/proj_vptree.o\"\n\t@echo \"... method/proj_vptree.i\"\n\t@echo \"... method/proj_vptree.s\"\n\t@echo \"... method/projection_index_incremental.o\"\n\t@echo \"... method/projection_index_incremental.i\"\n\t@echo \"... method/projection_index_incremental.s\"\n\t@echo \"... method/seqsearch.o\"\n\t@echo \"... method/seqsearch.i\"\n\t@echo \"... method/seqsearch.s\"\n\t@echo \"... method/small_world_rand.o\"\n\t@echo \"... method/small_world_rand.i\"\n\t@echo \"... method/small_world_rand.s\"\n\t@echo \"... method/small_world_rand_split.o\"\n\t@echo \"... method/small_world_rand_split.i\"\n\t@echo \"... method/small_world_rand_split.s\"\n\t@echo \"... method/spatial_approx_tree.o\"\n\t@echo \"... method/spatial_approx_tree.i\"\n\t@echo \"... method/spatial_approx_tree.s\"\n\t@echo \"... method/vptree.o\"\n\t@echo \"... method/vptree.i\"\n\t@echo \"... method/vptree.s\"\n\t@echo \"... params.o\"\n\t@echo \"... params.i\"\n\t@echo \"... params.s\"\n\t@echo \"... params_cmdline.o\"\n\t@echo \"... params_cmdline.i\"\n\t@echo \"... params_cmdline.s\"\n\t@echo \"... projection.o\"\n\t@echo \"... projection.i\"\n\t@echo \"... projection.s\"\n\t@echo \"... query.o\"\n\t@echo \"... query.i\"\n\t@echo \"... query.s\"\n\t@echo \"... randproj_util.o\"\n\t@echo \"... randproj_util.i\"\n\t@echo \"... randproj_util.s\"\n\t@echo \"... rangequery.o\"\n\t@echo \"... rangequery.i\"\n\t@echo \"... rangequery.s\"\n\t@echo \"... searchoracle.o\"\n\t@echo \"... searchoracle.i\"\n\t@echo \"... searchoracle.s\"\n\t@echo \"... space.o\"\n\t@echo \"... space.i\"\n\t@echo \"... space.s\"\n\t@echo \"... space/space_bit_hamming.o\"\n\t@echo \"... space/space_bit_hamming.i\"\n\t@echo \"... space/space_bit_hamming.s\"\n\t@echo \"... space/space_bregman.o\"\n\t@echo \"... space/space_bregman.i\"\n\t@echo \"... space/space_bregman.s\"\n\t@echo \"... space/space_dummy.o\"\n\t@echo \"... space/space_dummy.i\"\n\t@echo \"... space/space_dummy.s\"\n\t@echo \"... space/space_js.o\"\n\t@echo \"... space/space_js.i\"\n\t@echo \"... space/space_js.s\"\n\t@echo \"... space/space_lp.o\"\n\t@echo \"... space/space_lp.i\"\n\t@echo \"... space/space_lp.s\"\n\t@echo \"... space/space_scalar.o\"\n\t@echo \"... space/space_scalar.i\"\n\t@echo \"... space/space_scalar.s\"\n\t@echo \"... space/space_sparse_lp.o\"\n\t@echo \"... space/space_sparse_lp.i\"\n\t@echo \"... space/space_sparse_lp.s\"\n\t@echo \"... space/space_sparse_scalar_fast.o\"\n\t@echo \"... space/space_sparse_scalar_fast.i\"\n\t@echo \"... space/space_sparse_scalar_fast.s\"\n\t@echo \"... space/space_sparse_vector.o\"\n\t@echo \"... space/space_sparse_vector.i\"\n\t@echo \"... space/space_sparse_vector.s\"\n\t@echo \"... space/space_sparse_vector_inter.o\"\n\t@echo \"... space/space_sparse_vector_inter.i\"\n\t@echo \"... space/space_sparse_vector_inter.s\"\n\t@echo \"... space/space_sqfd.o\"\n\t@echo \"... space/space_sqfd.i\"\n\t@echo \"... space/space_sqfd.s\"\n\t@echo \"... space/space_string.o\"\n\t@echo \"... space/space_string.i\"\n\t@echo \"... space/space_string.s\"\n\t@echo \"... space/space_vector.o\"\n\t@echo \"... space/space_vector.i\"\n\t@echo \"... space/space_vector.s\"\n\t@echo \"... space/space_word_embed.o\"\n\t@echo \"... space/space_word_embed.i\"\n\t@echo \"... space/space_word_embed.s\"\n\t@echo \"... tune_vptree.o\"\n\t@echo \"... tune_vptree.i\"\n\t@echo \"... tune_vptree.s\"\n\t@echo \"... utils.o\"\n\t@echo \"... utils.i\"\n\t@echo \"... utils.s\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/NonMetricSpaceLib.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{08B5B5CC-2938-4C1C-B835-A3868076D791}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>NonMetricSpaceLib</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>StaticLibrary</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>StaticLibrary</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>StaticLibrary</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">NonMetricSpaceLib</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.lib</TargetExt>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">NonMetricSpaceLib</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.lib</TargetExt>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">NonMetricSpaceLib</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.lib</TargetExt>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</IntDir>\n    <IncludePath>C:\\local\\boost_1_59_0;$(IncludePath)</IncludePath>\n    <LibraryPath>C:\\local\\boost_1_59_0\\lib64-msvc-14.0;$(LibraryPath)</LibraryPath>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</IntDir>\n    <IncludePath>C:\\local\\boost_1_59_0\\lib64-msvc-14.0;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>\n    <LibraryPath>C:\\local\\boost_1_59_0\\lib64-msvc-14.0;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\\um\\x64</LibraryPath>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <ProjectReference>\n      <LinkLibraryDependencies>true</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>Full</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n      <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>\n      <WholeProgramOptimization>true</WholeProgramOptimization>\n      <StructMemberAlignment>16Bytes</StructMemberAlignment>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClInclude Include=\"..\\include\\distcomp.h\" />\n    <ClInclude Include=\"..\\include\\distcomp_edist.h\" />\n    <ClInclude Include=\"..\\include\\eval_metrics.h\" />\n    <ClInclude Include=\"..\\include\\eval_results.h\" />\n    <ClInclude Include=\"..\\include\\experimentconf.h\" />\n    <ClInclude Include=\"..\\include\\experiments.h\" />\n    <ClInclude Include=\"..\\include\\factory\\init_methods.h\" />\n    <ClInclude Include=\"..\\include\\factory\\init_spaces.h\" />\n    <ClInclude Include=\"..\\include\\factory\\method\\omedrank.h\" />\n    <ClInclude Include=\"..\\include\\factory\\method\\perm_lsh_bin.h\" />\n    <ClInclude Include=\"..\\include\\factory\\method\\projection_index_incremental.h\" />\n    <ClInclude Include=\"..\\include\\factory\\method\\proj_vptree.h\" />\n    <ClInclude Include=\"..\\include\\factory\\method\\small_world_rand_old.h\" />\n    <ClInclude Include=\"..\\include\\factory\\space\\space_edist.h\" />\n    <ClInclude Include=\"..\\include\\factory\\space\\space_savch.h\" />\n    <ClInclude Include=\"..\\include\\factory\\space\\space_sqfd.h\" />\n    <ClInclude Include=\"..\\include\\factory\\space\\space_word_embed.h\" />\n    <ClInclude Include=\"..\\include\\floatdiff.h\" />\n    <ClInclude Include=\"..\\include\\global.h\" />\n    <ClInclude Include=\"..\\include\\gold_standard.h\" />\n    <ClInclude Include=\"..\\include\\incremental_quick_select.h\" />\n    <ClInclude Include=\"..\\include\\index.h\" />\n    <ClInclude Include=\"..\\include\\init.h\" />\n    <ClInclude Include=\"..\\include\\knnquery.h\" />\n    <ClInclude Include=\"..\\include\\knnqueue.h\" />\n    <ClInclude Include=\"..\\include\\logging.h\" />\n    <ClInclude Include=\"..\\include\\memory.h\" />\n    <ClInclude Include=\"..\\include\\meta_analysis.h\" />\n    <ClInclude Include=\"..\\include\\methodfactory.h\" />\n    <ClInclude Include=\"..\\include\\method\\omedrank.h\" />\n    <ClInclude Include=\"..\\include\\method\\perm_lsh_bin.h\" />\n    <ClInclude Include=\"..\\include\\method\\projection_index_incremental.h\" />\n    <ClInclude Include=\"..\\include\\method\\small_world_rand_old.h\" />\n    <ClInclude Include=\"..\\include\\method\\vptree_old.h\" />\n    <ClInclude Include=\"..\\include\\object.h\" />\n    <ClInclude Include=\"..\\include\\params.h\" />\n    <ClInclude Include=\"..\\include\\permutation_type.h\" />\n    <ClInclude Include=\"..\\include\\permutation_utils.h\" />\n    <ClInclude Include=\"..\\include\\ported_boost_progress.h\" />\n    <ClInclude Include=\"..\\include\\pow.h\" />\n    <ClInclude Include=\"..\\include\\projection.h\" />\n    <ClInclude Include=\"..\\include\\query.h\" />\n    <ClInclude Include=\"..\\include\\query_creator.h\" />\n    <ClInclude Include=\"..\\include\\randproj_util.h\" />\n    <ClInclude Include=\"..\\include\\rangequery.h\" />\n    <ClInclude Include=\"..\\include\\report.h\" />\n    <ClInclude Include=\"..\\include\\searchoracle.h\" />\n    <ClInclude Include=\"..\\include\\simddebug.h\" />\n    <ClInclude Include=\"..\\include\\simdutils.h\" />\n    <ClInclude Include=\"..\\include\\space.h\" />\n    <ClInclude Include=\"..\\include\\spacefactory.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_leven.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sqfd.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_string.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_vector_gen.h\" />\n    <ClInclude Include=\"..\\include\\tune.h\" />\n    <ClInclude Include=\"..\\include\\utils.h\" />\n    <ClInclude Include=\"..\\include\\ztimer.h\" />\n    <ClInclude Include=\"..\\include\\method\\bbtree.h\" />\n    <ClInclude Include=\"..\\include\\method\\dummy.h\" />\n    <ClInclude Include=\"..\\include\\method\\ghtree.h\" />\n    <ClInclude Include=\"..\\include\\method\\lcstrategy.h\" />\n    <ClInclude Include=\"..\\include\\method\\list_clusters.h\" />\n    <ClInclude Include=\"..\\include\\method\\lsh.h\" />\n    <ClInclude Include=\"..\\include\\method\\lsh_multiprobe.h\" />\n    <ClInclude Include=\"..\\include\\method\\lsh_space.h\" />\n    <ClInclude Include=\"..\\include\\method\\multi_index.h\" />\n    <ClInclude Include=\"..\\include\\method\\multi_vantage_point_tree.h\" />\n    <ClInclude Include=\"..\\include\\method\\multi_vantage_point_tree_utils.h\" />\n    <ClInclude Include=\"..\\include\\method\\permutation_index.h\" />\n    <ClInclude Include=\"..\\include\\method\\permutation_index_incremental.h\" />\n    <ClInclude Include=\"..\\include\\method\\permutation_inverted_index.h\" />\n    <ClInclude Include=\"..\\include\\method\\permutation_prefix_index.h\" />\n    <ClInclude Include=\"..\\include\\method\\permutation_vptree.h\" />\n    <ClInclude Include=\"..\\include\\method\\perm_bin_vptree.h\" />\n    <ClInclude Include=\"..\\include\\method\\perm_index_incr_bin.h\" />\n    <ClInclude Include=\"..\\include\\method\\pivot_neighb_invindx.h\" />\n    <ClInclude Include=\"..\\include\\method\\proj_vptree.h\" />\n    <ClInclude Include=\"..\\include\\method\\seqsearch.h\" />\n    <ClInclude Include=\"..\\include\\method\\small_world_rand.h\" />\n    <ClInclude Include=\"..\\include\\method\\spatial_approx_tree.h\" />\n    <ClInclude Include=\"..\\include\\method\\vptree.h\" />\n    <ClInclude Include=\"..\\include\\method\\vptree_utils.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_bit_hamming.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_bregman.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_dummy.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_js.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_lp.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_rank_correl.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_scalar.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sparse_lp.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sparse_scalar.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sparse_scalar_fast.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sparse_vector.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_sparse_vector_inter.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_vector.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_word_embed.h\" />\n    <ClCompile Include=\"cluster_util.cc\" />\n    <ClCompile Include=\"distcomp_bregman.cc\" />\n    <ClCompile Include=\"distcomp_edist.cc\" />\n    <ClCompile Include=\"distcomp_js.cc\" />\n    <ClCompile Include=\"distcomp_lp.cc\" />\n    <ClCompile Include=\"distcomp_rankcorr.cc\" />\n    <ClCompile Include=\"distcomp_scalar.cc\" />\n    <ClCompile Include=\"distcomp_sparse_scalar_fast.cc\" />\n    <ClCompile Include=\"experimentconf.cc\" />\n    <ClCompile Include=\"global.cc\" />\n    <ClCompile Include=\"init.cc\" />\n    <ClCompile Include=\"knnquery.cc\" />\n    <ClCompile Include=\"logging.cc\" />\n    <ClCompile Include=\"memory.cc\" />\n    <ClCompile Include=\"method\\hnsw.cc\">\n      <WarningLevel Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">TurnOffAllWarnings</WarningLevel>\n    </ClCompile>\n    <ClCompile Include=\"method\\hnsw_distfunc_opt.cc\" />\n    <ClCompile Include=\"method\\nndes.cc\" />\n    <ClCompile Include=\"method\\nonmetr_list_clust.cc\" />\n    <ClCompile Include=\"method\\omedrank.cc\" />\n    <ClCompile Include=\"method\\permutation_inverted_index.cc\" />\n    <ClCompile Include=\"method\\permutation_prefix_index.cc\" />\n    <ClCompile Include=\"method\\perm_lsh_bin.cc\" />\n    <ClCompile Include=\"method\\projection_index_incremental.cc\" />\n    <ClCompile Include=\"method\\small_world_rand_split.cc\" />\n    <ClCompile Include=\"params.cc\" />\n    <ClCompile Include=\"params_cmdline.cc\" />\n    <ClCompile Include=\"projection.cc\" />\n    <ClCompile Include=\"query.cc\" />\n    <ClCompile Include=\"randproj_util.cc\" />\n    <ClCompile Include=\"rangequery.cc\" />\n    <ClCompile Include=\"searchoracle.cc\" />\n    <ClCompile Include=\"space.cc\" />\n    <ClCompile Include=\"space\\space_sqfd.cc\" />\n    <ClCompile Include=\"space\\space_string.cc\" />\n    <ClCompile Include=\"utils.cc\" />\n    <ClCompile Include=\"space\\space_bit_hamming.cc\" />\n    <ClCompile Include=\"space\\space_bregman.cc\" />\n    <ClCompile Include=\"space\\space_dummy.cc\" />\n    <ClCompile Include=\"space\\space_js.cc\" />\n    <ClCompile Include=\"space\\space_lp.cc\" />\n    <ClCompile Include=\"space\\space_scalar.cc\" />\n    <ClCompile Include=\"space\\space_sparse_lp.cc\" />\n    <ClCompile Include=\"space\\space_sparse_scalar_fast.cc\" />\n    <ClCompile Include=\"space\\space_sparse_vector.cc\" />\n    <ClCompile Include=\"space\\space_sparse_vector_inter.cc\" />\n    <ClCompile Include=\"space\\space_vector.cc\" />\n    <ClCompile Include=\"space\\space_word_embed.cc\" />\n    <ClCompile Include=\"method\\bbtree.cc\" />\n    <ClCompile Include=\"method\\dummy.cc\" />\n    <ClCompile Include=\"method\\ghtree.cc\" />\n    <ClCompile Include=\"method\\list_clusters.cc\" />\n    <ClCompile Include=\"method\\multi_index.cc\" />\n    <ClCompile Include=\"method\\multi_vantage_point_tree.cc\" />\n    <ClCompile Include=\"method\\perm_bin_vptree.cc\" />\n    <ClCompile Include=\"method\\perm_index_incr_bin.cc\" />\n    <ClCompile Include=\"method\\pivot_neighb_invindx.cc\" />\n    <ClCompile Include=\"method\\proj_vptree.cc\" />\n    <ClCompile Include=\"method\\seqsearch.cc\" />\n    <ClCompile Include=\"method\\small_world_rand.cc\" />\n    <ClCompile Include=\"method\\spatial_approx_tree.cc\" />\n    <ClCompile Include=\"method\\vptree.cc\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/NonMetricSpaceLib.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <ClCompile Include=\"distcomp_bregman.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_js.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_lp.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_rankcorr.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_scalar.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"experimentconf.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"global.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"init.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"knnquery.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"logging.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"query.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"rangequery.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"searchoracle.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"utils.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_bit_hamming.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_bregman.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_dummy.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_js.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_lp.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_scalar.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_sparse_lp.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_sparse_scalar_fast.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_sparse_vector.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_sparse_vector_inter.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_vector.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\bbtree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\dummy.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\ghtree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\list_clusters.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\multi_index.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\multi_vantage_point_tree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\perm_bin_vptree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\perm_index_incr_bin.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\pivot_neighb_invindx.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\proj_vptree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\seqsearch.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\small_world_rand.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\spatial_approx_tree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\vptree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_sparse_scalar_fast.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"memory.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\omedrank.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_sqfd.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_string.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\perm_lsh_bin.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\projection_index_incremental.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"distcomp_edist.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"projection.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"randproj_util.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"params.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space\\space_word_embed.cc\" />\n    <ClCompile Include=\"method\\small_world_rand_split.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"cluster_util.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"params_cmdline.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"space.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\nndes.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\permutation_inverted_index.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\permutation_prefix_index.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\hnsw.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\hnsw_distfunc_opt.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"method\\nonmetr_list_clust.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"..\\include\\distcomp.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\eval_results.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\experimentconf.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\experiments.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\global.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\incremental_quick_select.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\index.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\init.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\knnquery.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\knnqueue.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\logging.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\memory.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\meta_analysis.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\methodfactory.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\object.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\params.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\permutation_type.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\permutation_utils.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\pow.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\query.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\rangequery.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\searchoracle.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\simddebug.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\simdutils.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\spacefactory.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\utils.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\ztimer.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\bbtree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\dummy.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\ghtree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\lcstrategy.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\list_clusters.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\lsh.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\lsh_multiprobe.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\lsh_space.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\multi_index.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\multi_vantage_point_tree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\multi_vantage_point_tree_utils.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\permutation_index.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\permutation_index_incremental.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\permutation_inverted_index.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\permutation_prefix_index.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\permutation_vptree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\perm_bin_vptree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\perm_index_incr_bin.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\pivot_neighb_invindx.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\proj_vptree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\seqsearch.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\small_world_rand.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\spatial_approx_tree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\vptree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\vptree_utils.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_bit_hamming.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_bregman.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_dummy.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_js.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_lp.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_rank_correl.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_scalar.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sparse_lp.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sparse_scalar.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sparse_scalar_fast.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sparse_vector.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sparse_vector_inter.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_vector.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\space\\space_savch.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_vector_gen.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\omedrank.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\method\\omedrank.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_sqfd.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\space\\space_string.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\space\\space_sqfd.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\space\\space_edist.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\method\\proj_vptree.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\method\\projection_index_incremental.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\method\\small_world_rand_old.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\perm_lsh_bin.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\method\\perm_lsh_bin.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\factory\\init_methods.h\" />\n    <ClInclude Include=\"..\\include\\factory\\init_spaces.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_leven.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\distcomp_edist.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\eval_metrics.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\floatdiff.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\gold_standard.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\ported_boost_progress.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\projection.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\query_creator.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\randproj_util.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\report.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\tune.h\">\n      <Filter>Header Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"..\\include\\method\\projection_index_incremental.h\" />\n    <ClInclude Include=\"..\\include\\method\\small_world_rand_old.h\" />\n    <ClInclude Include=\"..\\include\\method\\vptree_old.h\" />\n    <ClInclude Include=\"..\\include\\factory\\space\\space_word_embed.h\" />\n    <ClInclude Include=\"..\\include\\space\\space_word_embed.h\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{3EF538C7-CC7F-4CC0-AA2E-461C0B950388}</UniqueIdentifier>\n    </Filter>\n    <Filter Include=\"Header Files\">\n      <UniqueIdentifier>{A0619B9B-3811-4489-B026-9AB33496A03D}</UniqueIdentifier>\n    </Filter>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/cluster_util.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <random>\n#include <cmath>\n#include <unordered_map>\n#include <functional>\n#include <cluster_util.h>\n#include <utils.h>\n#include <ported_boost_progress.h>\n\n#define PARANOID_CHECK\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nstruct DataWrapper {\n  DataWrapper(IdTypeUnsign dataId, IdType centerIndex, const Object* pCenter, dist_t dist) :\n      dataId_(dataId), centerIndex_(centerIndex), pCenter_(pCenter), dist_(dist) { }\n  DataWrapper(){}\n\n  IdTypeUnsign  dataId_ = 0;\n  IdType        centerIndex_ = -1;\n  const Object* pCenter_ = NULL;\n  dist_t        dist_ = 0;\n};\n\nusing namespace std;\nconst size_t MIN_ITER_PROGRESS_QTY = 1000; // A minimum # of assigned items that we expect to see in a single iteration\n\nconst float  MAX_UNASSIGN_FRACT    = 0.02;\n\nconst bool PRINT_FIRMAL_DEBUG = false;\nconst bool PRINT_CLARANS_DEBUG = false;\n\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::doFIRMAL(bool PrintProgress,\n                                    const Space<dist_t>&   space,          // A space object\n                                    ObjectVector           data,           // A list of objects, it is copied\n                                    float                  ExpCenterQty,   // A hint for the number of clusters, the acutal # fo clusters can be much longer\n                                    ObjectVector&          vCenters,       // Centers\n                                    vector<shared_ptr<DistObjectPairVector<dist_t>>>&  vClustAssign, // Cluster assignment\n                                    ObjectVector&          vUnassigned,\n                                    size_t                 SearchCloseIterQty,// A # of search iterations to find a point that is close to already selected centers\n    // For good performance it should be in the order of sqrt(data.size())\n                                    size_t                 SampleDistQty,   // A # of samples to determine the distribution of distances\n                                    bool                   bUseAllClustersInIter // If true the point is compared against all previously created clusters\n) {\n  std::mt19937  randGen;\n  std::shuffle(data.begin(), data.end(), randGen);\n\n  vUnassigned.clear();\n\n  LOG(LIB_INFO) << \"ExpCenterQty          = \" << ExpCenterQty;\n  LOG(LIB_INFO) << \"SearchCloseIterQty    = \" << SearchCloseIterQty;\n  LOG(LIB_INFO) << \"SampleDistQty         = \" << SampleDistQty;\n\n  CHECK_MSG(SampleDistQty > 0, \"The number of samples shouldn't be zero!\");\n\n  if (data.empty()) return;\n  CHECK_MSG(SampleDistQty > 0, \"The number of samples should be > 0!\");\n  CHECK_MSG(ExpCenterQty >= 2, \"There should be at least two centers!\");\n\n  vCenters.clear();\n  vClustAssign.clear();\n\n  unique_ptr<ProgressDisplay> progress_bar;\n\n  if (PrintProgress) {\n    LOG(LIB_INFO) << \"Sampling progress: \";\n    progress_bar.reset(new ProgressDisplay(SampleDistQty, cerr));\n  }\n\n  vector<dist_t> dists;\n\n  for (size_t i = 0; i < SampleDistQty; ++i) {\n    IdType id1 = RandomInt() % data.size();\n    IdType id2 = RandomInt() % data.size();\n    dist_t dist = space.IndexTimeDistance(data[id1], data[id2]);\n    dists.push_back(dist);\n    if (progress_bar.get()) (*progress_bar) += 1;\n  }\n  sort (dists.begin(), dists.end());\n\n  float ExpClustSize = round(min<float>(max<float>(1, SampleDistQty / ExpCenterQty), SampleDistQty - 1));\n  size_t pctPos = size_t(ExpClustSize);\n  CHECK(pctPos < dists.size());\n  float R = dists[pctPos];\n\n  LOG(LIB_INFO) << \"Expected center #: \" << ExpCenterQty << \" Expected in sample pos (for percentiles only): \" << ExpClustSize;\n  LOG(LIB_INFO) << \"Sampled distances: [\" << dists[0] << \",\" << dists.back() << \"] \";\n  CHECK(!dists.empty());\n  LOG(LIB_INFO) << \"5%/50%/100% percentiles: [\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.05))] << \",\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.5))]  << \",\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.95))] << \"]\";\n  LOG(LIB_INFO) << \"R =\" << R << \", this represents \" << pctPos << \"th entry\";\n\n  if (PrintProgress) {\n    cerr << \"Center-selection progress: \";\n    progress_bar.reset(new ProgressDisplay(data.size(), cerr));\n  }\n\n  if (data.empty()) return;\n  vector<DataWrapper<dist_t>>            dataArr(data.size());\n  for (IdTypeUnsign did = 0; did < data.size(); ++did) {\n    dataArr[did] = DataWrapper<dist_t>({did, -1, NULL, 0});\n  }\n  /*\n   * In the loop we move assigned objects, including new cluster centers to the beginning of the data array\n   * and the temporarily unassigned objects (center candidates) to the end of the array. Clusters, will be\n   * collected in the end of the array.\n   *\n   * The structure of the array:\n   * [ assigned ] [ not yet processed ] [not assigned in the current iteration ] [ current iteration clusters ] [ previous iteration clusters ]\n   * The number of assigned points is: assignedQty\n   * The last index of not yet processed is lastUnprocInIterPlus1 - 1\n   * The last index of the not yet assigned in the current iteration is lastCluster - 1\n   * The last index of the current iteration clusters is data.size() - iterStartCent - 1\n   */\n  CHECK(!data.empty());\n  IdTypeUnsign lastCluster = data.size();\n\n  IdTypeUnsign stopQty = (IdTypeUnsign)data.size() * 0.01;\n  IdTypeUnsign assignedQty = 0, iterNum = 0;\n\n  vector<const Object*> vTmpClustCenter;\n  vector<IdTypeUnsign > vTmpClustQty;\n\n  IdTypeUnsign lastUnprocInIterPlus1 = data.size();\n\n  CHECK(stopQty > 0);\n\n  size_t prevAssignQty = 0;\n\n  while (lastCluster > assignedQty && assignedQty < (1-MAX_UNASSIGN_FRACT)*data.size()) {\n    ++iterNum;\n\n    IdTypeUnsign  trueCenterQty = vTmpClustCenter.size();\n    if (assignedQty - prevAssignQty < MIN_ITER_PROGRESS_QTY) {\n      if (PRINT_FIRMAL_DEBUG) {\n        LOG(LIB_INFO) << \"The progress in the previous iteration is too small, let's try to increase the radius\";\n      }\n      if (pctPos >= dists.size()/2) {\n        LOG(LIB_INFO) << \"Cannot further increase radius, exiting (pctPos == dists.size())\";\n        goto fin;\n      }\n\n      dist_t oldR = R;\n      pctPos = min<IdTypeUnsign>(pctPos*2, min(dists.size()/2, dists.size()- 1));\n      R = dists[pctPos];\n      if (PRINT_FIRMAL_DEBUG) {\n        LOG(LIB_INFO) << \"Increasing radius from \" << oldR << \" to \" << R;\n      }\n    }\n    prevAssignQty = assignedQty;\n\n    if (PRINT_FIRMAL_DEBUG)\n      LOG(LIB_INFO) << \"Iteration: \" << iterNum << \" assignedQty=\" << assignedQty <<\n      \" centerQty=\" << trueCenterQty << \" R=\" << R << \" total centerQty=\" << vTmpClustCenter.size();\n\n    IdTypeUnsign iterStartCent = vTmpClustCenter.size();\n    IdTypeUnsign lastClusterIterStart = lastCluster;\n\n    CHECK(lastCluster > 1);\n    {\n      // Select a random cluster in the range [assignedQty, lastCluster)\n      IdTypeUnsign cid = assignedQty + RandomInt() % (lastCluster - assignedQty);\n\n      dataArr[cid].pCenter_     = data[dataArr[cid].dataId_];\n      dataArr[cid].centerIndex_ = vTmpClustCenter.size();\n      vTmpClustCenter.push_back(dataArr[cid].pCenter_);\n      if (PRINT_FIRMAL_DEBUG)\n        LOG(LIB_INFO) << \"New cluster candidate: objId=\" << dataArr[cid].pCenter_->id();\n      vTmpClustQty.push_back(0);\n\n      --lastCluster;\n      swap(dataArr[cid], dataArr[lastCluster]); // Becomes a new cluster\n    }\n\n    lastUnprocInIterPlus1 = lastCluster;\n\n    IdTypeUnsign batchUnassignQty = 0;\n    while (assignedQty < lastUnprocInIterPlus1) {\n      if (batchUnassignQty < SearchCloseIterQty) {\n        IdTypeUnsign randUnAssignId = assignedQty + RandomInt() % (lastUnprocInIterPlus1 - assignedQty); // Sample among yet unprocessed\n        // Ok here we found a non-yet-visited node, check if it can be attached to one of the existing clusters\n        IdType closestCenterIndex = -1;\n        dist_t minDist = numeric_limits<dist_t>::max();\n        /*\n         * Here, we start from iterStartCent, because all the points \"had a chance\" to be connected to these clusters.\n         * In additions, all vTmpClustCenter elements are non-NULL for the current iteration, but this is not true\n         * for clusters from previous iterations. Specifically, when we find empty clusters in the end of the iteration,\n         * we NULLify respective elements of vTmpClustCenter and return cluster centers into the game (so that they\n         * can be linked/clustered in subsequent iterations).\n         * An alternative version where we start from zero seems to be too slow (ALSO don't forget that some clusters may be NULLs)\n         */\n        CHECK(!vTmpClustCenter.empty());\n        for (IdTypeUnsign centerId = bUseAllClustersInIter ? 0 : iterStartCent; centerId < vTmpClustCenter.size(); ++centerId) {\n          CHECK(vTmpClustCenter[centerId]!=NULL);\n          dist_t dist = space.IndexTimeDistance(data[dataArr[randUnAssignId].dataId_] /* object or query is the left argument */,\n                                                vTmpClustCenter[centerId] /* cluster center is the right argument */);\n          if (dist <= R && dist <= minDist) {\n            minDist = dist;\n            closestCenterIndex = centerId;\n            // Don't break we may find a better cluster assignment\n            // break;\n          }\n        }\n\n        if (closestCenterIndex >= 0) {\n          if (progress_bar.get()) *progress_bar += 1;\n          vTmpClustQty[closestCenterIndex]++;\n          dataArr[randUnAssignId].pCenter_   = vTmpClustCenter[closestCenterIndex];\n          dataArr[randUnAssignId].centerIndex_ = -2; // This marks an assigned data point\n          dataArr[randUnAssignId].dist_ = minDist;\n          if (PRINT_FIRMAL_DEBUG) {\n            LOG(LIB_INFO) << \"Excluded cid=\" << randUnAssignId << \" (regular attach) \"\n            << \" dataId=\" << dataArr[randUnAssignId].dataId_\n            << \" objId=\" << data[dataArr[randUnAssignId].dataId_]->id()\n            << \" dist = \" << dataArr[randUnAssignId].dist_\n            << \" cluster center objId=\" << dataArr[randUnAssignId].pCenter_->id()\n            << \" center qty: \" << vTmpClustCenter.size() << \"# of centers in iteration (\"<<iterNum<<\"): \" << (vTmpClustCenter.size() - iterStartCent)\n            << \" assignedQty: \" << assignedQty;\n          }\n          swap(dataArr[randUnAssignId], dataArr[assignedQty]); // Moving the assigned entity to the beginning of the queue\n          ++assignedQty;\n          batchUnassignQty = 0;\n          continue;\n        } else {\n          CHECK(lastUnprocInIterPlus1 > 0); // By design lastUnprocInIterPlus1 > assignedQty >= 0, see the above loop conditions\n          CHECK(dataArr[randUnAssignId].centerIndex_ == -1);\n          CHECK(dataArr[randUnAssignId].pCenter_ == NULL);\n          CHECK(lastUnprocInIterPlus1 > assignedQty);\n          swap(dataArr[lastUnprocInIterPlus1 - 1], dataArr[randUnAssignId]);\n          lastUnprocInIterPlus1--;\n          batchUnassignQty++;\n          continue;\n        }\n      } else {\n        /*\n         * Let's select a random unassigned point to be a new cluster.\n         * After doing so, we also have to check, if this point can become a center\n         * of previously unassigned points.\n         */\n        CHECK(lastUnprocInIterPlus1 < lastCluster);\n        /*\n        * When the new cluster is selected: lastCluster == lastUnprocInIterPlus1.\n        * However, afterwards we make batchUnassignQty < 0 unsuccessful attempts to assign\n        * a data points, each of which leads to decrementing lastUnprocInIterPlus1\n        */\n        IdTypeUnsign cid = lastUnprocInIterPlus1 + RandomInt() % (lastCluster - lastUnprocInIterPlus1);\n        --lastCluster;\n        IdTypeUnsign  centerId = vTmpClustCenter.size();\n        dataArr[cid].centerIndex_ = centerId;\n        dataArr[cid].pCenter_ = data[dataArr[cid].dataId_];\n        vTmpClustCenter.push_back(dataArr[cid].pCenter_);\n        vTmpClustQty.push_back(0);\n        if (PRINT_FIRMAL_DEBUG)\n          LOG(LIB_INFO) << \"New cluster candidate: objId=\" << dataArr[cid].pCenter_->id();\n\n        // Now swap\n        swap(dataArr[cid], dataArr[lastCluster]);\n\n        for (IdTypeUnsign cid = lastUnprocInIterPlus1; cid < lastCluster; ++cid) {\n          CHECK(!vTmpClustCenter.empty());\n          dist_t dist = space.IndexTimeDistance(data[dataArr[cid].dataId_] /* object or query is the left argument */,\n                                                vTmpClustCenter.back() /* cluster center is the right argument */);\n          if (dist <= R) {\n            if (progress_bar.get()) *progress_bar += 1;\n            dataArr[cid].centerIndex_ = -2; // This marks an assigned data point\n            dataArr[cid].pCenter_ = vTmpClustCenter[centerId];\n            vTmpClustQty[centerId]++;\n            dataArr[cid].dist_ = dist;\n            if (PRINT_FIRMAL_DEBUG) {\n              LOG(LIB_INFO) << \"Excluded cid=\" << cid << \" (late attach) \"\n              << \" dataId=\" << dataArr[cid].dataId_\n              << \" objId=\" << data[dataArr[cid].dataId_]->id()\n              << \" dist = \" << dataArr[cid].dist_\n              << \" cluster center objId=\" << dataArr[cid].pCenter_->id()\n              << \" center qty: \" << (vTmpClustCenter.size()) << \"# of centers in iteration (\"<<iterNum<< \") \"<< (vTmpClustCenter.size() - iterStartCent)\n              << \" assignedQty: \" << assignedQty;\n            }\n            swap(dataArr[cid], dataArr[assignedQty]);\n            ++assignedQty;\n          }\n        }\n        batchUnassignQty=0; // Resetting this value\n      }\n    }\n    /*\n     * Let's get rid of empty clusters generated in this iteration!\n     * Note that centerIndex_ is only valid in this iteration,\n     * however, we are not going to delete clusters generated in previous iterations (with\n     * a potentially invalid centerIndex_)\n     */\n\n    vector<IdTypeUnsign> vDelIds;\n    for (IdTypeUnsign i = lastCluster; i < lastClusterIterStart; ++i) {\n      IdType centerIndex = dataArr[i].centerIndex_;\n      CHECK(centerIndex >= 0);\n      CHECK(centerIndex >= iterStartCent);\n      CHECK(vTmpClustCenter[centerIndex] != NULL);\n      if (!vTmpClustQty[centerIndex]) {\n        CHECK(lastCluster >= assignedQty);\n        if (PRINT_FIRMAL_DEBUG) LOG(LIB_INFO) << \"Reclaiming a cluster of an empty center! dataId=\" <<\n              dataArr[i].dataId_ << \" objId=\" << data[dataArr[i].dataId_]->id();\n        dataArr[i].pCenter_ = NULL; // No cluster center any more\n        dataArr[i].dist_ = 0;\n        dataArr[i].centerIndex_ = -1;\n        vDelIds.push_back(centerIndex);\n        swap(dataArr[i], dataArr[lastCluster]);\n        ++lastCluster;\n        CHECK(lastCluster > assignedQty);\n      }\n    }\n    // Don't forget to sort IDs (that we have to delete) in the **DESCENDING** order!\n    // otherwise the deletion algorithm will fail miserably\n    sort(vDelIds.begin(), vDelIds.end(), std::greater<IdTypeUnsign>());\n    CHECK(vDelIds.size() < 2 || (vDelIds[0] > vDelIds[1]));\n\n    for (IdType delId: vDelIds) {\n      if (PRINT_FIRMAL_DEBUG)\n        LOG(LIB_INFO) << \"Actually deleting previously reclaimed cluster, objId=\" << vTmpClustCenter[delId]->id();\n      vTmpClustCenter.erase(vTmpClustCenter.begin() + delId);\n      vTmpClustQty.erase(vTmpClustQty.begin() + delId);\n    }\n    CHECK(vTmpClustCenter.size() == vTmpClustQty.size());\n  }\n  fin:\n  if (progress_bar.get()) *progress_bar += data.size() - progress_bar->count();\n\n  // Now create the final representation\n  unordered_map<const Object*,IdTypeUnsign> ptr2pos;\n\n  for (IdTypeUnsign pos = 0; pos < vTmpClustCenter.size(); ++pos) {\n    CHECK(vTmpClustCenter[pos] != NULL);\n/*\n    if (PRINT_FIRMAL_DEBUG)\n      LOG(LIB_INFO) << \"Cluster # \" << pos << \" qty: \" << vTmpClustQty[pos] << \" objId=\" << vTmpClustCenter[pos]->id();\n*/\n    vCenters.push_back(vTmpClustCenter[pos]);\n    vClustAssign.push_back(shared_ptr<DistObjectPairVector<dist_t>>(new DistObjectPairVector<dist_t>()));\n    ptr2pos.insert(make_pair(vTmpClustCenter[pos], pos));\n  }\n\n  CHECK(vCenters.size() == vClustAssign.size());\n  for (IdTypeUnsign i = 0; i < assignedQty; ++i) {\n    const DataWrapper<dist_t> o = dataArr[i];\n    CHECK(o.centerIndex_ == -2);\n    CHECK(o.pCenter_ != NULL);\n\n    CHECK_MSG(o.pCenter_ != NULL, \"Bug: encountered an unassigned points, while expecting an assigned one!\");\n    auto it = ptr2pos.find(o.pCenter_);\n    CHECK_MSG(it != ptr2pos.end(),\n              \"Bug: cannot find an array position of the cluster with objId=\"+ConvertToString(o.pCenter_->id())+\n    \" dataId=\"+ConvertToString(o.dataId_));\n    IdTypeUnsign  pos = it->second;\n    CHECK(pos < vClustAssign.size());\n    vClustAssign[pos]->push_back(make_pair(o.dist_, data[o.dataId_]));\n  }\n\n  for (IdTypeUnsign i = assignedQty; i < lastCluster; ++i) {\n    const DataWrapper<dist_t> o = dataArr[i];\n    CHECK(o.centerIndex_ == -1);\n    CHECK(o.pCenter_ == NULL);\n    vUnassigned.push_back(data[o.dataId_]);\n  }\n\n  LOG(LIB_INFO) << \"Created: \" << vCenters.size() << \" centers in \" << iterNum << \" iterations\";\n  LOG(LIB_INFO) << \"The number of unassigned data points: \" << (data.size() - assignedQty - vCenters.size());\n  LOG(LIB_INFO) << \"The number of unassigned data points collected: \" << vUnassigned.size();\n\n  CHECK(data.size() - assignedQty - vCenters.size() == vUnassigned.size());\n\n  CHECK(vCenters.size() == vClustAssign.size());\n  sortInsideClustersDist(vClustAssign);\n}\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::doCLARANS(bool PrintProgress,\n                                     const Space<dist_t>&         space,    // A space object\n                                     ObjectVector                 data,     // A list of objects, it is copied\n                                     size_t                       centerQty,// Number of clusters/centers\n                                     ObjectVector&                vCenters, // Centers\n                                     vector<shared_ptr<DistObjectPairVector<dist_t>>>&     vClustAssign, // Cluster assignment\n                                     IdTypeUnsign                 inClusterSwapAttempts, // Number of random swaps to find a better cluster center\n                                     IdTypeUnsign                 inClusterSampleQty, // Number of random points to estimate if the swap was beneficial\n                                     size_t                       randRestQty,// A number of random restarts\n                                     IdTypeUnsign                 maxIterQty, // A maximum number of iterations\n                                     double                       errMinDiff  // Stop iterating if the total configuration\n    // cost doesn't decrease by at least this value\n) {\n  static std::mt19937       randGen;\n\n  LOG(LIB_INFO) << \"centerQty               = \" << centerQty;\n  LOG(LIB_INFO) << \"inClusterSwapAttempts   = \" << inClusterSwapAttempts;\n  LOG(LIB_INFO) << \"inClusterSampleQty      = \" << inClusterSampleQty;\n  LOG(LIB_INFO) << \"randRestQty             = \" << randRestQty;\n  LOG(LIB_INFO) << \"maxIterQty              = \" << maxIterQty;\n  LOG(LIB_INFO) << \"errMinDiff              = \" << errMinDiff;\n\n  CHECK_MSG(data.size() >= centerQty,\n            \"The number of objects is too small, expecting at least the number of centers/clusters! # of clusters/centers: \"\n            + ConvertToString(centerQty) + \" # of data points: \" + ConvertToString(data.size()));\n  size_t N = data.size();\n\n  double bestConfigCost = numeric_limits<double>::max();\n\n#ifdef PARANOID_CHECK\n  {\n\n    IdType MaxId = 0;\n    for (const Object *pObj: data) {\n      MaxId = max(MaxId, pObj->id());\n      CHECK_MSG(pObj->id()>=0, \"Got negative Id!\");\n    }\n\n    // Sanity check, is our data correct?\n    {\n      vector<bool> seen(MaxId+1);\n      for (const Object *pObj: data) {\n        CHECK_MSG(!seen[pObj->id()],\n                  \"Inconsistent data, repeating id: \" + ConvertToString(pObj->id()));\n        seen[pObj->id()] = true;\n      }\n    }\n  }\n#endif\n\n  for (size_t randRestId = 0; randRestId < randRestQty; ++randRestId) {\n#ifdef PARANOID_CHECK\n    IdType MaxId = 0;\n    for (const Object *pObj: data) {\n      MaxId = max(MaxId, pObj->id());\n    }\n\n    // Sanity check, is our data correct?\n    {\n      vector<bool> seen(MaxId+1);\n      for (const Object *pObj: data) {\n        CHECK_MSG(!seen[pObj->id()],\n                  \"Inconsistent data (before shuffle), repeating id: \" + ConvertToString(pObj->id()) + \" randRestId=\" + ConvertToString(randRestId));\n        seen[pObj->id()] = true;\n      }\n    }\n#endif\n    std::shuffle(data.begin(), data.end(), randGen);\n\n#ifdef PARANOID_CHECK\n    // Sanity check, is our data correct?\n    {\n      vector<bool> seen(MaxId+1);\n      for (const Object *pObj: data) {\n        CHECK_MSG(!seen[pObj->id()],\n                  \"Inconsistent data (after shuffle), repeating id: \" + ConvertToString(pObj->id()) + \" randRestId=\" + ConvertToString(randRestId));\n        seen[pObj->id()] = true;\n      }\n    }\n#endif\n\n    LOG(LIB_INFO) << \"Found \" << centerQty << \" random seeds! Random restart id: \" << randRestId;\n\n    vector<double> vClustErr(centerQty);\n\n    size_t reserveQty = 4 * float(N) / centerQty;\n\n\n    vector<vector<pair<dist_t,IdTypeUnsign>>> vClustAssignLoc(centerQty);\n\n    double prevConfCost = numeric_limits<double>::max();\n\n    for (size_t iter = 0; iter < maxIterQty; ++iter) {\n      LOG(LIB_INFO) << \"Iteration: \" << iter << \" let's find closest centers!\";\n      size_t swapQty = 0;\n      CHECK(data.size() >= centerQty); // See the check in the beginning of the function\n\n      for (size_t cid = 0; cid < centerQty; ++cid) {\n        vClustErr[cid] = 0;\n        vClustAssignLoc[cid].clear();\n        vClustAssignLoc[cid].reserve(reserveQty);\n      }\n\n      double confCost = 0;\n\n      for (size_t did = centerQty; did < N; ++did) {\n        dist_t minDist = numeric_limits<dist_t>::max();\n        size_t bestClust = 0;\n        for (size_t cid = 0; cid < centerQty; ++cid) {\n          dist_t d = space.IndexTimeDistance(data[did] /* object or query is the left argument */,\n                                             data[cid] /* cluster center is the right argument */);\n          if (d < minDist) {\n            minDist = d;\n            bestClust = cid;\n          }\n        }\n\n        vClustAssignLoc[bestClust].push_back(make_pair(minDist, did));\n        // If a point is selected for cluster-quality estimation\n        // incorporate its distance to the center into the error (by adding it)\n        if (vClustAssignLoc[bestClust].size() <= inClusterSampleQty)\n          vClustErr[bestClust] += minDist;\n\n        confCost += minDist;\n      }\n\n      LOG(LIB_INFO) << \"All points are assigned to clusters.\";\n      LOG(LIB_INFO) << \"Configuration cost: \" << confCost << \" previous cost: \" << prevConfCost;\n      if (iter > 0 && prevConfCost - confCost < errMinDiff) {\n        LOG(LIB_ERROR) << \"Change in configuration error < \" << errMinDiff << \" finishing...\";\n        break;\n      }\n      if (iter +1 == maxIterQty) {\n        LOG(LIB_INFO) << \"Maximum # of iterations carried out, exiting.\";\n        break;\n      }\n      /*\n       * IMPORTANT NOTE: If we have to exit the loop, e.g., because we reached the maximum # of iterations,\n       * we must break here, but no further. Subsequent swaps invalidate the distances to centers stored in vClustAsslignLoc[...][...].first\n       * Simply because changing the cluster center entails recalculation of all distances to the new center.\n       * However, we don't do this until the beginning of the iteration.\n       * Hence, if any swaps ocurr, we do not stop until these distances are recalculated. Otherwise, incorrect\n       * data will be returned from the function\n       */\n      if (PRINT_CLARANS_DEBUG) {\n        LOG(LIB_INFO) << \"Cluster centers: \";\n        vector<IdType> tmp;\n        for (size_t cid = 0; cid < centerQty; ++cid) {\n          tmp.push_back(data[cid]->id());\n        }\n        LOG(LIB_INFO) << MergeIntoStr(tmp, ' ');\n      }\n      prevConfCost = confCost;\n      for (size_t cid = 0; cid < centerQty; ++cid) {\n        // Points are already shuffled\n        size_t currClustQty = vClustAssignLoc[cid].size();\n        if (currClustQty < inClusterSampleQty) continue; // The cluster is too small\n\n        size_t swapAttempts = min<size_t>(\n            currClustQty - inClusterSampleQty, // Doesn't make sense to make more than this # of random swaps\n            inClusterSwapAttempts);\n        for (size_t att = 0; att < swapAttempts; ++att) {\n          IdTypeUnsign randCandPos = inClusterSampleQty +\n                                     // This way a new candidate is never the same\n                                     // as the one of \"samplers\"\n                                     RandomInt() % (currClustQty - inClusterSampleQty);\n          IdTypeUnsign randCandId = vClustAssignLoc[cid][randCandPos].second;\n          swap(data[cid], data[randCandId]); // do a swap\n          // Compute a new error.\n          double newErr = 0;\n          CHECK(inClusterSampleQty < vClustAssignLoc[cid].size());\n          for (size_t k = 0; k < inClusterSampleQty; ++k) {\n            newErr += space.IndexTimeDistance(data[vClustAssignLoc[cid][k].second]/* object or query is the left argument */,\n                                              data[cid] /* cluster center is the right argument */);\n          }\n          if (newErr < vClustErr[cid]) {\n            //LOG(LIB_INFO) << vClustErr[cid] << \" -> \" << newErr;\n            vClustErr[cid] = newErr;\n            swapQty++;\n            //break;\n          } else {\n            swap(data[cid], data[randCandId]); // do a reversing swap\n          }\n        }\n      }\n\n      /*\n       * IMPORTANT NOTE: swaps invalidate the distances to centers stored in vClustAsslignLoc[...][...].first\n       * Simply because changing the cluster center entails recalculation of all distances to the new center.\n       * However, we don't do this until the beginning of the iteration.\n       * Hence, if any swaps ocurr, we do not stop until these distances are recalculated. Otherwise, incorrect\n       * data will be returned from the function\n       */\n\n      LOG(LIB_INFO) << \"The number of swaps in this iteration: \" << swapQty;\n      if (swapQty == 0) {\n        LOG(LIB_INFO) << \"No changes, process converged\";\n        break;\n      }\n    }\n\n    if (0 == randRestId || prevConfCost < bestConfigCost) {\n      LOG(LIB_INFO) << \"Found a better configuration: \" << prevConfCost << \" previous best cost: \" << bestConfigCost;\n      bestConfigCost = prevConfCost;\n\n#ifdef PARANOID_CHECK\n      // Sanity check, if we swapped correctly, all IDs in data should be unique\n      {\n        vector<bool> seen(MaxId+1);\n        for (const Object *pObj: data) {\n          CHECK_MSG(!seen[pObj->id()],\n                    \"Bug, repeating id: \" + ConvertToString(pObj->id()));\n          seen[pObj->id()] = true;\n        }\n      }\n#endif\n\n      vClustAssign.resize(centerQty);\n      for (size_t cid = 0; cid < centerQty; ++cid) {\n        vClustAssign[cid].reset(new DistObjectPairVector<dist_t>());\n        vClustAssign[cid]->reserve(vClustAssignLoc[cid].size());\n        for (auto curr : vClustAssignLoc[cid]) {\n          dist_t dist = curr.first;\n          IdType id = curr.second;\n          vClustAssign[cid]->push_back(make_pair(dist, data[id]));\n        }\n\n      }\n      vCenters.resize(centerQty);\n      for (size_t cid = 0; cid < centerQty; ++cid)\n        vCenters[cid] = data[cid];\n    } else {\n      LOG(LIB_INFO) << \"Current configuration's cost: \" << prevConfCost << \" is worse than the previous best cost: \" << bestConfigCost;\n    }\n  }\n}\n\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::doReductiveCLARANS(bool PrintProgress,\n                                                  const Space<dist_t>&   space,     // A space object\n                                                  ObjectVector           data,     // A list of objects, it is copied\n                                                  IdTypeUnsign           maxMetaIterQty,\n                                                  float                  keepFrac, // Percentage of assigned points kept after a meta-iteration is finished\n                                                  size_t                 centerQty, // Number of clusters/centers\n                                                  ObjectVector&          vCentersGlobal,  // Centers\n                                                  vector<shared_ptr<DistObjectPairVector<dist_t>>>&  vClusterAssignGlobal, // Cluster assignment\n                                                  ObjectVector&          vUnassigned,    // Unassigned points\n                                                  IdTypeUnsign           inClusterSwapAttempts, // Number of random swaps to find a better cluster center\n                                                  IdTypeUnsign           inClusterSampleQty, // Number of random points to estimate if the swap was beneficial\n                                                  IdTypeUnsign           maxIterQty, // A maximum number of iterations in one meta-iteration\n                                                  double                 errMinDiff // Stop iterating if the total configuration\n                                                                                    // cost doesn't decrease by at least this value\n) {\n  size_t origDataSize = data.size();\n\n  unique_ptr<ProgressDisplay> progress_bar;\n\n  const size_t SampleDistQty = SAMPLE_LIST_CLUST_DEFAULT_SAMPLE_QTY;\n  if (PrintProgress) {\n    cerr << \"Sampling progress: \";\n    progress_bar.reset(new ProgressDisplay(SampleDistQty, cerr));\n  }\n\n  vector<dist_t> dists;\n\n  for (size_t i = 0; i < SampleDistQty; ++i) {\n    IdType id1 = RandomInt() % data.size();\n    IdType id2 = RandomInt() % data.size();\n    dist_t dist = space.IndexTimeDistance(data[id1], data[id2]);\n    dists.push_back(dist);\n    if (progress_bar.get()) (*progress_bar) += 1;\n  }\n  sort (dists.begin(), dists.end());\n\n  float ExpClustSize = round(min<float>(max<float>(1, SampleDistQty / centerQty), SampleDistQty - 1));\n  size_t pctPos = size_t(ExpClustSize);\n  CHECK(pctPos < dists.size());\n  float R = dists[pctPos];\n  LOG(LIB_INFO) << \"Sampled distances: [\" << dists[0] << \",\" << dists.back() << \"] \";\n  CHECK(!dists.empty());\n  LOG(LIB_INFO) << \"5%/50%/100% percentiles: [\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.05))] << \",\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.5))]  << \",\"\n  << dists[min(dists.size()-1,static_cast<size_t>(dists.size()*0.95))] << \"]\";\n  LOG(LIB_INFO) << \"R =\" << R << \", this represents \" << pctPos << \"th entry\";\n\n\n  vUnassigned.clear();\n\n  vCentersGlobal.clear();\n  vClusterAssignGlobal.clear();\n\n  LOG(LIB_INFO) << \"maxMetaIterQty  = \" << maxMetaIterQty;\n  LOG(LIB_INFO) << \"keepFrac        = \" << keepFrac;\n\n  for (IdTypeUnsign metaIter = 0;\n       metaIter < maxMetaIterQty && data.size() >= origDataSize * 0.01 ;\n//           data.size() >= centerQty * REDUCTIVE_CLARANS_MIN_CLUSTER_SIZE;\n       ++metaIter) {\n\n    LOG(LIB_INFO) << \"Meta iteration: \" << metaIter << \" # of data points \" << data.size();\n    ObjectVector                                      vCentersMetaIter;\n    vector<shared_ptr<DistObjectPairVector<dist_t>>>  vClusterAssignMetaIter;\n\n    ClusterUtils<dist_t>::doCLARANS(PrintProgress,\n              space,\n              data,\n              centerQty,\n              vCentersMetaIter,\n              vClusterAssignMetaIter,\n              inClusterSwapAttempts,\n              inClusterSampleQty,\n               1 /* randRestQty */,\n              maxIterQty,\n              errMinDiff);\n\n\n    ObjectVector newData;\n\n    CHECK(vCentersMetaIter.size() == vClusterAssignMetaIter.size());\n\n\n\n    for (IdTypeUnsign cid = 0; cid < vCentersMetaIter.size(); ++cid) {\n      vCentersGlobal.push_back(vCentersMetaIter[cid]);\n      if (metaIter + 1 >= maxMetaIterQty) {\n        vClusterAssignGlobal.push_back(vClusterAssignMetaIter[cid]);\n      } else {\n        size_t keepSize = (size_t) round(keepFrac * vClusterAssignMetaIter[cid]->size());\n        shared_ptr<DistObjectPairVector<dist_t>> keepAssign(new DistObjectPairVector<dist_t>());\n\n/*        for (IdTypeUnsign i = 0; i < keepSize; ++i) {\n          keepAssign->push_back((*vClusterAssignMetaIter[cid])[i]);\n        }\n        for (IdTypeUnsign i = keepSize; i < vClusterAssignMetaIter[cid]->size(); ++i) {\n          newData.push_back((*vClusterAssignMetaIter[cid])[i].second);\n        }*/\n        for (IdTypeUnsign i = 0; i < vClusterAssignMetaIter[cid]->size(); ++i) {\n          auto e = (*vClusterAssignMetaIter[cid])[i];\n          if (e.first < R || i < keepSize) keepAssign->push_back(e);\n          else {\n            IdType id = e.second->id();\n            CHECK(id >= 0);\n            newData.push_back(e.second);\n          } \n        }\n\n        vClusterAssignGlobal.push_back(keepAssign);\n      }\n    }\n\n    data.swap(newData);\n    CHECK(vCentersGlobal.size() == vClusterAssignGlobal.size());\n  }\n  // Move what's remained to the unassigned array\n  for (const Object* o: data) vUnassigned.push_back(o);\n\n  // Let's do a quick sanity check\n  size_t qty = vUnassigned.size();\n  for (IdTypeUnsign cid = 0; cid < vCentersGlobal.size(); ++cid) {\n    qty += 1 + vClusterAssignGlobal[cid]->size();\n  }\n  CHECK(qty == origDataSize);\n}\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::sortInsideClustersDist(const vector<shared_ptr<DistObjectPairVector<dist_t>>>& vClusterAssign) {\n  for (const shared_ptr<DistObjectPairVector<dist_t>>& v:vClusterAssign) {\n    sort(v->begin(), v->end());\n  }\n}\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::printClusterStat(const Space<dist_t> &space,\n                                            const vector<shared_ptr<DistObjectPairVector<dist_t>>>&vClustAssign,\n                                            IdTypeUnsign sampleQty) {\n  static std::mt19937       randGen;\n  for (IdTypeUnsign cid = 0; cid < vClustAssign.size(); ++cid) {\n    LOG(LIB_INFO) << \"Cluster id: \" << cid ;\n    vector<dist_t>    dists;\n\n    dists.reserve(sampleQty);\n    DistObjectPairVector<dist_t>   vClustElem(*vClustAssign[cid]);\n    sort(vClustElem.begin(), vClustElem.end());\n\n    for (IdTypeUnsign i = 0; i < min<size_t>(sampleQty, vClustElem.size()); ++i) {\n      dists.push_back(vClustElem[i].first);\n    }\n\n    LOG(LIB_INFO) << \"# of elements: \" << vClustElem.size() ;\n    if (!vClustElem.empty())\n      LOG(LIB_INFO) << \"90% percentile: \" << dists[size_t(floor((dists.size() - 1) * 0.9))] ;\n    LOG(LIB_INFO) << \"Distance quantiles:\" ;\n    LOG(LIB_INFO) << \"[\" ;\n    if (!dists.empty()) {\n      for (size_t i = 0; i < 10; ++i) {\n        for (size_t k = 0; k < 10; ++k) {\n          auto num = i * 10 + k;\n          LOG(LIB_INFO) << num << \":\" << dists[size_t(floor((dists.size() - 1) * num / 100.0))] << \" \";\n        }\n        LOG(LIB_INFO) ;\n      }\n    }\n    LOG(LIB_INFO) << \"]\" ;\n  }\n\n}\n\n\ntemplate <typename dist_t>\nvoid ClusterUtils<dist_t>::printAndVerifyClusterStat(const Space<dist_t> &space, const ObjectVector &vCenters,\n                                                     const vector<shared_ptr<DistObjectPairVector<dist_t>>> &vClustAssign,\n                                                     IdTypeUnsign sampleQty) {\n  //static std::mt19937       randGen;\n  for (IdTypeUnsign cid = 0; cid < vClustAssign.size(); ++cid) {\n    LOG(LIB_INFO) << \"Cluster id: \" << cid << \" objId=\" << vCenters[cid]->id() ;\n    vector<dist_t>    dists;\n\n    dists.reserve(sampleQty);\n    DistObjectPairVector<dist_t>   vClustElem(*vClustAssign[cid]);\n    sort(vClustElem.begin(), vClustElem.end());\n\n    for (IdTypeUnsign i = 0; i < min<size_t>(sampleQty, vClustElem.size()); ++i) {\n      dist_t dist = space.IndexTimeDistance(vClustElem[i].second /* object or query is the left argument */,\n                                            vCenters[cid] /* cluster center is the right argument */);\n      CHECK_MSG(ApproxEqual(vClustElem[i].first, dist),\n                \"Bug: the precomputed distance: \" + ConvertToString(vClustElem[i].first) +\n                \" is different from the real one: \" + ConvertToString(dist) +\n                \" when computing the distance between \" + ConvertToString(vClustElem[i].second->id()) +\n                \" and \" +ConvertToString(vCenters[cid]->id()) );\n      dists.push_back(vClustElem[i].first);\n    }\n\n    LOG(LIB_INFO) << \"# of elements: \" << vClustElem.size() ;\n    if (!vClustElem.empty())\n      LOG(LIB_INFO) << \"90% percentile: \" << dists[size_t(floor((dists.size() - 1) * 0.9))] ;\n    LOG(LIB_INFO) << \"Distance quantiles:\" ;\n    LOG(LIB_INFO) << \"[\" ;\n    if (!dists.empty()) {\n      for (size_t i = 0; i < 10; ++i) {\n        for (size_t k = 0; k < 10; ++k) {\n          auto num = i * 10 + k;\n          LOG(LIB_INFO) << num << \":\" << dists[size_t(floor((dists.size() - 1) * num / 100.0))] << \" \";\n        }\n        LOG(LIB_INFO) ;\n      }\n    }\n    LOG(LIB_INFO) << \"]\" ;\n  }\n\n}\n\ntemplate class ClusterUtils<float>;\ntemplate class ClusterUtils<double>;\ntemplate class ClusterUtils<int>;\n\n}   // namespace similarity\n\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/NMSLIB/code/src\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"Release\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/cluster_util.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/distcomp.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/distcomp_edist.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/eval_metrics.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/eval_results.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/experimentconf.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/experiments.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/flexbuff.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/floatdiff.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/global.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/gold_standard.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/idtype.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/incremental_quick_select.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/index.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/init.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/knnquery.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/knnqueue.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/logging.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/memory.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/meta_analysis.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/methodfactory.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/object.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/params.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/params_cmdline.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/params_def.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/permutation_type.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/permutation_utils.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/ported_boost_progress.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/pow.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/projection.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/query.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/query_creator.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/randproj_util.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/rangequery.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/report_intr_dim.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/searchoracle.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/simddebug.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/simdutils.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/sort_arr_bi.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/spacefactory.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/tune.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/ztimer.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/utils.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/report.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/bbtree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/dummy.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/ghtree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/hnsw.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/lcstrategy.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/list_clusters.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/lsh.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/lsh_multiprobe.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/lsh_space.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/multi_index.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/multi_vantage_point_tree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/multi_vantage_point_tree_utils.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/nndes.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/nonmetr_list_clust.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/omedrank.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/perm_bin_vptree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/perm_index_incr_bin.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/perm_lsh_bin.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/permutation_inverted_index.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/permutation_prefix_index.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/pivot_neighb_common.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/pivot_neighb_invindx.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/proj_vptree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/projection_index_incremental.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/seqsearch.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/small_world_rand.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/small_world_rand_split.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/spatial_approx_tree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/vptree.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/method\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/method/vptree_utils.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_bit_hamming.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_bregman.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_dummy.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_js.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_leven.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_lp.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_rank_correl.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_scalar.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sparse_lp.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sparse_scalar.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sparse_scalar_fast.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sparse_vector.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sparse_vector_inter.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_sqfd.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_string.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_vector.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_vector_gen.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/space\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space/space_word_embed.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/factory\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/factory/init_methods.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include/factory\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/factory/init_spaces.h\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE STATIC_LIBRARY FILES \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/release/libNonMetricSpaceLib.a\")\nendif()\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_bregman.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"distcomp.h\"\n#include \"string.h\"\n#include \"utils.h\"\n#include \"simdutils.h\"\n\n#include <cstdlib>\n#include <limits>\n#include <algorithm>\n\n#ifdef PORTABLE_SSE2\n#include <immintrin.h>\n#endif\n\nnamespace similarity {\n\nusing namespace std;\n\n\n/*\n *  Itakura-Saito distance\n */\n\ntemplate <class T> \nT ItakuraSaito(const T* pVect1, const T* pVect2, size_t qty) {\n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += pVect1[i]/pVect2[i]  - log(pVect1[i]/pVect2[i]) - 1;\n    }\n\n    return sum;\n}\n\ntemplate float  ItakuraSaito<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double ItakuraSaito<double>(const double* pVect1, const double* pVect2, size_t qty);\n\ntemplate <class T> \nT ItakuraSaitoPrecomp(const T* pVect1, const T* pVect2, size_t qty) {\n    T sum = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    const T* pVectLog1 = pVect1 + qty;\n    const T* pVectLog2 = pVect2 + qty;\n\n    while (pVect1 < pEnd1) {\n        sum += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    while (pVect1 < pEnd2) {\n        sum += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    return sum - qty;\n}\n\ntemplate float  ItakuraSaitoPrecomp<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double ItakuraSaitoPrecomp<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\ntemplate <>\nfloat ItakuraSaitoPrecompSIMD(const float* pVect1, const float* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"ItakuraSaitoPrecompSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return ItakuraSaitoPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    const float* pVectLog1 = pVect1 + qty;\n    const float* pVectLog2 = pVect2 + qty;\n\n    __m128  v1, v2, vLog1, vLog2;\n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_sub_ps(_mm_div_ps(v1, v2), _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_sub_ps(_mm_div_ps(v1, v2), _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_sub_ps(_mm_div_ps(v1, v2), _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_sub_ps(_mm_div_ps(v1, v2), _mm_sub_ps(vLog1, vLog2)));\n\n    }\n\n    while (pVect1 < pEnd2) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_sub_ps(_mm_div_ps(v1, v2), _mm_sub_ps(vLog1, vLog2)));\n\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    return res - qty;\n#endif\n}\n\ntemplate <>\ndouble ItakuraSaitoPrecompSIMD(const double* pVect1, const double* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"ItakuraSaitoPrecompSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return ItakuraSaitoPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    const double* pVectLog1 = pVect1 + qty;\n    const double* pVectLog2 = pVect2 + qty;\n\n    __m128d  v1, v2, vLog1, vLog2;\n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        v2      = _mm_loadu_pd(pVect2);     pVect2 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(sum, _mm_sub_pd(_mm_div_pd(v1, v2),  _mm_sub_pd(vLog1, vLog2)));\n    \n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        v2      = _mm_loadu_pd(pVect2);     pVect2 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(sum, _mm_sub_pd(_mm_div_pd(v1, v2),  _mm_sub_pd(vLog1, vLog2)));\n    \n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd2) {\n        res += (*pVect1)/(*pVect2) - ((*pVectLog1) - (*pVectLog2)); ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    return res - qty;\n#endif\n}\n\ntemplate float  ItakuraSaitoPrecompSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double ItakuraSaitoPrecompSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n\n/*\n * KL-divergence\n */\n\ntemplate <class T> T KLStandard(const T *pVect1, const T *pVect2, size_t qty) \n{ \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += pVect1[i] * log(pVect1[i]/pVect2[i]);\n    }\n\n    return sum;\n}\n\ntemplate float KLStandard<float>(const float *pVect1, const float *pVect2, size_t qty); \ntemplate double KLStandard<double>(const double *pVect1, const double *pVect2, size_t qty);\n\ntemplate <class T> T KLStandardLogDiff(const T *p1, const T *p2, size_t qty) \n{ \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += p1[i] * (log(p1[i])-log(p2[i]));\n    }\n\n    return sum;\n}\n\ntemplate float KLStandardLogDiff<float>(const float *p1, const float *p2, size_t qty);\ntemplate double KLStandardLogDiff<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T> \nT KLPrecomp(const T* pVect1, const T* pVect2, size_t qty) {\n    T sum = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    const T* pVectLog1 = pVect1 + qty;\n    const T* pVectLog2 = pVect2 + qty;\n\n    while (pVect1 < pEnd1) {\n        sum += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n        sum += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n        sum += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n        sum += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n    }\n\n    while (pVect1 < pEnd2) {\n        sum += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n    }\n\n    return sum;\n}\n\ntemplate float KLPrecomp<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double KLPrecomp<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\ntemplate <>\nfloat KLPrecompSIMD(const float* pVect1, const float* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"KLPrecompSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return KLPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    const float* pVectLog1 = pVect1 + qty;\n    const float* pVectLog2 = pVect2 + qty;\n\n    __m128  v1, vLog1, vLog2;\n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2)));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2)));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2)));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n    }\n\n    return res;\n#endif\n}\n\ntemplate <>\ndouble KLPrecompSIMD(const double* pVect1, const double* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"KLPrecompSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return KLPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    const double* pVectLog1 = pVect1 + qty;\n    const double* pVectLog2 = pVect2 + qty;\n\n    __m128d  v1, vLog1, vLog2;\n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, _mm_sub_pd(vLog1, vLog2)));\n    \n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, _mm_sub_pd(vLog1, vLog2)));\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd2) {\n        res += (*pVect1++) * ((*pVectLog1++) - (*pVectLog2++));\n    }\n\n    return res;\n#endif\n}\n\ntemplate float KLPrecompSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double KLPrecompSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\ntemplate <class T> T KLGeneralStandard(const T *pVect1, const T *pVect2, size_t qty) \n{ \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += pVect1[i] * log(pVect1[i]/pVect2[i]) + pVect2[i] - pVect1[i];\n    }\n\n    return sum;\n}\n\n/*\n * Generalized KL-divergence\n */\n\ntemplate float KLGeneralStandard<float>(const float *pVect1, const float *pVect2, size_t qty); \ntemplate double KLGeneralStandard<double>(const double *pVect1, const double *pVect2, size_t qty);\n\ntemplate <class T> \nT KLGeneralPrecomp(const T* pVect1, const T* pVect2, size_t qty) {\n    T sum = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    const T* pVectLog1 = pVect1 + qty;\n    const T* pVectLog2 = pVect2 + qty;\n\n    while (pVect1 < pEnd1) {\n        sum += (*pVect1) * (*pVectLog1 - *pVectLog2) + *pVect2 - *pVect1; ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1) * (*pVectLog1 - *pVectLog2) + *pVect2 - *pVect1; ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1) * (*pVectLog1 - *pVectLog2) + *pVect2 - *pVect1; ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n        sum += (*pVect1) * (*pVectLog1 - *pVectLog2) + *pVect2 - *pVect1; ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    while (pVect1 < pEnd2) {\n        sum += (*pVect1) * (*pVectLog1 - *pVectLog2) + *pVect2 - *pVect1; ++pVect1; ++pVect2; ++pVectLog1; ++pVectLog2;\n    }\n\n    return sum;\n}\n\ntemplate float KLGeneralPrecomp<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double KLGeneralPrecomp<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\ntemplate <>\nfloat KLGeneralPrecompSIMD(const float* pVect1, const float* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"KLGeneralPrecompSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return KLGeneralPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    const float* pVectLog1 = pVect1 + qty;\n    const float* pVectLog2 = pVect2 + qty;\n\n    __m128  v1, v2, vLog1, vLog2;\n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(_mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2))), _mm_sub_ps(v2, v1));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(_mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2))), _mm_sub_ps(v2, v1));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(_mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2))), _mm_sub_ps(v2, v1));\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(_mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2))), _mm_sub_ps(v2, v1));\n\n    }\n\n    while (pVect1 < pEnd2) {\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        sum  = _mm_add_ps(_mm_add_ps(sum, _mm_mul_ps(v1, _mm_sub_ps(vLog1, vLog2))), _mm_sub_ps(v2, v1));\n\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += (*pVect1) * ((*pVectLog1++) - (*pVectLog2++)) + (*pVect2) - (*pVect1);\n        ++pVect1; ++pVect2;\n    }\n\n    return res;\n#endif\n}\n\ntemplate <>\ndouble KLGeneralPrecompSIMD(const double* pVect1, const double* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"KLGeneralPrecompSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return KLGeneralPrecomp(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    const double* pVectLog1 = pVect1 + qty;\n    const double* pVectLog2 = pVect2 + qty;\n\n    __m128d  v1, v2, vLog1, vLog2;\n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        v2      = _mm_loadu_pd(pVect2);     pVect2 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(_mm_add_pd(sum, _mm_mul_pd(v1, _mm_sub_pd(vLog1, vLog2))), _mm_sub_pd(v2, v1));\n    \n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        v2      = _mm_loadu_pd(pVect2);     pVect2 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        sum  = _mm_add_pd(_mm_add_pd(sum, _mm_mul_pd(v1, _mm_sub_pd(vLog1, vLog2))), _mm_sub_pd(v2, v1));\n    \n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd2) {\n        res += (*pVect1) * ((*pVectLog1++) - (*pVectLog2++)) + (*pVect2) - (*pVect1);\n        ++pVect1; ++pVect2;\n    }\n\n    return res;\n#endif\n}\n\ntemplate float KLGeneralPrecompSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double KLGeneralPrecompSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_edist.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <cstdint>\n#include <stdexcept>\n\n#include \"distcomp.h\"\n#include \"string.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <class T> int levenshtein(const T* p1, size_t len1, const T* p2, size_t len2) {\n  int aStackBuf[2 * MAX_LEVEN_BUFFER_QTY];\n  int *pMemBuf = NULL;\n  int *pBuff;\n\n  if (len1 > len2) {\n    swap(p1, p2);\n    swap(len1, len2);\n  }\n\n  size_t nr = len1, nc = len2;\n\n  if (!nr || !nc) return nr + nc;\n\n  if (nr + 1 > MAX_LEVEN_BUFFER_QTY) {\n    pBuff = pMemBuf = new int[2 * (nr + 1)];\n  } else {\n    pBuff = aStackBuf;\n  }\n\n  int* pColPtr[2] = {pBuff, pBuff + nr + 1};\n\n  for (size_t k = 0; k <= nr; ++k) pColPtr[0][k] = k;\n\n  size_t nCurr = 1;\n\n  for (size_t i = 0; i < nc; ++i) {\n    int* pPrevCol = pColPtr[1 - nCurr];\n    int* pCurrCol = pColPtr[nCurr];\n\n    pCurrCol[0] = i + 1;\n\n    for (size_t k = 1; k <= nr; ++k) {\n      int nextVal = min(1 + min(pPrevCol[k], pCurrCol[k-1]),  // insertion or deletion\n          pPrevCol[k-1] + (p1[k-1]==p2[i] ? 0 : 1)); // substitution\n      pCurrCol[k] = nextVal;\n    }\n\n    nCurr = 1 - nCurr;\n  }\n\n  // Memorize this value before removing memory\n  int res = pColPtr[1 - nCurr][nr];\n\n  if (pMemBuf) delete [] pMemBuf;\n\n  return res;\n}\n\ntemplate int levenshtein<char>(const char* p1, size_t len1, const char* p2, size_t len2);\ntemplate int levenshtein<char32_t>(const char32_t* p1, size_t len1, const char32_t* p2, size_t len2);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_js.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"distcomp.h\"\n#include \"string.h\"\n#include \"utils.h\"\n#include \"simdutils.h\"\n\n#include <cstdlib>\n#include <cstdint>\n#include <limits>\n#include <algorithm>\n\n#ifdef PORTABLE_SSE2\n#include <immintrin.h>\n#endif\n\nnamespace similarity {\n\nusing namespace std;\n\n\n/*\n * Jensen-Shannon divergence.\n * \n * The square root of JS is a metric: \n *\n * Österreicher, Ferdinand, and Igor Vajda. \n * \"A new class of metric divergences on probability spaces and its applicability in statistics.\" \n * Annals of the Institute of Statistical Mathematics 55.3 (2003): 639-653.\n *\n *\n * Endres, Dominik Maria, and Johannes E. Schindelin. \n * \"A new metric for probability distributions.\" \n * Information Theory, IEEE Transactions on 49.7 (2003): 1858-1860.\n *\n */\ntemplate <class T> T JSStandard(const T *pVect1, const T *pVect2, size_t qty)\n{\n    T sum1 = 0, sum2 = 0;\n\n    for (size_t i = 0; i < qty; i++) {\n      T m = (pVect1[i] + pVect2[i])*T(0.5);\n      T lg1 = pVect1[i] < numeric_limits<T>::min() ? T(0):log(pVect1[i]);\n      T lg2 = pVect2[i] < numeric_limits<T>::min() ? T(0):log(pVect2[i]);\n      sum1 += pVect1[i] * lg1 + pVect2[i] * lg2;\n      if (m >= numeric_limits<T>::min()) {\n        sum2 +=  m * log(m);\n      }\n    }\n\n    // Due to computation/rounding errors, we may get a small-magnitude negative number\n    return std::max(T(0.5)*sum1 - sum2, T(0));\n}\n\ntemplate float JSStandard<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double JSStandard<double>(const double* pVect1, const double* pVect2, size_t qty);\n\ntemplate <class T>\nT JSPrecomp(const T* pVect1, const T* pVect2, size_t qty) {\n    T sum1 = 0, sum2 = 0;\n\n    const T* pEnd2 = pVect1 + qty;\n\n    const T* pVectLog1 = pVect1 + qty;\n    const T* pVectLog2 = pVect2 + qty;\n\n    while (pVect1 < pEnd2) {\n        T m = T(0.5)*(*pVect1 + *pVect2);\n        sum1 += (*pVect1) * (*pVectLog1) + (*pVect2)*(*pVectLog2);\n        if (m >= numeric_limits<T>::min()) {\n          sum2 += m * log(m);\n        }\n        pVect1++; pVect2++; pVectLog1++; pVectLog2++;\n    }\n\n    // Due to computation/rounding errors, we may get a small-magnitude negative number\n    return std::max(T(0.5)*sum1 - sum2, T(0));\n}\n\ntemplate float JSPrecomp<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double JSPrecomp<double>(const double* pVect1, const double* pVect2, size_t qty);\n\nconst unsigned LogQty = 65536;\n\ntemplate <class T>\ninline unsigned lapprox(T f) {\n  return static_cast<unsigned>(floor(LogQty*f));\n};\n\ntemplate <class T>\nclass ApproxLogs {\npublic:\n  ApproxLogs() {\n    for (unsigned i = 0; i <= LogQty; ++i) {\n      T v = i * T(1.0) / LogQty;\n      unsigned k = lapprox(v);\n      LogTable[k] = log(1 + v);\n    }\n  }\n  T LogTable[LogQty + 2];\n};\n\ntemplate <class T> T \nJSPrecompApproxLog(const T *pVect1, const T *pVect2, size_t qty) {\n    static ApproxLogs<T> ApproxLogs; // Thread-safe in C++11 \n    static T* ltbl = ApproxLogs.LogTable;\n    static T clog2 = log(T(2)); // Thread-safe in C++11 \n    T sum = 0;\n\n    const T* pEnd2 = pVect1 + qty;\n\n    const T* pVectLog1 = pVect1 + qty;\n    const T* pVectLog2 = pVect2 + qty;\n\n    while (pVect1 < pEnd2) {\n      T v1 = *pVect1;\n      T v2 = *pVect2;\n      T lv1 = *pVectLog1;\n      T lv2 = *pVectLog2;\n\n      sum += v1 * lv1 + v2 * lv2;\n\n      if (v1 > v2) {\n        swap(v1, v2);\n        swap(lv1, lv2);\n      }\n      if (v2 >= numeric_limits<T>::min()) {\n        sum -= (v1 + v2)*(lv2 + ltbl[lapprox(v1/v2)] - clog2);\n      }\n      pVect1++; pVect2++; pVectLog1++; pVectLog2++;\n    }\n\n    return std::max(T(0.5)*sum, T(0));\n}\n\ntemplate float JSPrecompApproxLog<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double JSPrecompApproxLog<double>(const double* pVect1, const double* pVect2, size_t qty);\n\ntemplate <>\nfloat JSPrecompSIMDApproxLog(const float* pVect1, const float* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"JSPrecompSIMDApproxLog<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return JSPrecompApproxLog(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n\n    static ApproxLogs<float> ApproxLogs; // Thread-safe in C++11\n    static float clog2 = log(2.0f); // Thread-safe in C++11 \n    static __m128 clog2simd = _mm_set1_ps(clog2); // Thread-safe in C++11\n    static float* ltbl = ApproxLogs.LogTable;\n    __m128 cmult = _mm_set1_ps(LogQty);\n\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    const float* pVectLog1 = pVect1 + qty;\n    const float* pVectLog2 = pVect2 + qty;\n\n    __m128  v1, v2, vLog1, vLog2, maxv, minv, max_mod_logv, ltmp;\n    __m128  sum     = _mm_set1_ps(0), s1, s2;\n    __m128  minVal  = _mm_set1_ps(numeric_limits<float>::min());\n    __m128i tmpi;\n\n    while (pVect1 < pEnd2) {\n        int PORTABLE_ALIGN16 TmpRes[4];\n\n\n        v1      = _mm_loadu_ps(pVect1);     pVect1 += 4;\n        vLog1   = _mm_loadu_ps(pVectLog1);  pVectLog1 += 4;\n        s1      = _mm_mul_ps(v1, vLog1);\n        v2      = _mm_loadu_ps(pVect2);     pVect2 += 4;\n        vLog2   = _mm_loadu_ps(pVectLog2);  pVectLog2 += 4;\n        s2      =  _mm_mul_ps(v2, vLog2);\n        /* \n         * If want to prevent division by zero, if v1 == v2 == 0,\n         * then, we don't have to compute the second factor in\n         * (v1 + v2)*(lv2 + ltbl[lapprox(v1/v2)] - clog2);\n         * correctly, it will be multiplied by zero anyway.\n         */\n        maxv    = _mm_max_ps(_mm_max_ps(v1, v2), minVal);\n        // This is the log with the largest modulo (recall that logs are < 0 here)\n        max_mod_logv = _mm_max_ps(vLog1, vLog2);\n        minv    = _mm_min_ps(v1, v2);\n        tmpi    = _mm_cvttps_epi32(_mm_mul_ps(cmult, _mm_div_ps(minv, maxv)));\n        sum     = _mm_add_ps(sum, _mm_add_ps(s1,s2));\n\n        _mm_store_si128(reinterpret_cast<__m128i*>(TmpRes), tmpi);\n\n        ltmp = _mm_set_ps(ltbl[TmpRes[3]], ltbl[TmpRes[2]], ltbl[TmpRes[1]], ltbl[TmpRes[0]]);\n        __m128 d = _mm_sub_ps(_mm_add_ps(max_mod_logv, ltmp), clog2simd);\n        sum     = _mm_sub_ps(sum, _mm_mul_ps(_mm_add_ps(v1, v2), d));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n      float v1 = *pVect1;\n      float v2 = *pVect2;\n      float lv1 = *pVectLog1;\n      float lv2 = *pVectLog2;\n\n      res += v1 * lv1 + v2 * lv2;\n\n      if (v1 > v2) {\n        swap(v1, v2);\n        swap(lv1, lv2);\n      }\n      if (v2 >= numeric_limits<float>::min()) {\n        res -= (v1 + v2)*(lv2 + ltbl[lapprox(v1/v2)] - clog2);\n      }\n      pVect1++; pVect2++; pVectLog1++; pVectLog2++;\n    }\n\n    // Due to computation/rounding errors, we may get a small-magnitude negative number\n    return 0.5*max(0.f, res);\n#endif\n}\n    \n\ntemplate <>\ndouble JSPrecompSIMDApproxLog(const double* pVect1, const double* pVect2, size_t qty)\n{\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"JSPrecompSIMDApproxLog<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return JSPrecompApproxLog(pVect1, pVect2, qty);\n#else\n    size_t qty2  = qty/2;\n\n    static ApproxLogs<double> ApproxLogs; // Thread-safe in C++11\n    static double clog2 = log((double)2.0f); // Thread-safe in C++11 \n    static __m128d clog2simd = _mm_set1_pd(clog2); // Thread-safe in C++11\n    static double* ltbl = ApproxLogs.LogTable;\n    __m128d cmult = _mm_set1_pd(LogQty);\n\n    const double* pEnd2 = pVect1 + 2  * qty2;\n    const double* pEnd3 = pVect1 + qty;\n\n    const double* pVectLog1 = pVect1 + qty;\n    const double* pVectLog2 = pVect2 + qty;\n\n    __m128d  v1, v2, vLog1, vLog2, maxv, minv, max_mod_logv, ltmp;\n    __m128d  sum     = _mm_set1_pd(0), s1, s2;\n    __m128d  minVal  = _mm_set1_pd(numeric_limits<double>::min());\n    __m128i tmpi;\n\n    while (pVect1 < pEnd2) {\n        uint32_t PORTABLE_ALIGN16 TmpRes[4];\n\n\n        v1      = _mm_loadu_pd(pVect1);     pVect1 += 2;\n        vLog1   = _mm_loadu_pd(pVectLog1);  pVectLog1 += 2;\n        s1      = _mm_mul_pd(v1, vLog1);\n        v2      = _mm_loadu_pd(pVect2);     pVect2 += 2;\n        vLog2   = _mm_loadu_pd(pVectLog2);  pVectLog2 += 2;\n        s2      = _mm_mul_pd(v2, vLog2);\n        /* \n         * If want to prevent division by zero, if v1 == v2 == 0,\n         * then, we don't have to compute the second factor in\n         * (v1 + v2)*(lv2 + ltbl[lapprox(v1/v2)] - clog2);\n         * correctly, it will be multiplied by zero anyway.\n         */\n        maxv    = _mm_max_pd(_mm_max_pd(v1, v2), minVal);\n        // This is the log with the largest modulo (recall that logs are < 0 here)\n        max_mod_logv = _mm_max_pd(vLog1, vLog2); \n        minv    = _mm_min_pd(v1, v2);\n        sum     = _mm_add_pd(sum, _mm_add_pd(s1, s2));\n        tmpi    = _mm_cvttpd_epi32(_mm_mul_pd(cmult, _mm_div_pd(minv, maxv)));\n\n        _mm_store_si128(reinterpret_cast<__m128i*>(TmpRes), tmpi);\n        ltmp = _mm_set_pd(ltbl[TmpRes[1]], ltbl[TmpRes[0]]);\n        __m128d   d = _mm_sub_pd(_mm_add_pd(max_mod_logv, ltmp), clog2simd);\n\n        sum     = _mm_sub_pd(sum, _mm_mul_pd(_mm_add_pd(v1, v2), d));\n\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd3) {\n      double v1 = *pVect1;\n      double v2 = *pVect2;\n      double lv1 = *pVectLog1;\n      double lv2 = *pVectLog2;\n\n      res += v1 * lv1 + v2 * lv2;\n\n      if (v1 > v2) {\n        swap(v1, v2);\n        swap(lv1, lv2);\n      }\n      if (v2 >= numeric_limits<double>::min()) {\n        res -= (v1 + v2)*(lv2 + ltbl[lapprox(v1/v2)] - clog2);\n      }\n      pVect1++; pVect2++; pVectLog1++; pVectLog2++;\n    }\n\n    // Due to computation errors, we may get a small-magnitude negative number\n    return max(0.5*res, double(0));\n#endif\n}\n\ntemplate float JSPrecompSIMDApproxLog<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double JSPrecompSIMDApproxLog<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_lp.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"distcomp.h\"\n#include \"simdutils.h\"\n#include \"string.h\"\n#include \"logging.h\"\n#include \"utils.h\"\n#include \"pow.h\"\n\n#include <cstdlib>\n#include <limits>\n#include <algorithm>\n#include <cmath>\n\n#define PORTABLE_SSE2 0\n#ifdef PORTABLE_SSE2\n#include <immintrin.h>\n#endif\n\nnamespace similarity {\n\nusing namespace std;\n\n/*\n * LInf-norm.\n */\n\ntemplate <class T>\nT LInfNormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T res = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      res = max(res, fabs(p1[i]-p2[i]));\n    }\n\n    return res;\n}\n\ntemplate float LInfNormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate double LInfNormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT LInfNorm(const T* pVect1, const T* pVect2, size_t qty) {\n    T res = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n    }\n\n    while (pVect1 < pEnd2) {\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n    }\n\n    return res;\n}\n\ntemplate float LInfNorm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double LInfNorm<double>(const double* pVect1, const double* pVect2, size_t qty);\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\ntemplate <> \nfloat LInfNormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"LInfNormSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return LInfNormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n\n    /* \n     * A hack to quickly unset the sign flag.\n     */\n    __m128 mask_sign = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffffu));\n\n    __m128 MAX = _mm_setzero_ps();\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, MAX);\n    float res= max(max(TmpRes[0], TmpRes[1]), max(TmpRes[2], TmpRes[3]));\n\n    while (pVect1 < pEnd3) {\n        res = max(res, fabsf(*pVect1++ - *pVect2++));\n    }\n\n    return res;\n#endif\n}\n\ntemplate <> \ndouble LInfNormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"LInfNormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return LInfNormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    __m128d  diff, v1, v2; \n    __m128d  MAX = _mm_set1_pd(0); \n\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        MAX  = _mm_max_pd(MAX, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        MAX  = _mm_max_pd(MAX, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, MAX);\n    double res= max(TmpRes[0], TmpRes[1]);\n\n    while (pVect1 < pEnd2) {\n        double diff = fabs(*pVect1++ - *pVect2++);\n        res = max(res, (double)diff);\n    }\n\n    return res;\n#endif\n}\n\ntemplate float LInfNormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double LInfNormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * L1-norm.\n */\n\ntemplate <class T>\nT L1NormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += fabs(p1[i]-p2[i]);\n    }\n\n    return sum;\n}\n\ntemplate float L1NormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate double L1NormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT L1Norm(const T* pVect1, const T* pVect2, size_t qty) {\n    T res = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    while (pVect1 < pEnd2) {\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    return res;\n}\n\ntemplate float L1Norm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L1Norm<double>(const double* pVect1, const double* pVect2, size_t qty);\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\ntemplate <> \nfloat L1NormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L1NormSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return L1NormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n    __m128  sum = _mm_setzero_ps();\n\n    /* \n     * A hack to quickly unset the sign flag.\n     */\n    __m128 mask_sign = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffffu));\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    return res;\n#endif\n}\n\ntemplate <> \ndouble L1NormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L1NormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n\treturn L1NormStandard(pVect1, pVect2, qty);\n#else\n\tsize_t qty8 = qty/8;\n\n\tconst double* pEnd1 = pVect1 + 8 * qty8;\n\tconst double* pEnd2 = pVect1 + qty;\n\n\t__m128d  diff, v1, v2; \n\t__m128d  sum = _mm_set1_pd(0); \n\n\n\twhile (pVect1 < pEnd1) {\n\t\tv1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n\t\tv2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n\t\tdiff = _mm_sub_pd(v1, v2);\n\t\tsum  = _mm_add_pd(sum, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n\t\tv1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n\t\tv2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n\t\tdiff = _mm_sub_pd(v1, v2);\n\t\tsum  = _mm_add_pd(sum, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n\t}\n\n\tdouble PORTABLE_ALIGN16 TmpRes[2];\n\n\t_mm_store_pd(TmpRes, sum);\n\tdouble res= TmpRes[0] + TmpRes[1];\n\n\twhile (pVect1 < pEnd2) {\n\t\t// Leonid (@TODO) sometimes seg-faults in the unit test if float is replaced with double\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += fabs(diff);\n\t}\n\n\treturn res;\n#endif\n}\n\ntemplate float L1NormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L1NormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * L2-norm.\n */\n\ntemplate <class T>\nT L2NormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T sum = 0;\n    for (size_t i = 0; i < qty; i++) { \n      T diff = (p1[i]-p2[i]);\n      sum += diff * diff;\n    }\n    return sqrt(sum);\n}\n\ntemplate  float L2NormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate  double L2NormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT L2Norm(const T* pVect1, const T* pVect2, size_t qty) {\n\n\tT sum = 0;\n    for (size_t i = 0; i < qty; i++) { \n      T diff = (pVect1[i]-pVect2[i]);\n      sum += diff * diff;\n    }\n    return sqrt(sum);\n\t/*\n    T res = 0, diff = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n    }\n\n    while (pVect1 < pEnd2) {\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n    }\n\n    return sqrt(res);*/\n}\n\ntemplate float  L2Norm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L2Norm<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\nfloat L2SqrSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n/*#ifndef PORTABLE_SSE2PORTABLE_SSE2\n#pragma message WARN(\"L2SqrSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")*/\n    float res = 0, diff;\n    for (int i = 0; i < qty; ++i) {\n        diff = pVect1[i] - pVect2[i];\n        res += diff * diff;\n    }\n    return res;\n/*#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        float diff = *pVect1++ - *pVect2++; \n        res += diff * diff;\n    }\n\n    return res;\n#endif*/\n}\n\ntemplate <> \nfloat L2NormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n    float res = L2SqrSIMD(pVect1, pVect2, qty);\n    return sqrt(res);\n}\n\ntemplate <> \ndouble L2NormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n/*#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L2NormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")*/\n    return L2NormStandard(pVect1, pVect2, qty);\n/*#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    __m128d  diff, v1, v2; \n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        sum  = _mm_add_pd(sum, _mm_mul_pd(diff, diff));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        sum  = _mm_add_pd(sum, _mm_mul_pd(diff, diff));\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd2) {\n        double diff = *pVect1++ - *pVect2++; \n        res += diff * diff;\n    }\n\n    return sqrt(res);\n#endif*/\n}\n\ntemplate float  L2NormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L2NormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * Slower versions of LP-distance\n */\n\ntemplate <typename T>\nT LPGenericDistance(const T* x, const T* y, const int length, const T p) {\n  T result = 0;\n  T temp;\n\n  CHECK(p > 0);\n\n  for (int i = 0; i < length; ++i) {\n    // In C++ 11, std::abs is also defined for floating-point numbers\n    temp = std::abs(x[i] - y[i]);\n    result += pow(temp, p);\n  }\n\n  return std::pow(result, T(1.0) / p);\n}\n\ntemplate float LPGenericDistance<float>(const float* x, const float* y, const int length, const float p);\ntemplate double LPGenericDistance<double>(const double* x, const double* y, const int length, const double p);\n\n/*\n * Exponentiation by square rooting and squaring:\n * a  hacky implementation that works faster than std::pow()\n * if p * 2^maxDig is an integer.\n */\ntemplate <typename T>\nT LPGenericDistanceOptim(const T* x, const T* y, const int length, const T p) {\n  T result = 0;\n  T temp;\n\n\n  CHECK(p > 0);\n\n  const unsigned maxDig  = 18;\n  const unsigned maxK = 1 << maxDig;\n\n  unsigned pfm = static_cast<unsigned>(floor(maxK * p));\n\n  if (fabs(maxK*p - pfm) <= std::numeric_limits<T>::min()) {\n    unsigned intPow    = pfm >> maxDig;\n    unsigned fractPow  = pfm - (intPow << maxDig);\n\n    if (!intPow) {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientFractPowUtil(temp, fractPow, maxK);;\n      }\n    } else if (!fractPow) {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientPow(temp, intPow);\n      }\n    } else {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientPow(temp, intPow) * EfficientFractPowUtil(temp, fractPow, maxK);;\n      }\n    }\n  } else {\n    for (int i = 0; i < length; ++i) {\n      // In C++ 11, std::abs is also defined for floating-point numbers\n      temp = std::abs(x[i] - y[i]);\n      result += pow(temp, p);\n    }\n  }\n\n  return std::pow(result, T(1.0) / p);\n}\n\ntemplate float LPGenericDistanceOptim<float>(const float* x, const float* y, const int length, const float p);\ntemplate double LPGenericDistanceOptim<double>(const double* x, const double* y, const int length, const double p);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_lp.cc~",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"distcomp.h\"\n#include \"simdutils.h\"\n#include \"string.h\"\n#include \"logging.h\"\n#include \"utils.h\"\n#include \"pow.h\"\n\n#include <cstdlib>\n#include <limits>\n#include <algorithm>\n#include <cmath>\n\n#define PORTABLE_SSE2 0\n#ifdef PORTABLE_SSE2\n#include <immintrin.h>\n#endif\n\nnamespace similarity {\n\nusing namespace std;\n\n/*\n * LInf-norm.\n */\n\ntemplate <class T>\nT LInfNormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T res = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      res = max(res, fabs(p1[i]-p2[i]));\n    }\n\n    return res;\n}\n\ntemplate float LInfNormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate double LInfNormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT LInfNorm(const T* pVect1, const T* pVect2, size_t qty) {\n    T res = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n    }\n\n    while (pVect1 < pEnd2) {\n        res = max(res, fabs(*pVect1++ - *pVect2++));\n    }\n\n    return res;\n}\n\ntemplate float LInfNorm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double LInfNorm<double>(const double* pVect1, const double* pVect2, size_t qty);\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\ntemplate <> \nfloat LInfNormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"LInfNormSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return LInfNormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n\n    /* \n     * A hack to quickly unset the sign flag.\n     */\n    __m128 mask_sign = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffffu));\n\n    __m128 MAX = _mm_setzero_ps();\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        MAX  = _mm_max_ps(MAX, _mm_and_ps(diff, mask_sign ));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, MAX);\n    float res= max(max(TmpRes[0], TmpRes[1]), max(TmpRes[2], TmpRes[3]));\n\n    while (pVect1 < pEnd3) {\n        res = max(res, fabsf(*pVect1++ - *pVect2++));\n    }\n\n    return res;\n#endif\n}\n\ntemplate <> \ndouble LInfNormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"LInfNormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return LInfNormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    __m128d  diff, v1, v2; \n    __m128d  MAX = _mm_set1_pd(0); \n\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        MAX  = _mm_max_pd(MAX, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        MAX  = _mm_max_pd(MAX, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, MAX);\n    double res= max(TmpRes[0], TmpRes[1]);\n\n    while (pVect1 < pEnd2) {\n        double diff = fabs(*pVect1++ - *pVect2++);\n        res = max(res, (double)diff);\n    }\n\n    return res;\n#endif\n}\n\ntemplate float LInfNormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double LInfNormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * L1-norm.\n */\n\ntemplate <class T>\nT L1NormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += fabs(p1[i]-p2[i]);\n    }\n\n    return sum;\n}\n\ntemplate float L1NormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate double L1NormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT L1Norm(const T* pVect1, const T* pVect2, size_t qty) {\n    T res = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    while (pVect1 < pEnd2) {\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    return res;\n}\n\ntemplate float L1Norm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L1Norm<double>(const double* pVect1, const double* pVect2, size_t qty);\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\ntemplate <> \nfloat L1NormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L1NormSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return L1NormStandard(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n    __m128  sum = _mm_setzero_ps();\n\n    /* \n     * A hack to quickly unset the sign flag.\n     */\n    __m128 mask_sign = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffffu));\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_and_ps(diff, mask_sign));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += fabs(*pVect1++ - *pVect2++);\n    }\n\n    return res;\n#endif\n}\n\ntemplate <> \ndouble L1NormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L1NormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n\treturn L1NormStandard(pVect1, pVect2, qty);\n#else\n\tsize_t qty8 = qty/8;\n\n\tconst double* pEnd1 = pVect1 + 8 * qty8;\n\tconst double* pEnd2 = pVect1 + qty;\n\n\t__m128d  diff, v1, v2; \n\t__m128d  sum = _mm_set1_pd(0); \n\n\n\twhile (pVect1 < pEnd1) {\n\t\tv1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n\t\tv2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n\t\tdiff = _mm_sub_pd(v1, v2);\n\t\tsum  = _mm_add_pd(sum, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n\t\tv1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n\t\tv2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n\t\tdiff = _mm_sub_pd(v1, v2);\n\t\tsum  = _mm_add_pd(sum, _mm_max_pd(_mm_sub_pd(_mm_setzero_pd(), diff), diff));\n\n\t}\n\n\tdouble PORTABLE_ALIGN16 TmpRes[2];\n\n\t_mm_store_pd(TmpRes, sum);\n\tdouble res= TmpRes[0] + TmpRes[1];\n\n\twhile (pVect1 < pEnd2) {\n\t\t// Leonid (@TODO) sometimes seg-faults in the unit test if float is replaced with double\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += fabs(diff);\n\t}\n\n\treturn res;\n#endif\n}\n\ntemplate float L1NormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L1NormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * L2-norm.\n */\n\ntemplate <class T>\nT L2NormStandard(const T *p1, const T *p2, size_t qty) \n{ \n    T sum = 0;\n    for (size_t i = 0; i < qty; i++) { \n      T diff = (p1[i]-p2[i]);\n      sum += diff * diff;\n    }\n    return sqrt(sum);\n}\n\ntemplate  float L2NormStandard<float>(const float *p1, const float *p2, size_t qty);\ntemplate  double L2NormStandard<double>(const double *p1, const double *p2, size_t qty);\n\n\ntemplate <class T>\nT L2Norm(const T* pVect1, const T* pVect2, size_t qty) {\n\n\tT sum = 0;\n    for (size_t i = 0; i < qty; i++) { \n      T diff = (pVect1[i]-pVect2[i]);\n      sum += diff * diff;\n    }\n    return sqrt(sum);\n\t/*\n    T res = 0, diff = 0;\n\n    size_t qty4 = qty/4;\n    const T* pEnd1 = pVect1 + qty4 * 4;\n    const T* pEnd2 = pVect1 + qty;\n\n    while (pVect1 < pEnd1) {\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n    }\n\n    while (pVect1 < pEnd2) {\n        diff = *pVect1++ - *pVect2++; res += diff * diff;\n    }\n\n    return sqrt(res);*/\n}\n\ntemplate float  L2Norm<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L2Norm<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\nfloat L2SqrSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n/*#ifndef PORTABLE_SSE2PORTABLE_SSE2\n#pragma message WARN(\"L2SqrSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")*/\n    float res = 0, diff;\n    for (int i = 0; i < qty; ++i) {\n        diff = pVect1[i] - pVect2[i];\n        res += diff * diff;\n    }\n    return res;\n/*#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const float* pEnd1 = pVect1 + 16 * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  diff, v1, v2; \n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        diff = _mm_sub_ps(v1, v2);\n        sum  = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        float diff = *pVect1++ - *pVect2++; \n        res += diff * diff;\n    }\n\n    return res;\n#endif*/\n}\n\ntemplate <> \nfloat L2NormSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n    float res = L2SqrSIMD(pVect1, pVect2, qty);\n    return sqrt(res);\n}\n\ntemplate <> \ndouble L2NormSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n/*#ifndef PORTABLE_SSE2\n#pragma message WARN(\"L2NormSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")*/\n    return L2NormStandard(pVect1, pVect2, qty);\n/*#else\n    size_t qty8 = qty/8;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + qty;\n\n    __m128d  diff, v1, v2; \n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        sum  = _mm_add_pd(sum, _mm_mul_pd(diff, diff));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        diff = _mm_sub_pd(v1, v2);\n        sum  = _mm_add_pd(sum, _mm_mul_pd(diff, diff));\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd2) {\n        double diff = *pVect1++ - *pVect2++; \n        res += diff * diff;\n    }\n\n    return sqrt(res);\n#endif*/\n}\n\ntemplate float  L2NormSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double L2NormSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * Slower versions of LP-distance\n */\n\ntemplate <typename T>\nT LPGenericDistance(const T* x, const T* y, const int length, const T p) {\n  T result = 0;\n  T temp;\n\n  CHECK(p > 0);\n\n  for (int i = 0; i < length; ++i) {\n    // In C++ 11, std::abs is also defined for floating-point numbers\n    temp = std::abs(x[i] - y[i]);\n    result += pow(temp, p);\n  }\n\n  return std::pow(result, T(1.0) / p);\n}\n\ntemplate float LPGenericDistance<float>(const float* x, const float* y, const int length, const float p);\ntemplate double LPGenericDistance<double>(const double* x, const double* y, const int length, const double p);\n\n/*\n * Exponentiation by square rooting and squaring:\n * a  hacky implementation that works faster than std::pow()\n * if p * 2^maxDig is an integer.\n */\ntemplate <typename T>\nT LPGenericDistanceOptim(const T* x, const T* y, const int length, const T p) {\n  T result = 0;\n  T temp;\n\n\n  CHECK(p > 0);\n\n  const unsigned maxDig  = 18;\n  const unsigned maxK = 1 << maxDig;\n\n  unsigned pfm = static_cast<unsigned>(floor(maxK * p));\n\n  if (fabs(maxK*p - pfm) <= std::numeric_limits<T>::min()) {\n    unsigned intPow    = pfm >> maxDig;\n    unsigned fractPow  = pfm - (intPow << maxDig);\n\n    if (!intPow) {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientFractPowUtil(temp, fractPow, maxK);;\n      }\n    } else if (!fractPow) {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientPow(temp, intPow);\n      }\n    } else {\n      for (int i = 0; i < length; ++i) {\n        // In C++ 11, std::abs is also defined for floating-point numbers\n        temp = std::abs(x[i] - y[i]);\n        result += EfficientPow(temp, intPow) * EfficientFractPowUtil(temp, fractPow, maxK);;\n      }\n    }\n  } else {\n    for (int i = 0; i < length; ++i) {\n      // In C++ 11, std::abs is also defined for floating-point numbers\n      temp = std::abs(x[i] - y[i]);\n      result += pow(temp, p);\n    }\n  }\n\n  return std::pow(result, T(1.0) / p);\n}\n\ntemplate float LPGenericDistanceOptim<float>(const float* x, const float* y, const int length, const float p);\ntemplate double LPGenericDistanceOptim<double>(const double* x, const double* y, const int length, const double p);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_rankcorr.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n\n#include \"distcomp.h\"\n#include \"simdutils.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\n#ifdef PORTABLE_SSE4\n#include <immintrin.h>\n#include <smmintrin.h>\n#include <tmmintrin.h>\n#endif\n\nint SpearmanFootrule(const PivotIdType* x, const PivotIdType* y, size_t qty) {\n  int res = 0;\n  int diff;\n\n  for (size_t i = 0; i < qty; ++i) {\n    diff = x[i] >= y[i] ? x[i] - y[i] : y[i] - x[i];\n    res += diff;\n  }\n\n  return res;\n}\n\nint SpearmanFootruleSIMD(const int32_t* pVect1, const int32_t* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE4\n#pragma message WARN(\"SpearmanFootruleSIMD: SSE4.2 is not available, defaulting to pure C++ implementation!\")\n\n    return SpearmanFootrule(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const int32_t* pEnd1 = pVect1 + 16 * qty16;\n    const int32_t* pEnd2 = pVect1 + 4  * qty4;\n    const int32_t* pEnd3 = pVect1 + qty;\n\n    __m128i  diff, v1, v2;\n    __m128i  sum = _mm_set1_epi32(0);\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_max_epi32(_mm_sub_epi32(_mm_setzero_si128(), diff), diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_max_epi32(_mm_sub_epi32(_mm_setzero_si128(), diff), diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_max_epi32(_mm_sub_epi32(_mm_setzero_si128(), diff), diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_max_epi32(_mm_sub_epi32(_mm_setzero_si128(), diff), diff));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_max_epi32(_mm_sub_epi32(_mm_setzero_si128(), diff), diff));\n\n    }\n\n    int32_t PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_si128(reinterpret_cast<__m128i*>(TmpRes), sum);\n    int res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += std::abs(*pVect1++ - *pVect2++);\n    }\n\n    return res;\n#endif\n}\n\n\nint SpearmanRho(const PivotIdType* x, const PivotIdType* y, size_t qty) {\n  int res = 0;\n  PivotIdType diff;\n  size_t i = 0;\n\n  for (; i < qty; ++i) {\n    diff = y[i] - x[i];\n    res += diff * diff;\n  }\n  return res;\n}\n\nint SpearmanRhoSIMD(const PivotIdType* pVect1, const PivotIdType* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE4\n#pragma message WARN(\"SpearmanRhoSIMD: SSE4.2 is not available, defaulting to pure C++ implementation!\")\n    return SpearmanRho(pVect1, pVect2, qty);\n#else\n    size_t qty4  = qty/4;\n    size_t qty16 = qty/16;\n\n    const int32_t* pEnd1 = pVect1 + 16 * qty16;\n    const int32_t* pEnd2 = pVect1 + 4  * qty4;\n    const int32_t* pEnd3 = pVect1 + qty;\n\n    __m128i  diff, v1, v2;\n    __m128i  sum = _mm_set1_epi16(0);\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_mullo_epi32(diff, diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_mullo_epi32(diff, diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_mullo_epi32(diff, diff));\n\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_mullo_epi32(diff, diff));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect1)); pVect1 += 4;\n        v2   = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pVect2)); pVect2 += 4;\n        diff = _mm_sub_epi32(v1, v2);\n        sum  = _mm_add_epi32(sum, _mm_mullo_epi32(diff, diff));\n    }\n\n    int32_t PORTABLE_ALIGN16 TmpRes[8];\n\n    _mm_store_si128(reinterpret_cast<__m128i*>(TmpRes), sum);\n    int32_t res= TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        int diff = abs(*pVect1++ - *pVect2++);\n        res += diff * diff;\n    }\n\n    return res;\n#endif\n}\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_scalar.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"distcomp.h\"\n#include \"string.h\"\n#include \"utils.h\"\n\n#include <cstdlib>\n#include <limits>\n#include <algorithm>\n\nnamespace similarity {\n\nusing namespace std;\n/*\n * Scalar-product (divided by Euclidean vector norms)\n *\n * TODO: @leo implement a more efficient version\n */\n\ntemplate <class T>\nT NormScalarProduct(const T *p1, const T *p2, size_t qty) \n{ \n    const T eps = numeric_limits<T>::min() * 2;\n\n    T sum = 0;\n    T norm1 = 0;\n    T norm2 = 0;\n\n    for (size_t i = 0; i < qty; i++) {\n      norm1 += p1[i] * p1[i];\n      norm2 += p2[i] * p2[i];\n      sum += p1[i] * p2[i];\n    }\n\n    if (norm1 < eps) { /* \n                        * This shouldn't normally happen for this space, but \n                        * if it does, we don't want to get NANs \n                        */\n      if (norm2 < eps) return 1;\n      return 0;\n    } \n    /* \n     * Sometimes due to rounding errors, we get values > 1 or < -1.\n     * This throws off other functions that use scalar product, e.g., acos\n     */\n    return max(T(-1), min(T(1), sum / sqrt(norm1) / sqrt(norm2)));\n}\n\ntemplate float  NormScalarProduct<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double NormScalarProduct<double>(const double* pVect1, const double* pVect2, size_t qty);\n\ntemplate <> \nfloat NormScalarProductSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"ScalarProductSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return NormScalarProduct(pVect1, pVect2, qty);\n#else\n    size_t qty16  = qty/16;\n    size_t qty4  = qty/4;\n\n    const float* pEnd1 = pVect1 + 16  * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  v1, v2; \n    __m128  sum_prod = _mm_set1_ps(0); \n    __m128  sum_square1 = sum_prod;\n    __m128  sum_square2 = sum_prod;\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum_prod  = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n        sum_square1  = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n        sum_square2  = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum_prod  = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n        sum_square1  = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n        sum_square2  = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum_prod  = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n        sum_square1  = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n        sum_square2  = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum_prod  = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n        sum_square1  = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n        sum_square2  = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum_prod  = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n        sum_square1  = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n        sum_square2  = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n    }\n\n    float PORTABLE_ALIGN16 TmpResProd[4];\n    float PORTABLE_ALIGN16 TmpResSquare1[4];\n    float PORTABLE_ALIGN16 TmpResSquare2[4];\n\n    _mm_store_ps(TmpResProd, sum_prod);\n    float sum = TmpResProd[0] + TmpResProd[1] + TmpResProd[2] + TmpResProd[3];\n    _mm_store_ps(TmpResSquare1, sum_square1);\n    float norm1 = TmpResSquare1[0] + TmpResSquare1[1] + TmpResSquare1[2] + TmpResSquare1[3];\n    _mm_store_ps(TmpResSquare2, sum_square2);\n    float norm2 = TmpResSquare2[0] + TmpResSquare2[1] + TmpResSquare2[2] + TmpResSquare2[3];\n\n    while (pVect1 < pEnd3) {\n        sum += (*pVect1) * (*pVect2); \n        norm1 += (*pVect1) * (*pVect1); \n        norm2 += (*pVect2) * (*pVect2); \n\n        ++pVect1; ++pVect2;\n    }\n\n    const float eps = numeric_limits<float>::min() * 2;\n\n    if (norm1 < eps) { /* \n                        * This shouldn't normally happen for this space, but \n                        * if it does, we don't want to get NANs \n                        */\n      if (norm2 < eps) return 1;\n      return 0;\n    } \n    /* \n     * Sometimes due to rounding errors, we get values > 1 or < -1.\n     * This throws off other functions that use scalar product, e.g., acos\n     */\n    return max(float(-1), min(float(1), sum / sqrt(norm1) / sqrt(norm2)));\n#endif\n}\n\ntemplate <> \ndouble NormScalarProductSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"NormScalarProductSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return NormScalarProduct(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n    size_t qty2 = qty/2;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + 2 * qty2;\n    const double* pEnd3 = pVect1 + qty;\n\n    __m128d  v1, v2; \n    __m128d  sum_prod = _mm_set1_pd(0); \n    __m128d  sum_square1 = sum_prod;\n    __m128d  sum_square2 = sum_prod;\n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum_prod  = _mm_add_pd(sum_prod, _mm_mul_pd(v1, v2));\n        sum_square1 = _mm_add_pd(sum_square1, _mm_mul_pd(v1, v1));\n        sum_square2 = _mm_add_pd(sum_square2, _mm_mul_pd(v2, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum_prod  = _mm_add_pd(sum_prod, _mm_mul_pd(v1, v2));\n        sum_square1 = _mm_add_pd(sum_square1, _mm_mul_pd(v1, v1));\n        sum_square2 = _mm_add_pd(sum_square2, _mm_mul_pd(v2, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum_prod  = _mm_add_pd(sum_prod, _mm_mul_pd(v1, v2));\n        sum_square1 = _mm_add_pd(sum_square1, _mm_mul_pd(v1, v1));\n        sum_square2 = _mm_add_pd(sum_square2, _mm_mul_pd(v2, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum_prod  = _mm_add_pd(sum_prod, _mm_mul_pd(v1, v2));\n        sum_square1 = _mm_add_pd(sum_square1, _mm_mul_pd(v1, v1));\n        sum_square2 = _mm_add_pd(sum_square2, _mm_mul_pd(v2, v2));\n\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum_prod  = _mm_add_pd(sum_prod, _mm_mul_pd(v1, v2));\n        sum_square1 = _mm_add_pd(sum_square1, _mm_mul_pd(v1, v1));\n        sum_square2 = _mm_add_pd(sum_square2, _mm_mul_pd(v2, v2));\n\n    }\n\n    double PORTABLE_ALIGN16 TmpResProd[2];\n    double PORTABLE_ALIGN16 TmpResSquare1[2];\n    double PORTABLE_ALIGN16 TmpResSquare2[2];\n\n    _mm_store_pd(TmpResProd, sum_prod);\n    double sum = TmpResProd[0] + TmpResProd[1];\n\n    _mm_store_pd(TmpResSquare1, sum_square1);\n    double norm1 = TmpResSquare1[0] + TmpResSquare1[1];\n\n    _mm_store_pd(TmpResSquare2, sum_square2);\n    double norm2 = TmpResSquare2[0] + TmpResSquare2[1];\n\n    while (pVect1 < pEnd3) {\n        sum += (*pVect1) * (*pVect2); \n        norm1 += (*pVect1) * (*pVect1); \n        norm2 += (*pVect2) * (*pVect2); \n\n        ++pVect1; ++pVect2;\n    }\n\n    const double eps = numeric_limits<double>::min() * 2;\n\n    if (norm1 < eps) { /* \n                        * This shouldn't normally happen for this space, but \n                        * if it does, we don't want to get NANs \n                        */\n      if (norm2 < eps) return 1;\n      return 0;\n    } \n    /* \n     * Sometimes due to rounding errors, we get values > 1 or < -1.\n     * This throws off other functions that use scalar product, e.g., acos\n     */\n    return max(double(-1), min(double(1), sum / sqrt(norm1) / sqrt(norm2)));\n#endif\n}\n\ntemplate float   NormScalarProductSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double  NormScalarProductSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * Scalar products that are not normalized.\n */\n\ntemplate <class T>\nT ScalarProduct(const T *p1, const T *p2, size_t qty) { \n    T sum = 0;\n\n    for (size_t i = 0; i < qty; i++) { \n      sum += p1[i] * p2[i];\n    }\n    return sum;\n}\n\ntemplate float  ScalarProduct<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double ScalarProduct<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/* \n * On new architectures unaligned loads are almost as fast as aligned ones. \n * Ensuring that both pVect1 and pVect2 are similarly aligned could be hard.\n */\n\ntemplate <> \nfloat ScalarProductSIMD(const float* pVect1, const float* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"ScalarProductSIMD<float>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return ScalarProduct(pVect1, pVect2, qty);\n#else\n    size_t qty16  = qty/16;\n    size_t qty4  = qty/4;\n\n    const float* pEnd1 = pVect1 + 16  * qty16;\n    const float* pEnd2 = pVect1 + 4  * qty4;\n    const float* pEnd3 = pVect1 + qty;\n\n    __m128  v1, v2; \n    __m128  sum = _mm_set1_ps(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, v2));\n\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, v2));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_ps(pVect1); pVect1 += 4;\n        v2   = _mm_loadu_ps(pVect2); pVect2 += 4;\n        sum  = _mm_add_ps(sum, _mm_mul_ps(v1, v2));\n    }\n\n    float PORTABLE_ALIGN16 TmpRes[4];\n\n    _mm_store_ps(TmpRes, sum);\n    float res = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n    while (pVect1 < pEnd3) {\n        res += (*pVect1) * (*pVect2); \n        ++pVect1; ++pVect2;\n    }\n\n    return res;\n#endif\n}\n\ntemplate <> \ndouble ScalarProductSIMD(const double* pVect1, const double* pVect2, size_t qty) {\n#ifndef PORTABLE_SSE2\n#pragma message WARN(\"ScalarProductSIMD<double>: SSE2 is not available, defaulting to pure C++ implementation!\")\n    return ScalarProduct(pVect1, pVect2, qty);\n#else\n    size_t qty8 = qty/8;\n    size_t qty2 = qty/2;\n\n    const double* pEnd1 = pVect1 + 8 * qty8;\n    const double* pEnd2 = pVect1 + 2 * qty2;\n    const double* pEnd3 = pVect1 + qty;\n\n    __m128d  v1, v2; \n    __m128d  sum = _mm_set1_pd(0); \n\n    while (pVect1 < pEnd1) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, v2));\n\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, v2));\n    }\n\n    while (pVect1 < pEnd2) {\n        v1   = _mm_loadu_pd(pVect1); pVect1 += 2;\n        v2   = _mm_loadu_pd(pVect2); pVect2 += 2;\n        sum  = _mm_add_pd(sum, _mm_mul_pd(v1, v2));\n    }\n\n    double PORTABLE_ALIGN16 TmpRes[2];\n\n    _mm_store_pd(TmpRes, sum);\n    double res= TmpRes[0] + TmpRes[1];\n\n    while (pVect1 < pEnd3) {\n        res += (*pVect1) * (*pVect2); \n        ++pVect1; ++pVect2;\n    }\n\n    return res;\n#endif\n}\n\ntemplate float   ScalarProductSIMD<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double  ScalarProductSIMD<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * Angular distance (a proper metric)\n *\n */\n\ntemplate <class T>\nT AngularDistance(const T *p1, const T *p2, size_t qty) \n{ \n    return acos(NormScalarProductSIMD(p1, p2, qty));\n}\n\ntemplate float  AngularDistance<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double AngularDistance<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n/*\n * Cosine similarity (not exactly a metric)\n *\n */\n\ntemplate <class T>\nT CosineSimilarity(const T *p1, const T *p2, size_t qty) \n{ \n    return std::max(T(0), 1 - NormScalarProductSIMD(p1, p2, qty));\n}\n\ntemplate float  CosineSimilarity<float>(const float* pVect1, const float* pVect2, size_t qty);\ntemplate double CosineSimilarity<double>(const double* pVect1, const double* pVect2, size_t qty);\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/distcomp_sparse_scalar_fast.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <memory>\n\n#include \"utils.h\"\n#include \"logging.h\"\n#include \"simdutils.h\"\n\n#include \"space/space_sparse_vector_inter.h\"\n\nnamespace similarity {\n\n#ifdef PORTABLE_SSE4\nconst static __m128i shuffle_mask16[16] = {\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,7,6,5,4),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,7,6,5,4,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,11,10,9,8),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,11,10,9,8,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,11,10,9,8,7,6,5,4),\n  _mm_set_epi8(-127,-127,-127,-127,11,10,9,8,7,6,5,4,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,15,14,13,12),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,15,14,13,12,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,15,14,13,12,7,6,5,4),\n  _mm_set_epi8(-127,-127,-127,-127,15,14,13,12,7,6,5,4,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,-127,-127,-127,-127,15,14,13,12,11,10,9,8),\n  _mm_set_epi8(-127,-127,-127,-127,15,14,13,12,11,10,9,8,3,2,1,0),\n  _mm_set_epi8(-127,-127,-127,-127,15,14,13,12,11,10,9,8,7,6,5,4),\n  _mm_set_epi8(15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0),\n};\n#endif\n\n/*\n* The maximum number of sparse elements that will be kept on the stack\n* by the function ComputeDistanceHelper.\n*\n* TODO:@leo If there are too many threads, we might run out stack memory.\n*           but it is probably extremely unlikely with the buffer of this size.\n*\n*/\n#define MAX_BUFFER_QTY  8192\n\n/*\n * The efficient SIMD intersection is based on the code of Daniel Lemire (lemire.me). \n *\n * Lemire's code implemented an algorithm similar to one described in:\n *\n * Schlegel, Benjamin, Thomas Willhalm, and Wolfgang Lehner. \n * \"Fast sorted-set intersection using simd instructions.\" ADMS Workshop, Seattle, WA, USA. 2011.\n *\n * Daniel improved the code of Schlegel et al by replacing a slow function\n * _mm_cmpistri with a faster analog _mm_cmpistrm. The _mm_cmpistrm is \n * fast, but it cannot deal with IDs that are multiples of 65536.\n * Thus, some extra checking is need to handle the case of such IDs.\n * In this version, however, Leo works around this problem by\n * transforming IDs in advance.\n *\n * More details about Leo's changes:\n *\n * 1) The original algorithm was used to obtain only IDs.\n *    to extract both IDs and respective floating-point values,\n *    we need to call _mm_cmpistrm twice. \n * 2) During partitioning we transform ids so that \n *    none of them is a multiple of 65536.\n *    The latter trick allows us to employ a slightly faster\n *    version of the _mm_cmpistrm without worrying about\n *    zero values (handling those requires a check).\n *\n */\nfloat ScalarProductFast(const char* pData1, size_t len1,\n                        const char* pData2, size_t len2) {\n  float           norm1 = 0, norm2 = 0;\n  size_t          blockQty1 = 0, blockQty2 = 0;\n  const size_t*   pBlockQtys1 = NULL; \n  const size_t*   pBlockQtys2 = NULL; \n  const size_t*   pBlockOffs1 = NULL; \n  const size_t*   pBlockOffs2 = NULL; \n  const char*     pBlockBeg1 = NULL; \n  const char*     pBlockBeg2 = NULL;\n\n  float                        buf1[MAX_BUFFER_QTY];\n  float                        buf2[MAX_BUFFER_QTY];\n  unique_ptr<float[]>        mem1;\n  unique_ptr<float[]>        mem2;\n  size_t                    allocQty = 0;\n\n  ParseSparseElementHeader(pData1, blockQty1, norm1, pBlockQtys1, pBlockOffs1, pBlockBeg1);\n  ParseSparseElementHeader(pData2, blockQty2, norm2, pBlockQtys2, pBlockOffs2, pBlockBeg2);\n\n  float sum = 0;\n\n  size_t bid1 = 0, bid2 = 0; // block ids\n\n  size_t elemSize = 2 + sizeof(float);\n\n  while (bid1 < blockQty1 && bid2 < blockQty2) {\n    if (pBlockOffs1[bid1] == pBlockOffs2[bid2]) {\n      size_t qty1    = pBlockQtys1[bid1];\n      const uint16_t* pBlockIds1 = reinterpret_cast<const uint16_t*>(pBlockBeg1);\n      const float*    pBlockVals1 = reinterpret_cast<const float*>(pBlockIds1 + qty1);\n\n      size_t qty2    = pBlockQtys2[bid2];\n      const uint16_t* pBlockIds2 = reinterpret_cast<const uint16_t*>(pBlockBeg2);\n      const float*    pBlockVals2 = reinterpret_cast<const float*>(pBlockIds2 + qty2);\n\n      size_t mx = max(qty1, qty2);\n\n      float* val1 = buf1;\n      float* val2 = buf2;\n\n      /* \n       * Let's do some flexible memory allocation. \n       * If there is enough space on stack, use the stack,\n       * otherwise allocate a large chunk of memory      \n       */\n      if (mx > MAX_BUFFER_QTY) {\n          if (allocQty < mx) {\n              mem1.reset(new float[mx]);\n              mem2.reset(new float[mx]);\n              allocQty = mx;\n          }\n          val1 = mem1.get();\n          val2 = mem2.get();\n      }\n  \n      float* pVal1 = val1;\n      float* pVal2 = val2;\n\n      size_t i1 = 0, i2 = 0;\n      size_t iEnd1 = qty1 / 8 * 8; \n      size_t iEnd2 = qty2 / 8 * 8; \n\n#ifdef PORTABLE_SSE4\n      if (i1 < iEnd1 && i2 < iEnd2) {\n        while (pBlockIds1[i1 + 7] < pBlockIds2[i2]) {\n          i1 += 8;\n          if (i1 >= iEnd1) goto scalar_inter; \n        }\n        while (pBlockIds2[i2 + 7] < pBlockIds1[i1]) {\n          i2 += 8;\n          if (i2 >= iEnd2) goto scalar_inter; \n        }\n        __m128i id1 = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockIds1[i1]));\n        __m128i id2 = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockIds2[i2]));\n\n        while (true) {\n          __m128i cmpRes = _mm_cmpistrm(id2, id1,\n                                        _SIDD_UWORD_OPS | \n                                        _SIDD_CMP_EQUAL_ANY | \n                                        _SIDD_BIT_MASK);\n\n          int r = _mm_extract_epi32(cmpRes, 0);\n\n          if (r) {\n\n            int r1 = r & 15;\n            __m128i v = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockVals1[i1]));\n            __m128  vs = _mm_castsi128_ps(_mm_shuffle_epi8(v, shuffle_mask16[r1]));\n            _mm_storeu_ps(pVal1, vs);\n            pVal1 += _mm_popcnt_u32(r1);\n\n            int r2 = (r >> 4) & 15;\n            v = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockVals1[i1+4]));\n            vs = _mm_castsi128_ps(_mm_shuffle_epi8(v, shuffle_mask16[r2]));\n            _mm_storeu_ps(pVal1, vs);\n            pVal1 += _mm_popcnt_u32(r2);\n\n            cmpRes = _mm_cmpistrm(id1, id2,\n                                _SIDD_UWORD_OPS | \n                                _SIDD_CMP_EQUAL_ANY | \n                                _SIDD_BIT_MASK);\n            r = _mm_extract_epi32(cmpRes, 0);\n\n            r1 = r & 15;\n\n            v = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockVals2[i2]));\n            vs = _mm_castsi128_ps(_mm_shuffle_epi8(v, shuffle_mask16[r1]));\n            _mm_storeu_ps(pVal2, vs);\n            pVal2 += _mm_popcnt_u32(r1);\n\n            r2 = (r >> 4) & 15;\n            v = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockVals2[i2+4]));\n            vs = _mm_castsi128_ps(_mm_shuffle_epi8(v, shuffle_mask16[r2]));\n            _mm_storeu_ps(pVal2, vs);\n            pVal2 += _mm_popcnt_u32(r2);\n          }\n\n          const uint16_t id1max = pBlockIds1[i1 + 7];\n          if (id1max <= pBlockIds2[i2 + 7]) {\n            i1 += 8;\n            if (i1 >= iEnd1) goto scalar_inter; \n            id1 = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockIds1[i1]));\n          }\n          if (id1max >= pBlockIds2[i2 + 7]) {\n            i2 += 8;\n            if (i2 >= iEnd2) goto scalar_inter; \n            id2 = _mm_loadu_si128(reinterpret_cast<const __m128i *>(&pBlockIds2[i2]));\n          }\n        }\n      }\n  scalar_inter:\n#else\n    #pragma message WARN(\"No SSE 4.2, defaulting to scalar implementation!\")\n#endif\n\n      while (i1 < qty1 && i2 < qty2) {\n        if (pBlockIds1[i1] == pBlockIds2[i2]) {\n          *pVal1++ = pBlockVals1[i1]; \n          *pVal2++ = pBlockVals2[i2];\n          ++i1;\n          ++i2;\n        } else if (pBlockIds1[i1] < pBlockIds2[i2]) {\n          ++i1;\n        } else {\n          ++i2;\n        } \n      }\n\n      pBlockBeg1 += elemSize * pBlockQtys1[bid1++];\n      pBlockBeg2 += elemSize * pBlockQtys2[bid2++];\n\n      ssize_t resQty = pVal1 - val1;\n\n      CHECK(resQty == pVal2 - val2);\n\n      \n\n#ifdef PORTABLE_SSE4\n      ssize_t resQty4 = resQty / 4 * 4;\n\n      if (resQty4) {\n        __m128 sum128 = _mm_set1_ps(0);\n\n        for (ssize_t k = 0; k < resQty4; k += 4) {\n          sum128 = _mm_add_ps(sum128,\n                              _mm_mul_ps(_mm_loadu_ps(val1 + k),\n                                         _mm_loadu_ps(val2 + k)));\n        }\n\n        sum += MM_EXTRACT_FLOAT(sum128, 0);\n        sum += MM_EXTRACT_FLOAT(sum128, 1);\n        sum += MM_EXTRACT_FLOAT(sum128, 2);\n        sum += MM_EXTRACT_FLOAT(sum128, 3);\n      }\n\n      for (ssize_t k = resQty4; k < resQty; ++k)\n          sum += val1[k] * val2[k];\n#else\n      for (ssize_t k = 0; k < resQty; ++k)\n          sum += val1[k] * val2[k];\n#endif\n\n    } else if (pBlockOffs1[bid1] < pBlockOffs2[bid2]) {\n      pBlockBeg1 += elemSize * pBlockQtys1[bid1++];\n    } else {\n      pBlockBeg2 += elemSize * pBlockQtys2[bid2++];\n    }\n  }\n\n  // These two loops are necessary to carry out size checks below\n  while (bid1 < blockQty1) {\n    pBlockBeg1 += elemSize * pBlockQtys1[bid1++];\n  }\n\n  while (bid2 < blockQty2) {\n    pBlockBeg2 += elemSize * pBlockQtys2[bid2++];\n  }\n\n  CHECK(pBlockBeg1 - pData1 == (ssize_t)len1);\n  CHECK(pBlockBeg2 - pData2 == (ssize_t)len2);\n\n /* \n  * Sometimes due to rounding errors, we get values > 1 or < -1.\n  * This throws off other functions that use scalar product, e.g., acos\n  */\n\n  return max(float(-1), min(float(1), sum / sqrt(norm1) / sqrt(norm2)));\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/dummy_app.cc",
    "content": "#include <iostream>\n\nusing namespace std;\nint main(void) {\n  cout << \"Hello world!\" << endl;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/dummy_app.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{46643623-A4FA-4185-8DB2-61D4FAAF6A53}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>dummy_app</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">dummy_app</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">dummy_app</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">dummy_app</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\dummy_app\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1.59.0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1.59.0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1.59.0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1.59.0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1.59.0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"dummy_app.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/dummy_app.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <ClCompile Include=\"dummy_app.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{3EF538C7-CC7F-4CC0-AA2E-461C0B950388}</UniqueIdentifier>\n    </Filter>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/experiment.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{0C7221CD-0703-4299-A779-1E45E26FA47F}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>experiment</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">experiment</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">experiment</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">experiment</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\experiment\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:\\local\\boost_1_59_0\\lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n      <ProfileGuidedDatabase>$(OutDir)experiment_$(TargetName).pgd</ProfileGuidedDatabase>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"main.cc\" />\n    <ClCompile Include=\"params_cmdline.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/experiment.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <ClCompile Include=\"main.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"params_cmdline.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{3EF538C7-CC7F-4CC0-AA2E-461C0B950388}</UniqueIdentifier>\n    </Filter>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/experimentconf.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n#include <stdexcept>\n\n#include \"space.h\"\n#include \"logging.h\"\n#include \"experimentconf.h\"\n\n\n#define SPACE             \"Space\"\n\n#define DATA_FILE         \"DataFile\"\n#define DATA_FILE_QTY     \"DataFileQty\"\n\n// The query file can be empty\n#define QUERY_FILE        \"QueryFile\"\n#define TEST_SET_QTY      \"TestSetQty\"\n\n#define RANGE_QTY         \"RangeQty\"\n#define KNN_QTY           \"KNNQty\"\n// This is either\n#define QUERY_QTY         \"QueryQty\"\n\n//#define PARANOID_SPLIT_CHECK\n\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::Read(istream& controlStream,\n                                    istream& binaryStream,\n                                    size_t& dataFileQty) {\n  if (dataSetWasRead_) {\n    throw runtime_error(\"Bug: the function to read cache shouldn't be called after the data set is read!\");  \n  }\n  string s;\n  size_t i;\n\n  ReadField(controlStream, SPACE, s);\n\n  if (s != space_.StrDesc()) {\n    stringstream err;\n    err << \"The specified space ('\" << space_.StrDesc() << \"' \"\n    << \" doesn't match the space ('\"\n    << s << \") in the gold standard cache (must be char-by-char equal).\";\n    throw runtime_error(err.str());\n  }\n\n  ReadField(controlStream, DATA_FILE, s);\n\n  if (s != datafile_) {\n    stringstream err;\n    err << \"The specified data file ('\" << datafile_ << \"' \"\n        << \" doesn't match the data file ('\"\n        << s << \") in the gold standard cache (must be char-by-char equal).\";\n    throw runtime_error(err.str());\n  }\n\n  ReadField(controlStream, DATA_FILE_QTY, s);\n  ConvertFromString(s, dataFileQty);\n\n  ReadField(controlStream, QUERY_FILE, s);\n\n  if (s != queryfile_) {\n    stringstream err;\n    err << \"The specified query file ('\" << queryfile_ << \"' \"\n        << \" doesn't match the query file ('\"\n        << s << \") in the gold standard cache (must be char-by-char equal).\";\n    throw runtime_error(err.str());\n  }\n\n  ReadField(controlStream, TEST_SET_QTY, s);\n  ConvertFromString(s, testSetQty_);\n\n  if (testSetQty_ < testSetToRunQty_) {\n    stringstream err;\n    err << \"The specified # of test sets (\" << testSetToRunQty_ << \") \"\n        << \" is larger than the value (\" << testSetQty_ << \") \"\n        << \" in the gold standard cache.\";\n    throw runtime_error(err.str());\n  }\n\n  ReadField(controlStream, RANGE_QTY, s);\n  ConvertFromString(s, i);\n\n  if (i != range_.size()) {\n    stringstream err;\n    err << \"The specified # of range searches (\" << range_.size() << \") \"\n        << \" doesn't match the value (\" << i << \") \"\n        << \" in the gold standard cache.\";\n    throw runtime_error(err.str());\n  }\n\n  ReadField(controlStream, KNN_QTY, s);\n  ConvertFromString(s, i);\n\n  if (i != knn_.size()) {\n    stringstream err;\n    err << \"The specified # of KNN searches (\" << knn_.size() << \") \"\n        << \" doesn't match the value (\" << i << \") \"\n        << \" in the gold standard cache.\";\n    throw runtime_error(err.str());\n  }\n\n  dist_t val;\n  for (size_t i = 0; i < range_.size(); ++i) {\n    binaryStream.read(reinterpret_cast<char*>(&val), sizeof val);\n    if (!ApproxEqual<dist_t>(range_[i], val)) {\n      stringstream err;\n      err << \"The specified range value #\" << (i+1) << \" (\" << range_[i] << \") \"\n          << \" isn't equal to the value (\" << val << \") \"\n          << \" in the gold standard cache.\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  // Note that the type of eps_ is not necessarily dist_t!!!\n  decltype(eps_) epsVal;\n\n  binaryStream.read(reinterpret_cast<char*>(&epsVal), sizeof epsVal);\n  if (!ApproxEqual<dist_t>(eps_, epsVal)) {\n    stringstream err;\n    err << \"The specified eps (\" << eps_ << \") \"\n        << \" isn't equal to the value (\" << epsVal << \") \"\n        << \" in the gold standard cache.\";\n    throw runtime_error(err.str());\n  }\n\n  unsigned kVal;\n\n  if (sizeof(kVal)!=sizeof(knn_[0])) {\n    stringstream err;\n    err << \"Bug: types apparently changed, sizeof(kVal) = \" << sizeof(kVal) <<\n           \" which is different from sizeof(knn_[0]) = \" << sizeof(knn_[0]);\n    throw runtime_error(err.str());\n  }\n\n  for (size_t i = 0; i < knn_.size(); ++i) {\n    binaryStream.read(reinterpret_cast<char*>(&kVal), sizeof kVal);\n    // We can use a smaller KNN value, but not the other way around!\n    if (kVal < knn_[i]) {\n      stringstream err;\n      err << \"The specified KNN value #\" << (i+1) << \" (\" << knn_[i] << \") \"\n          << \" is greater than the value (\" << kVal << \") \"\n          << \" in the gold standard cache.\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  ReadField(controlStream, QUERY_QTY, s);\n  ConvertFromString(s, maxNumQuery_);\n\n  /*\n   * The number of queries specified by the user can be smaller than\n   * the number of GS entries in the file, but not the other\n   * way around.\n   */\n\n  if (maxNumQuery_ < maxNumQueryToRun_) {\n    stringstream err;\n    err << \"The specified # queries (\" << maxNumQueryToRun_ << \") \"\n        << \" exceeds the value (\" << maxNumQuery_ << \") \"\n        << \" in the gold standard cache.\";\n    throw runtime_error(err.str());\n  }\n\n  if (noQueryData_) {\n    for (size_t TestSetId = 0; TestSetId < testSetQty_; ++TestSetId) {\n      vector<int> vTmp;\n      if (!getline(controlStream, s)) {\n        throw runtime_error(\"Error reading from the control/text cache file!\");\n      }\n\n      SplitStr(s, vTmp, ' ');\n      for (int id : vTmp) {\n        cachedDataAssignment_.insert(make_pair(id, TestSetId));\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::Write(ostream& controlStream, ostream& binaryStream) {\n  WriteField(controlStream, SPACE, space_.StrDesc());\n  WriteField(controlStream, DATA_FILE, datafile_);\n  WriteField(controlStream, DATA_FILE_QTY, ConvertToString(origData_.size()));\n  WriteField(controlStream, QUERY_FILE, queryfile_);\n  WriteField(controlStream, TEST_SET_QTY, ConvertToString(testSetQty_));\n  WriteField(controlStream, RANGE_QTY, ConvertToString(range_.size()));\n  WriteField(controlStream, KNN_QTY, ConvertToString(knn_.size()));\n  // Let's write range and knn-query parameters in the binary format\n  for (size_t i = 0; i < range_.size(); ++i)\n    binaryStream.write(reinterpret_cast<const char*>(&range_[i]), sizeof range_[i]);\n\n  binaryStream.write(reinterpret_cast<const char*>(&eps_), sizeof eps_);\n\n  for (size_t i = 0; i < knn_.size(); ++i) {\n    binaryStream.write(reinterpret_cast<const char*>(&knn_[i]), sizeof knn_[i]);\n  }\n  unsigned queryQty = origQuery_.size();\n\n  if (noQueryData_) {\n    if (!testSetToRunQty_) {\n      throw runtime_error(\"Bug: zero number of test sets!\");\n    }\n    /*\n     *  Let's obtain the number of queries + double-check\n     *  that each subset has the same number of queries\n     */\n    vector<size_t> qtys(testSetQty_);\n    for (size_t i = 0; i < origDataAssignment_.size(); ++i) {\n      int dst = origDataAssignment_[i];\n      if (dst >= 0) {\n        if (dst >= testSetQty_) {\n          stringstream err;\n          err << \"Bug: an assignment id (\" << dst <<\n              \") is > # of sets (\" << testSetQty_ << \")\";\n          throw runtime_error(err.str());\n        }\n        qtys[dst]++;\n      }\n    }\n    queryQty = qtys[0]; // see the check above queryQty should be > 0\n    if (!queryQty) {\n      throw runtime_error(\"Bug: zero number of queries!\");\n    }\n    for (size_t i = 1; i < testSetToRunQty_; ++i)\n    if (qtys[i] != queryQty) {\n      stringstream err;\n      err << \"Bug, different # of queries in the subsets, \" <<\n             \"id=0, qty=\" << queryQty <<\n             \"id=\" << i <<\", qty=\" << qtys[i];\n      throw runtime_error(err.str());\n    }\n\n  }\n\n  WriteField(controlStream, QUERY_QTY, ConvertToString(queryQty));\n\n  if (noQueryData_) {\n  // Let's save test set assignments\n    size_t OrigQty = origData_.size();\n    for (size_t SetNum = 0; SetNum < testSetQty_; ++SetNum) {\n      stringstream  line;\n      bool bFirst = true;\n      for (size_t i = 0; i < OrigQty; ++i) {\n        int dst = origDataAssignment_[i];\n\n        if (dst == SetNum) {\n          if (!bFirst) line << \" \";\n          bFirst = false;\n          line << i;\n        }\n      }\n      controlStream << line.str() << endl;\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::SelectTestSet(int SetNum) {\n  if (!noQueryData_) return;\n  if (SetNum <0 || static_cast<unsigned>(SetNum) >= testSetToRunQty_) {\n    stringstream err;\n    err << \"Invalid test set #: \" << SetNum;\n    throw runtime_error(err.str());\n  }\n  dataobjects_.clear();\n  queryobjects_.clear();\n\n  size_t OrigQty = origData_.size();\n  for (size_t i = 0; i < OrigQty; ++i) {\n    int dst = origDataAssignment_[i];\n\n    /*\n     * dst == -1  =>  the data point is always put to dataobjects\n     * if dst >= 0 and SetNum == dst, add this\n     * data point to the current query set (with the ID=SetNum).\n     * Otherwise, it goes to the data set.\n     */\n    if (dst == SetNum) {\n      /*\n       * There can be more queries than we need to run.\n       * One typical scenario: the user saves cache for 1000 queries,\n       * next time she runs a test using the saved cache she asks\n       * to evaluate using only 100 queries.\n       */\n      if (queryobjects_.size() < maxNumQueryToRun_)\n        queryobjects_.push_back(origData_[i]);\n    }\n    else dataobjects_.push_back(origData_[i]);\n  }\n#ifdef PARANOID_SPLIT_CHECK\n  {\n\n    IdType MaxId = 0;\n    for (const Object *pObj: dataobjects_) {\n      MaxId = max(MaxId, pObj->id());\n      CHECK_MSG(pObj->id()>=0, \"Got negative Id!\");\n    }\n\n    // Sanity check, is our data correct?\n    {\n      vector<bool> seen(MaxId);\n      for (const Object *pObj: dataobjects_) {\n        CHECK_MSG(!seen[pObj->id()],\n                  \"Bug in splitting data, repeating id: \" + ConvertToString(pObj->id()) + \" testSetId: \" +ConvertToString(SetNum));\n        seen[pObj->id()] = true;\n      }\n    }\n  }\n#endif\n}\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::CopyExternal(const ObjectVector& src, ObjectVector& dst, size_t maxQty) {\n  for (size_t i = 0; i < src.size() && i < maxQty; ++i) {\n    dst.push_back(src[i]->Clone());\n  }\n}\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::ReadDataset() {\n  vector<string> tmp;\n\n  if (!dataobjects_.empty())\n    throw runtime_error(\n        \"The set of data objects in non-empty, did you read the data set already?\");\n\n  if (!queryobjects_.empty())\n    throw runtime_error(\n        \"The set of query objects in non-empty, did you read the data set already?\");\n\n  if (pExternalData_) CopyExternal(*pExternalData_, origData_, maxNumData_);\n  else {\n    unique_ptr<DataFileInputState> inpState(space_.ReadDataset(origData_, tmp, datafile_, maxNumData_));\n    space_.UpdateParamsFromFile(*inpState);\n  }\n\n  /*\n   * Note!!! \n   * The destructor of this class will delete pointers stored in OrigData & OrigQuery.\n   * Applications should not delete objects whose pointers are stored in arrays:\n   * 1) dataobjects \n   * 2) queryobjects.\n   */\n  if (!noQueryData_) {\n    dataobjects_ = origData_;\n    if (pExternalQuery_) \n      CopyExternal(*pExternalQuery_, queryobjects_, maxNumQuery_);\n    else \n      space_.ReadDataset(queryobjects_, tmp, queryfile_, maxNumQueryToRun_);\n\n    origQuery_ = queryobjects_;\n  } else {\n    size_t OrigQty = origData_.size();\n    size_t MinOrigQty = (testSetQty_ + 1) * maxNumQuery_;\n    if (OrigQty < MinOrigQty) {\n      stringstream err;\n      err << \"The data set is too small, add \" << (MinOrigQty - OrigQty) << \" MORE data points. \" <<\n                    \"Try to either increase the number of data points, or to decrease parameters: \" <<\n                    \"testSetQty and/or maxNumQuery \";\n      throw runtime_error(err.str());\n    }\n    origDataAssignment_.resize(OrigQty);\n    fill(origDataAssignment_.begin(), origDataAssignment_.end(), -1);\n\n    if (!cachedDataAssignment_.empty()) {\n      for (auto elem: cachedDataAssignment_)\n        origDataAssignment_[elem.first] = elem.second;\n    } else {\n      /*\n       * Test queries are selected randomly without resampling.\n       * The algorithm of efficient sampling without replacement\n       * was based on conclusions of D. Lemire's:\n       * https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog/blob/master/2013/08/14/cpp/synthetic.h\n       */\n\n      for (unsigned i = 0; i < testSetQty_; ++i) {\n        size_t        card = 0;\n\n        while (card < maxNumQuery_) {\n          size_t Id = RandomInt() % OrigQty;\n\n          if (-1 == origDataAssignment_[Id]) {\n            origDataAssignment_[Id] = i;\n            ++card;\n          }\n        }\n      }\n    }\n  }\n\n  dataSetWasRead_ = true;\n  LOG(LIB_INFO) << \"data & query .... ok!\\n\";\n}\n\ntemplate <typename dist_t>\nvoid ExperimentConfig<dist_t>::PrintInfo() const {\n  LOG(LIB_INFO) << space_.StrDesc();\n  LOG(LIB_INFO) << \"distance type         = \" << DistTypeName<dist_t>();\n  LOG(LIB_INFO) << \"data file             = \" << datafile_;\n  LOG(LIB_INFO) << \"# of test sets        = \" << GetTestSetTotalQty();\n  LOG(LIB_INFO) << \"# of test sets to run = \" << GetTestSetToRunQty();\n  LOG(LIB_INFO) << \"Use held-out queries  = \" << !noQueryData_;\n  LOG(LIB_INFO) << \"# of data points      = \" << origData_.size() - (noQueryData_ ? GetQueryToRunQty():0);\n  LOG(LIB_INFO) << \"# of query points     = \" << GetQueryToRunQty();\n}\n\ntemplate class ExperimentConfig<float>;\ntemplate class ExperimentConfig<double>;\ntemplate class ExperimentConfig<int>;\n\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/global.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"global.h\"\n\nnamespace similarity {\n\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/init.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"init.h\"\n\n/*\n * Important note: there is some issue when compling using Intel.\n * It involves header inclusion order. If we include spaces first\n * it then somehow handicaps ability of \n * boost/math/special_functions/detail/lanczos_sse2.hpp\n * to properly use SSE.\n */\n#include \"factory/init_methods.h\"\n#include \"factory/init_spaces.h\"\n\n#include \"logging.h\"\n\nnamespace similarity {\n\nvoid initLibrary(LogChoice choice, const char* pLogFile) {\n  InitializeLogger(choice, pLogFile);\n  initSpaces();\n  initMethods();\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/knnquery.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <iostream>\n#include <algorithm>\n#include <memory>\n#include <stdexcept>\n\n#include \"knnqueue.h\"\n#include \"utils.h\"\n#include \"space.h\"\n#include \"index.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n\nnamespace similarity {\n\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nKNNQuery<dist_t>::KNNQuery(const Space<dist_t>& space, const Object* query_object, const unsigned K, float eps)\n    : Query<dist_t>(space, query_object),\n      K_(K), eps_(eps),\n      result_(new KNNQueue<dist_t>(K)) {\n}\n\ntemplate <typename dist_t>\nKNNQuery<dist_t>::~KNNQuery() {\n  delete result_;\n}\n\ntemplate <typename dist_t>\nvoid KNNQuery<dist_t>::Reset() {\n  this->ResetStats();\n  result_->Reset();\n}\n\ntemplate <typename dist_t>\nconst KNNQueue<dist_t>* KNNQuery<dist_t>::Result() const {\n  return result_;\n}\n\ntemplate <typename dist_t>\ndist_t KNNQuery<dist_t>::Radius() const {\n  return result_->Size() < static_cast<size_t>(K_)\n      ? DistMax<dist_t>()\n      : static_cast<dist_t>(result_->TopDistance() / (static_cast<dist_t>(1) + eps_));\n}\n\ntemplate <typename dist_t>\nunsigned KNNQuery<dist_t>::ResultSize() const {\n  return result_->Size();\n}\n\ntemplate <typename dist_t>\nbool KNNQuery<dist_t>::CheckAndAddToResult(const dist_t distance,\n                                           const Object* object) {\n  if (result_->Size() < static_cast<size_t>(K_) ||\n      distance < result_->TopDistance()) {\n    result_->Push(distance, object);\n    return true;\n  }\n  return false;\n}\n\ntemplate <typename dist_t>\nbool KNNQuery<dist_t>::CheckAndAddToResult(const Object* object) {\n  return this->CheckAndAddToResult(this->DistanceObjLeft(object), object);\n}\n\ntemplate <typename dist_t>\nsize_t KNNQuery<dist_t>::CheckAndAddToResult(const ObjectVector& bucket) {\n  size_t res = 0;\n  for (size_t i = 0; i < bucket.size(); ++i) {\n    if (CheckAndAddToResult(bucket[i])) {\n      ++res;\n    }\n  }\n  return res;\n}\n\ntemplate <typename dist_t>\nbool KNNQuery<dist_t>::Equals(const KNNQuery<dist_t>* other) const {\n  bool equal = true;\n  unique_ptr<KNNQueue<dist_t>> first(result_->Clone());\n  unique_ptr<KNNQueue<dist_t>> second(other->result_->Clone());\n  while (equal && !first->Empty() && !second->Empty()) {\n    equal = equal && ApproxEqual(first->TopDistance(), second->TopDistance());\n    if (!equal) {\n      std::cerr << \"Equality check failed: \"\n                << first->TopDistance() <<  \" != \"\n                << second->TopDistance() << std::endl;\n    }\n    first->Pop();\n    second->Pop();\n  }\n  equal = equal && first->Empty() && second->Empty();   // both should be empty\n  return equal;\n}\n\ntemplate <typename dist_t>\nvoid KNNQuery<dist_t>::Print() const {\n  unique_ptr<KNNQueue<dist_t>> clone(Result()->Clone());\n  std::cerr << \"queryID = \" << this->query_object_->id()\n            << \" size = \" << ResultSize()\n            << \" (k=\" << GetK()\n            << \" dc=\" << this->DistanceComputations()\n            << \") \";\n  while (!clone->Empty()) {\n    if (clone->TopObject() == NULL) {\n      std::cerr << \"null (\" << clone->TopDistance() << \")\";\n    } else {\n      const Object* object = reinterpret_cast<const Object*>(clone->TopObject());\n      std::cerr << object->id() << \"(\"\n                << clone->TopDistance() << \" \"\n                << this->space_.IndexTimeDistance(object, this->QueryObject()) << \") \";\n    }\n    clone->Pop();\n  }\n  std::cerr << std::endl;\n}\n\ntemplate class KNNQuery<float>;\ntemplate class KNNQuery<double>;\ntemplate class KNNQuery<int>;\ntemplate class KNNQuery<short int>;\n\n}    // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/logging.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n//  To shutup Microsoft Compiler who complains about localtime being unsafe\n#ifdef _MSC_VER\n#define _CRT_SECURE_NO_WARNINGS\n#endif\n\n#include <time.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <assert.h>\n\n#include <iostream>\n#include <string>\n\n#include \"logging.h\"\n\nconst char* log_severity[] = {\"INFO\", \"WARNING\", \"ERROR\", \"FATAL\"};\n\nusing namespace std;\n\n// allocate the static member\nstd::ofstream Logger::logfile_;\n\nstatic struct voidstream : public ostream {\n  template <class T> ostream& operator<< (T) { return *this; }\n  template <class T> ostream& operator<< (T*) { return *this; }\n  template <class T> ostream& operator<< (T&) { return *this; }\n  voidstream() : ostream(0) {}\n} voidstream_;\n\nstd::string LibGetCurrentTime() {\n  time_t now;\n  time(&now);\n  struct tm* timeinfo = localtime(&now);\n  char time_string[50];\n  strftime(time_string, sizeof(time_string), \"%Y-%m-%d %H:%M:%S\", timeinfo);\n  return std::string(time_string);\n}\n\nostream* Logger::currstrm_ = &cerr;\n\nLogger::Logger(LogSeverity severity, const std::string& _file, int line, const char* function)\n    : severity_(severity) {\n  std::string file = _file;\n  size_t n = file.rfind('/');\n  if (n != std::string::npos) {\n    file.erase(file.begin(), file.begin() + n + 1);\n  }\n  stream() << LibGetCurrentTime() << \" \" << file << \":\" << line\n           << \" (\" << function << \") [\" << log_severity[severity] << \"] \";\n}\n\nLogger::~Logger() {\n  stream() << '\\n';\n  if (severity_ == LIB_FATAL) {\n    stream().flush();\n    if (logfile_.is_open())\n      logfile_.close();\n    // TODO(@leo/@bileg) do we want to abort here?\n    //abort();\n    exit(1); \n  }\n}\n\nvoid InitializeLogger(LogChoice choice, const char* logfile) {\n  if (choice == LIB_LOGNONE) {\n    Logger::currstrm_ = &voidstream_;\n  }\n  if (choice == LIB_LOGFILE) {\n    Logger::logfile_.open(logfile);\n    if (!Logger::logfile_) {\n      LOG(LIB_FATAL) << \"Can't open the logfile: '\" << logfile << \"'\";\n    }\n    Logger::currstrm_ = &Logger::logfile_;\n  }\n  if (choice == LIB_LOGSTDERR) {\n    Logger::currstrm_ = &cerr;\n  }\n}\n\n\nRuntimeErrorWrapper::RuntimeErrorWrapper(const std::string& _file, int line, const char* function) {\n  std::string file = _file;\n  size_t n = file.rfind('/');\n  if (n != std::string::npos) {\n    file.erase(file.begin(), file.begin() + n + 1);\n  }\n  stream() << LibGetCurrentTime() << \" \" << file << \":\" << line\n           << \" (\" << function << \") \";\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/main.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cstdio>\n#include <cstdlib>\n#include <cstring>\n#include <cmath>\n\n#include <limits>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <fstream>\n#include <map>\n\n#include \"init.h\"\n#include \"global.h\"\n#include \"utils.h\"\n#include \"memory.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"spacefactory.h\"\n#include \"logging.h\"\n#include \"report.h\"\n#include \"methodfactory.h\"\n\n#include \"meta_analysis.h\"\n#include \"params.h\"\n#include \"params_cmdline.h\"\n\nusing namespace similarity;\n\nusing std::multimap;\nusing std::vector;\nusing std::string;\nusing std::stringstream;\n\nvoid OutData(bool DoAppend, const string& FilePrefix,\n             const string& Print, const string& Header, const string& Data) {\n  \n  string FileNameRep  = FilePrefix ;//+ \".rep\";\n  /*string FileNameData = FilePrefix+ \".dat\";\n  LOG(LIB_INFO) << \"DoAppend? \" << DoAppend;\n\n  std::ofstream   OutFileData(FileNameData.c_str(),\n                              (DoAppend ? std::ios::app : (std::ios::trunc | std::ios::out)));\n\n  if (!OutFileData) {\n    LOG(LIB_FATAL) << \"Cannot create output file: '\" << FileNameData << \"'\";\n  }\n  OutFileData.exceptions(std::ios::badbit);\n  if (!DoAppend) {\n      OutFileData << Header;\n  }\n  OutFileData<< Data;\n  OutFileData.close();\n  */\n\n  std::ofstream   OutFileRep(FileNameRep.c_str(),\n                              (DoAppend ? std::ios::app : (std::ios::trunc | std::ios::out)));\n\n  if (!OutFileRep) {\n    LOG(LIB_FATAL) << \"Cannot create output file: '\" << FileNameRep << \"'\";\n  }\n  OutFileRep.exceptions(std::ios::badbit);\n\n  OutFileRep<< Print;\n  OutFileRep.close();\n  \n}\n\ntemplate <typename dist_t>\nvoid ProcessResults(const ExperimentConfig<dist_t>& config,\n                    MetaAnalysis& ExpRes,\n                    const string& MethodName,\n                    const string& IndexParamStr,\n                    const string& QueryTimeParamStr,\n                    string& PrintStr, // For display\n                    string& HeaderStr,\n                    string& DataStr   /* to be processed by a script */) {\n  std::stringstream Print, Data, Header;\n\n  ExpRes.ComputeAll();\n\n  Header << \"MethodName\\tRecall\\tRecall@1\\tPrecisionOfApprox\\tRelPosError\\tNumCloser\\tClassAccuracy\\tQueryTime\\tDistComp\\tImprEfficiency\\tImprDistComp\\tMem\\tIndexTime\\tIndexLoadTime\\tIndexSaveTime\\tQueryPerSec\\tIndexParams\\tQueryTimeParams\\tNumData\" << std::endl;\n\n  Data << \"\\\"\" << MethodName << \"\\\"\\t\";\n  Data << ExpRes.GetRecallAvg() << \"\\t\";\n  Data << ExpRes.GetRecallAt1Avg() << \"\\t\";\n  Data << ExpRes.GetPrecisionOfApproxAvg() << \"\\t\";\n  Data << ExpRes.GetRelPosErrorAvg() << \"\\t\";\n  Data << ExpRes.GetNumCloserAvg() << \"\\t\";\n  Data << ExpRes.GetClassAccuracyAvg() << \"\\t\";\n  Data << ExpRes.GetQueryTimeAvg() << \"\\t\";\n  Data << ExpRes.GetDistCompAvg() << \"\\t\";\n  Data << ExpRes.GetImprEfficiencyAvg() << \"\\t\";\n  Data << ExpRes.GetImprDistCompAvg() << \"\\t\";\n  Data << size_t(ExpRes.GetMemAvg()) << \"\\t\";\n  Data << ExpRes.GetIndexTimeAvg() << \"\\t\";\n  Data << ExpRes.GetLoadTimeAvg() << \"\\t\";\n  Data << ExpRes.GetSaveTimeAvg() << \"\\t\";\n  Data << ExpRes.GetQueryPerSecAvg() << \"\\t\";\n  Data << \"\\\"\" << IndexParamStr << \"\\\"\" << \"\\t\";\n  Data << \"\\\"\" << QueryTimeParamStr << \"\\\"\" << \"\\t\";\n  Data << config.GetDataObjects().size();\n  Data << std::endl;\n\n  PrintStr  = produceHumanReadableReport(config, ExpRes, MethodName, IndexParamStr, QueryTimeParamStr);\n\n  DataStr   = Data.str();\n  HeaderStr = Header.str();\n};\n\ntemplate <typename dist_t>\nvoid RunExper(bool                                bPrintProgress,\n             const string&                        LoadIndexLoc,\n             const string&                        SaveIndexLoc, \n             const string&                        MethodName,\n             const shared_ptr<AnyParams>&         IndexTimeParams,\n             const vector<shared_ptr<AnyParams>>& QueryTimeParams,\n             const string                         SpaceType,\n             const shared_ptr<AnyParams>&         SpaceParams,\n             unsigned                             ThreadTestQty,\n             bool                                 DoAppend, \n             const string&                        ResFilePrefix,\n             unsigned                             TestSetQty,\n             const string&                        DataFile,\n             const string&                        QueryFile,\n             const string&                        CacheGSFilePrefix,\n             float                                maxCacheGSRelativeQty,\n             IdTypeUnsign                         MaxNumData,\n             IdTypeUnsign                         MaxNumQuery,\n             const                                vector<unsigned>& knn,\n             const                                float eps,\n             const string&                        RangeArg\n)\n{\n  LOG(LIB_INFO) << \"### Append? : \"       << DoAppend;\n  LOG(LIB_INFO) << \"### OutFilePrefix : \" << ResFilePrefix;\n  vector<dist_t> range;\n\n  bool bWriteGSCache = false;\n  bool bReadGSCache = false;\n  bool bFail = false;\n  bool bCacheGS = !CacheGSFilePrefix.empty();\n\n  unique_ptr<fstream>      cacheGSControl;\n  unique_ptr<fstream>      cacheGSBinary;\n\n  if (!RangeArg.empty()) {\n    if (!SplitStr(RangeArg, range, ',')) {\n      LOG(LIB_FATAL) << \"Wrong format of the range argument: '\" << RangeArg << \"' Should be a list of coma-separated values.\";\n    }\n  }\n\n  \n  unique_ptr<Space<dist_t>> space (SpaceFactoryRegistry<dist_t>::\n                                  Instance().CreateSpace(SpaceType, *SpaceParams));\n\n  ExperimentConfig<dist_t> config(*space,\n                                  DataFile, QueryFile, TestSetQty,\n                                  MaxNumData, MaxNumQuery,\n                                  knn, eps, range);\n\n  size_t cacheDataSetQty = 0;\n\tfloat index_time =0;\n\n  const string& cacheGSIncompleteFlagName = CacheGSFilePrefix + \"_incomplete.flag\";\n\n  if (bCacheGS) {\n    const string& cacheGSControlName = CacheGSFilePrefix + \"_ctrl.txt\";\n    const string& cacheGSBinaryName  = CacheGSFilePrefix + \"_data.bin\";\n\n    if (DoesFileExist(cacheGSIncompleteFlagName) ||\n        (DoesFileExist(cacheGSControlName) != DoesFileExist(cacheGSBinaryName))\n        ) {\n      LOG(LIB_INFO) << \"Incomplete cache file detected! Removing incomplete entries...\";\n      if (DoesFileExist(cacheGSBinaryName))\n        CHECK_MSG(std::remove(cacheGSBinaryName.c_str())==0, \"Error removing the file: \" + cacheGSBinaryName);\n      if (DoesFileExist(cacheGSControlName))\n        CHECK_MSG(std::remove(cacheGSControlName.c_str())==0, \"Error removing the file: \" + cacheGSControlName);\n    }\n\n    if (DoesFileExist(cacheGSControlName)) {\n    // Cache exists => reuse it\n      if (!DoesFileExist(cacheGSBinaryName)) {\n        throw runtime_error(\"Inconsistent cache state, there is a text control file: '\" +\n                            cacheGSControlName + \"' but no binary data file: '\" +\n                            cacheGSBinaryName + \"'\");\n      }\n      cacheGSControl.reset(new fstream(cacheGSControlName.c_str(),\n                                        std::ios::in));\n      cacheGSBinary.reset(new fstream(cacheGSBinaryName.c_str(),\n                                        std::ios::in \n                                        // On Windows you don't get a proper binary stream without ios::binary!\n                                        | ios::binary));\n\n      bReadGSCache = true;\n    } else {\n      if (DoesFileExist(cacheGSBinaryName)) {\n        throw runtime_error(\"Inconsistent cache state, there is no text control file: '\" +\n                            cacheGSControlName + \"' but there is binary data file: '\" +\n                            cacheGSBinaryName + \"'\");\n      }\n    // No cache => create new file, but first mark cache as incomplete!\n      ofstream flag_file(cacheGSIncompleteFlagName.c_str());\n      CHECK_MSG(flag_file, \"Error creating file: \" + cacheGSIncompleteFlagName);\n      flag_file.close();\n\n      cacheGSControl.reset(new fstream(cacheGSControlName.c_str(),\n                                        std::ios::trunc | std::ios::out));\n      cacheGSBinary.reset(new fstream(cacheGSBinaryName.c_str(),\n                                        std::ios::trunc | std::ios::out |\n                                        // On Windows you don't get a proper binary stream without ios::binary!\n                                        ios::binary));\n\n      bWriteGSCache = true;\n    }\n\n    cacheGSControl->exceptions(std::ios::badbit);\n    cacheGSBinary->exceptions(std::ios::badbit);\n\n    /*\n     * If the cache exists, it should be read before ReadData() is called.\n     */\n    if (!bWriteGSCache) {\n      config.Read(*cacheGSControl, *cacheGSBinary, cacheDataSetQty);\n    }\n  }\n\n  config.ReadDataset();\n\n  if (bReadGSCache) {\n    // Let's check the number of data entries, must exactly coincide with\n    // what was used to create the cache!\n    if (config.GetOrigDataQty() != cacheDataSetQty) {\n      stringstream err;\n      err << \"The number of entries in the file, or the maximum number \"\n          << \"of data elements don't match the value in the cache file: \"\n          << cacheDataSetQty;\n      throw runtime_error(err.str());\n    }\n  }\n\n  /*\n   * Yet, if we need to create a new cache file, we must write the cache\n   * after reading the data set.\n   */\n  if (bWriteGSCache) {\n\n    config.Write(*cacheGSControl, *cacheGSBinary);\n  }\n\n\n  MemUsage  mem_usage_measure;\n\n\n  vector<double>                    MemUsage;\n\n  CHECK_MSG(!QueryTimeParams.empty(), \"The array of query-time parameters shouldn't be empty!\");\n\n  vector<vector<MetaAnalysis*>> ExpResRange(config.GetRange().size(),\n                                                vector<MetaAnalysis*>(QueryTimeParams.size()));\n  vector<vector<MetaAnalysis*>> ExpResKNN(config.GetKNN().size(),\n                                              vector<MetaAnalysis*>(QueryTimeParams.size()));\n\n  GoldStandardManager<dist_t> managerGS(config);\n\n\n  string MethodDescStr;\n\n  // qtmParamId is the ID of the query time parameter set\n  for (size_t qtmParamId = 0; qtmParamId < QueryTimeParams.size(); ++qtmParamId) {\n    for (size_t i = 0; i < config.GetRange().size(); ++i) {\n      ExpResRange[i][qtmParamId] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n    for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n      ExpResKNN[i][qtmParamId] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n  }\n\n  for (int TestSetId = 0; TestSetId < config.GetTestSetToRunQty(); ++TestSetId) {\n    config.SelectTestSet(TestSetId);\n\n    string indexLocAdd = \"\";\n\n    if (QueryFile.empty() && config.GetTestSetToRunQty() > 0) {\n      indexLocAdd = \"_\" + ConvertToString(TestSetId);\n    }\n\n    // SelectTestSet must go before managerGS.Compute()!!!\n\n    if (bReadGSCache) {\n      size_t cacheTestId = 0, savedThreadQty = 0;\n      managerGS.Read(*cacheGSControl, *cacheGSBinary,\n                     config.GetTotalQueryQty(),\n                     cacheTestId, savedThreadQty);\n      if (cacheTestId != TestSetId) {\n        stringstream err;\n        err << \"Perhaps, the input file is corrput (or is incompatible with \"\n            << \"program parameters), expect test set id=\" << TestSetId\n            << \"but obtained \" << cacheTestId;\n        throw runtime_error(err.str());\n      }\n      CHECK_MSG(savedThreadQty == ThreadTestQty,\n                \"Error: the gold standard was computed using \" +ConvertToString(savedThreadQty) + \" threads, but the current test will use \"  +\n                ConvertToString(ThreadTestQty) + \" threads. You have to use the same number of threads while compute gold standard data and testing!\");\n    } else {\n      managerGS.Compute(ThreadTestQty, maxCacheGSRelativeQty);\n      if (bWriteGSCache) {\n        LOG(LIB_INFO) << \"Saving the cache\";\n        managerGS.Write(*cacheGSControl, *cacheGSBinary, TestSetId, ThreadTestQty);\n\n        // Remove the incomplete-file flag, but only if this is the last test set \n        if (TestSetId + 1 == config.GetTestSetToRunQty())\n          CHECK_MSG(std::remove(cacheGSIncompleteFlagName.c_str())==0, \n                                \"Error removing the file: \" + cacheGSIncompleteFlagName);\n      }\n    }\n\n    LOG(LIB_INFO) << \">>>> Test set id: \" << TestSetId << \" (set qty: \" << config.GetTestSetToRunQty() << \")\";\n\n    //ReportIntrinsicDimensionality(\"Main data set\" , *config.GetSpace(), config.GetDataObjects());\n\n    if (MethodName.empty()) {\n      LOG(LIB_INFO) << \"No method is specified, so we will not run any tests...\";\n    } else {\n      unique_ptr<Index<dist_t>>   IndexPtr;\n\n      try {\n        LOG(LIB_INFO) << \">>>> Index type : \"           << MethodName;\n        LOG(LIB_INFO) << \">>>> Index Time Parameters: \" << IndexTimeParams->ToString();\n\n        const double vmsize_before = mem_usage_measure.get_vmsize();\n\n        WallClockTimer wtm;\n\n        wtm.reset();\n        \n          IndexPtr.reset(MethodFactoryRegistry<dist_t>::Instance().\n                       CreateMethod(bPrintProgress,\n                                    MethodName, \n                                    SpaceType, config.GetSpace(), \n                                    config.GetDataObjects()));\n\n        string adjLoadLoc = LoadIndexLoc + indexLocAdd;\n\n        bool bCreate = LoadIndexLoc.empty() || !DoesFileExist(adjLoadLoc);\n\n        if (bCreate) {\n          LOG(LIB_INFO) << \"Creating an index from scratch\";\n\n          IndexPtr->CreateIndex(*IndexTimeParams);\n        } else {\n          LOG(LIB_INFO) << \"Loading an index for test set id \" << TestSetId << \" using location: \" << adjLoadLoc;\n          IndexPtr->LoadIndex(adjLoadLoc);\n        }\n\n        if (!TestSetId) MethodDescStr = IndexPtr->StrDesc();\n\n        LOG(LIB_INFO) << \"==============================================\";\n\n        const double vmsize_after = mem_usage_measure.get_vmsize();\n\n        wtm.split();\n\n        const double IndexTime = bCreate ? double(wtm.elapsed())/1e6 : 0;\n        const double LoadTime  = !bCreate ? double(wtm.elapsed())/1e6 : 0;\n\n        const double data_size = DataSpaceUsed(config.GetDataObjects()) / 1024.0 / 1024.0;\n        const double TotalMemByMethod =  vmsize_after - vmsize_before + data_size;\n        double AdjustedMemByMethod = TotalMemByMethod;\n\n        if (IndexPtr->DuplicateData()) AdjustedMemByMethod -= data_size;\n\n        wtm.reset();\n        // We won't save the index if it is already created\n        string adjSaveLoc = SaveIndexLoc + indexLocAdd;\n        if (!SaveIndexLoc.empty() && !DoesFileExist(adjSaveLoc)) {\n          LOG(LIB_INFO) << \"Saving an index for test set id \" << TestSetId << \" using location: \" << adjSaveLoc;\n          IndexPtr->SaveIndex(adjSaveLoc);\n        }\n        wtm.split();\n        const double SaveTime  = double(wtm.elapsed())/1e6;\n    \n\n        LOG(LIB_INFO) << \">>>> Process memory usage:  \" << vmsize_after         << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Virtual memory usage:  \" << TotalMemByMethod     << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Adjusted memory usage: \" << AdjustedMemByMethod  << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Data size:             \" << data_size            << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Indexing time:         \" << IndexTime            << \" sec\";\n        LOG(LIB_INFO) << \">>>> Index loading time:    \" << LoadTime             << \" sec\";\n        LOG(LIB_INFO) << \">>>> Index saving  time:    \" << SaveTime             << \" sec\";\n\n        for (size_t qtmParamId = 0; qtmParamId < QueryTimeParams.size(); ++qtmParamId) {\n          for (size_t i = 0; i < config.GetRange().size(); ++i) {\n            MetaAnalysis* res = ExpResRange[i][qtmParamId];\n            res->SetMem(TestSetId, AdjustedMemByMethod);\n            res->SetIndexTime(TestSetId, IndexTime);\n            res->SetLoadTime(TestSetId, LoadTime);\n            res->SetSaveTime(TestSetId, SaveTime);\n          }\n          for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n            MetaAnalysis* res = ExpResKNN[i][qtmParamId];\n            res->SetMem(TestSetId, AdjustedMemByMethod);\n            res->SetIndexTime(TestSetId, IndexTime);\n            res->SetLoadTime(TestSetId, LoadTime);\n            res->SetSaveTime(TestSetId, SaveTime);\n          }\n        }\n    \t//report indextime\n\n\t\tstd::ofstream   OutFileRep(ResFilePrefix.c_str(),std::ios::app);\n  \t\tOutFileRep<< IndexTime <<\" #index_time \\n\" ;\n  \t\tOutFileRep.close();\n\t\tindex_time=IndexTime;\n\n        Experiments<dist_t>::RunAll(bPrintProgress,\n                                    ThreadTestQty, \n                                    TestSetId,\n                                    managerGS,\n                                    ExpResRange, ExpResKNN,\n                                    config, \n                                    *IndexPtr, \n                                    QueryTimeParams);\n\n\n      } catch (const std::exception& e) {\n        LOG(LIB_ERROR) << \"Exception: \" << e.what();\n        bFail = true;\n      } catch (...) {\n        LOG(LIB_ERROR) << \"Unknown exception\";\n        bFail = true;\n      }\n\n      if (bFail) {\n        LOG(LIB_FATAL) << \"Failure due to an exception!\";\n      }\n    }\n  }\n\n  // Don't save results, if the method wasn't specified\n  if (!MethodName.empty()) {\n    for (size_t MethNum = 0; MethNum < QueryTimeParams.size(); ++MethNum) {\n      // Don't overwrite file after we output data at least for one method!\n      bool DoAppendHere = DoAppend || MethNum;\n\n      string Print, Data, Header;\n\n      for (size_t i = 0; i < config.GetRange().size(); ++i) {\n        MetaAnalysis* res = ExpResRange[i][MethNum];\n\n        ProcessResults(config, *res, MethodDescStr,\n                      IndexTimeParams->ToString(), QueryTimeParams[MethNum]->ToString(), \n                      Print, Header, Data);\n        LOG(LIB_INFO) << \"Range: \" << config.GetRange()[i];\n        LOG(LIB_INFO) << Print;\n        LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n        if (!ResFilePrefix.empty()) {\n          stringstream str;\n          str << ResFilePrefix << \"_r=\" << config.GetRange()[i];\n          OutData(DoAppendHere, str.str(), Print, Header, Data);\n        }\n\n        delete res;\n      }\n\n      for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n        MetaAnalysis* res = ExpResKNN[i][MethNum];\n\n        ProcessResults(config, *res, MethodDescStr,\n                      IndexTimeParams->ToString(), QueryTimeParams[MethNum]->ToString(), \n                      Print, Header, Data);\n        LOG(LIB_INFO) << \"KNN: \" << config.GetKNN()[i];\n        LOG(LIB_INFO) << Print;\n        LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n        if (!ResFilePrefix.empty()) {\n          stringstream str;\n          str << ResFilePrefix ;//<< \"_K=\" << config.GetKNN()[i];\n          OutData(DoAppendHere, str.str(), Print, Header, Data);\n        }\n\n\t\t//std::ofstream  OutFileRep(ResFilePrefix.c_str(),std::ios::app);\n  \t\t//OutFileRep<<IndexTimeParams->ToString()<<\" \"<< index_time <<\" #index_time \\n\" ;\n  \t\t//OutFileRep.close();\n\t\t//cerr << index_time <<\" #index_time \\n\" ;\n        delete res;\n      }\n    }\n  }\n}\n\nint main(int ac, char* av[]) {\n  // This should be the first function called before\n\n  WallClockTimer timer;\n  timer.reset();\n\n\n  bool                  bPrintProgress;\n  string                LogFile;\n  string                DistType;\n  string                LoadIndexLoc;\n  string                SaveIndexLoc;\n  string                SpaceType;\n  shared_ptr<AnyParams> SpaceParams;\n  bool                  DoAppend;\n  string                ResFilePrefix;\n  unsigned              TestSetQty;\n  string                DataFile;\n  string                QueryFile;\n  string                CacheGSFilePrefix;\n  float                 maxCacheGSRelativeQty;\n  IdTypeUnsign          MaxNumData;\n  IdTypeUnsign          MaxNumQuery;\n  vector<unsigned>      knn;\n  string                RangeArg;\n  float                 eps = 0.0;\n  unsigned              ThreadTestQty;\n\n  shared_ptr<AnyParams>           IndexTimeParams;\n  vector<shared_ptr<AnyParams>>   QueryTimeParams;\n\n  try {\n    string                                  MethodName;\n\n    ParseCommandLine(ac, av, bPrintProgress,\n                         LogFile,\n                         LoadIndexLoc,\n                         SaveIndexLoc, \n                         DistType,\n                         SpaceType,\n                         SpaceParams,\n                         ThreadTestQty,\n                         DoAppend, \n                         ResFilePrefix,\n                         TestSetQty,\n                         DataFile,\n                         QueryFile,\n                         CacheGSFilePrefix,\n                         maxCacheGSRelativeQty,\n                         MaxNumData,\n                         MaxNumQuery,\n                         knn,\n                         eps,\n                         RangeArg,\n                         MethodName,\n                         IndexTimeParams,\n                         QueryTimeParams);\n\n    if ((!LoadIndexLoc.empty() || !SaveIndexLoc.empty()) &&\n         CacheGSFilePrefix.empty() &&\n         MaxNumQuery != 0 &&\n         QueryFile.empty()) {\n      throw\n          runtime_error(string(\"If there is i) no query file ii) # of queries > 0 iii) you ask to save/load the index,\")+\n                        \"then you have to specify the gold-standard cache file!\");\n    }\n\n    initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n    LOG(LIB_INFO) << \"Program arguments are processed\";\n\n    ToLower(DistType);\n\n    if (DIST_TYPE_INT == DistType) {\n      RunExper<int>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                    maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else if (DIST_TYPE_FLOAT == DistType) {\n      RunExper<float>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                      maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else if (DIST_TYPE_DOUBLE == DistType) {\n      RunExper<double>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                       maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else {\n      LOG(LIB_FATAL) << \"Unknown distance value type: \" << DistType;\n    }\n\n    timer.split();\n    LOG(LIB_INFO) << \"Time elapsed = \" << timer.elapsed() / 1e6;\n    LOG(LIB_INFO) << \"Finished at \" << LibGetCurrentTime();\n  } catch (const std::exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  } catch (...) {\n    LOG(LIB_FATAL) << \"Unknown exception\";\n  }\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/main.cc~",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cstdio>\n#include <cstdlib>\n#include <cstring>\n#include <cmath>\n\n#include <limits>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <fstream>\n#include <map>\n\n#include \"init.h\"\n#include \"global.h\"\n#include \"utils.h\"\n#include \"memory.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"spacefactory.h\"\n#include \"logging.h\"\n#include \"report.h\"\n#include \"methodfactory.h\"\n\n#include \"meta_analysis.h\"\n#include \"params.h\"\n#include \"params_cmdline.h\"\n\nusing namespace similarity;\n\nusing std::multimap;\nusing std::vector;\nusing std::string;\nusing std::stringstream;\n\nvoid OutData(bool DoAppend, const string& FilePrefix,\n             const string& Print, const string& Header, const string& Data) {\n  \n  string FileNameRep  = FilePrefix ;//+ \".rep\";\n  /*string FileNameData = FilePrefix+ \".dat\";\n  LOG(LIB_INFO) << \"DoAppend? \" << DoAppend;\n\n  std::ofstream   OutFileData(FileNameData.c_str(),\n                              (DoAppend ? std::ios::app : (std::ios::trunc | std::ios::out)));\n\n  if (!OutFileData) {\n    LOG(LIB_FATAL) << \"Cannot create output file: '\" << FileNameData << \"'\";\n  }\n  OutFileData.exceptions(std::ios::badbit);\n  if (!DoAppend) {\n      OutFileData << Header;\n  }\n  OutFileData<< Data;\n  OutFileData.close();\n  */\n\n  std::ofstream   OutFileRep(FileNameRep.c_str(),\n                              (DoAppend ? std::ios::app : (std::ios::trunc | std::ios::out)));\n\n  if (!OutFileRep) {\n    LOG(LIB_FATAL) << \"Cannot create output file: '\" << FileNameRep << \"'\";\n  }\n  OutFileRep.exceptions(std::ios::badbit);\n\n  OutFileRep<< Print;\n  OutFileRep.close();\n  \n}\n\ntemplate <typename dist_t>\nvoid ProcessResults(const ExperimentConfig<dist_t>& config,\n                    MetaAnalysis& ExpRes,\n                    const string& MethodName,\n                    const string& IndexParamStr,\n                    const string& QueryTimeParamStr,\n                    string& PrintStr, // For display\n                    string& HeaderStr,\n                    string& DataStr   /* to be processed by a script */) {\n  std::stringstream Print, Data, Header;\n\n  ExpRes.ComputeAll();\n\n  Header << \"MethodName\\tRecall\\tRecall@1\\tPrecisionOfApprox\\tRelPosError\\tNumCloser\\tClassAccuracy\\tQueryTime\\tDistComp\\tImprEfficiency\\tImprDistComp\\tMem\\tIndexTime\\tIndexLoadTime\\tIndexSaveTime\\tQueryPerSec\\tIndexParams\\tQueryTimeParams\\tNumData\" << std::endl;\n\n  Data << \"\\\"\" << MethodName << \"\\\"\\t\";\n  Data << ExpRes.GetRecallAvg() << \"\\t\";\n  Data << ExpRes.GetRecallAt1Avg() << \"\\t\";\n  Data << ExpRes.GetPrecisionOfApproxAvg() << \"\\t\";\n  Data << ExpRes.GetRelPosErrorAvg() << \"\\t\";\n  Data << ExpRes.GetNumCloserAvg() << \"\\t\";\n  Data << ExpRes.GetClassAccuracyAvg() << \"\\t\";\n  Data << ExpRes.GetQueryTimeAvg() << \"\\t\";\n  Data << ExpRes.GetDistCompAvg() << \"\\t\";\n  Data << ExpRes.GetImprEfficiencyAvg() << \"\\t\";\n  Data << ExpRes.GetImprDistCompAvg() << \"\\t\";\n  Data << size_t(ExpRes.GetMemAvg()) << \"\\t\";\n  Data << ExpRes.GetIndexTimeAvg() << \"\\t\";\n  Data << ExpRes.GetLoadTimeAvg() << \"\\t\";\n  Data << ExpRes.GetSaveTimeAvg() << \"\\t\";\n  Data << ExpRes.GetQueryPerSecAvg() << \"\\t\";\n  Data << \"\\\"\" << IndexParamStr << \"\\\"\" << \"\\t\";\n  Data << \"\\\"\" << QueryTimeParamStr << \"\\\"\" << \"\\t\";\n  Data << config.GetDataObjects().size();\n  Data << std::endl;\n\n  PrintStr  = produceHumanReadableReport(config, ExpRes, MethodName, IndexParamStr, QueryTimeParamStr);\n\n  DataStr   = Data.str();\n  HeaderStr = Header.str();\n};\n\ntemplate <typename dist_t>\nvoid RunExper(bool                                bPrintProgress,\n             const string&                        LoadIndexLoc,\n             const string&                        SaveIndexLoc, \n             const string&                        MethodName,\n             const shared_ptr<AnyParams>&         IndexTimeParams,\n             const vector<shared_ptr<AnyParams>>& QueryTimeParams,\n             const string                         SpaceType,\n             const shared_ptr<AnyParams>&         SpaceParams,\n             unsigned                             ThreadTestQty,\n             bool                                 DoAppend, \n             const string&                        ResFilePrefix,\n             unsigned                             TestSetQty,\n             const string&                        DataFile,\n             const string&                        QueryFile,\n             const string&                        CacheGSFilePrefix,\n             float                                maxCacheGSRelativeQty,\n             IdTypeUnsign                         MaxNumData,\n             IdTypeUnsign                         MaxNumQuery,\n             const                                vector<unsigned>& knn,\n             const                                float eps,\n             const string&                        RangeArg\n)\n{\n  LOG(LIB_INFO) << \"### Append? : \"       << DoAppend;\n  LOG(LIB_INFO) << \"### OutFilePrefix : \" << ResFilePrefix;\n  vector<dist_t> range;\n\n  bool bWriteGSCache = false;\n  bool bReadGSCache = false;\n  bool bFail = false;\n  bool bCacheGS = !CacheGSFilePrefix.empty();\n\n  unique_ptr<fstream>      cacheGSControl;\n  unique_ptr<fstream>      cacheGSBinary;\n\n  if (!RangeArg.empty()) {\n    if (!SplitStr(RangeArg, range, ',')) {\n      LOG(LIB_FATAL) << \"Wrong format of the range argument: '\" << RangeArg << \"' Should be a list of coma-separated values.\";\n    }\n  }\n\n  \n  unique_ptr<Space<dist_t>> space (SpaceFactoryRegistry<dist_t>::\n                                  Instance().CreateSpace(SpaceType, *SpaceParams));\n\n  ExperimentConfig<dist_t> config(*space,\n                                  DataFile, QueryFile, TestSetQty,\n                                  MaxNumData, MaxNumQuery,\n                                  knn, eps, range);\n\n  size_t cacheDataSetQty = 0;\n\tfloat index_time =0;\n\n  const string& cacheGSIncompleteFlagName = CacheGSFilePrefix + \"_incomplete.flag\";\n\n  if (bCacheGS) {\n    const string& cacheGSControlName = CacheGSFilePrefix + \"_ctrl.txt\";\n    const string& cacheGSBinaryName  = CacheGSFilePrefix + \"_data.bin\";\n\n    if (DoesFileExist(cacheGSIncompleteFlagName) ||\n        (DoesFileExist(cacheGSControlName) != DoesFileExist(cacheGSBinaryName))\n        ) {\n      LOG(LIB_INFO) << \"Incomplete cache file detected! Removing incomplete entries...\";\n      if (DoesFileExist(cacheGSBinaryName))\n        CHECK_MSG(std::remove(cacheGSBinaryName.c_str())==0, \"Error removing the file: \" + cacheGSBinaryName);\n      if (DoesFileExist(cacheGSControlName))\n        CHECK_MSG(std::remove(cacheGSControlName.c_str())==0, \"Error removing the file: \" + cacheGSControlName);\n    }\n\n    if (DoesFileExist(cacheGSControlName)) {\n    // Cache exists => reuse it\n      if (!DoesFileExist(cacheGSBinaryName)) {\n        throw runtime_error(\"Inconsistent cache state, there is a text control file: '\" +\n                            cacheGSControlName + \"' but no binary data file: '\" +\n                            cacheGSBinaryName + \"'\");\n      }\n      cacheGSControl.reset(new fstream(cacheGSControlName.c_str(),\n                                        std::ios::in));\n      cacheGSBinary.reset(new fstream(cacheGSBinaryName.c_str(),\n                                        std::ios::in \n                                        // On Windows you don't get a proper binary stream without ios::binary!\n                                        | ios::binary));\n\n      bReadGSCache = true;\n    } else {\n      if (DoesFileExist(cacheGSBinaryName)) {\n        throw runtime_error(\"Inconsistent cache state, there is no text control file: '\" +\n                            cacheGSControlName + \"' but there is binary data file: '\" +\n                            cacheGSBinaryName + \"'\");\n      }\n    // No cache => create new file, but first mark cache as incomplete!\n      ofstream flag_file(cacheGSIncompleteFlagName.c_str());\n      CHECK_MSG(flag_file, \"Error creating file: \" + cacheGSIncompleteFlagName);\n      flag_file.close();\n\n      cacheGSControl.reset(new fstream(cacheGSControlName.c_str(),\n                                        std::ios::trunc | std::ios::out));\n      cacheGSBinary.reset(new fstream(cacheGSBinaryName.c_str(),\n                                        std::ios::trunc | std::ios::out |\n                                        // On Windows you don't get a proper binary stream without ios::binary!\n                                        ios::binary));\n\n      bWriteGSCache = true;\n    }\n\n    cacheGSControl->exceptions(std::ios::badbit);\n    cacheGSBinary->exceptions(std::ios::badbit);\n\n    /*\n     * If the cache exists, it should be read before ReadData() is called.\n     */\n    if (!bWriteGSCache) {\n      config.Read(*cacheGSControl, *cacheGSBinary, cacheDataSetQty);\n    }\n  }\n\n  config.ReadDataset();\n\n  if (bReadGSCache) {\n    // Let's check the number of data entries, must exactly coincide with\n    // what was used to create the cache!\n    if (config.GetOrigDataQty() != cacheDataSetQty) {\n      stringstream err;\n      err << \"The number of entries in the file, or the maximum number \"\n          << \"of data elements don't match the value in the cache file: \"\n          << cacheDataSetQty;\n      throw runtime_error(err.str());\n    }\n  }\n\n  /*\n   * Yet, if we need to create a new cache file, we must write the cache\n   * after reading the data set.\n   */\n  if (bWriteGSCache) {\n\n    config.Write(*cacheGSControl, *cacheGSBinary);\n  }\n\n\n  MemUsage  mem_usage_measure;\n\n\n  vector<double>                    MemUsage;\n\n  CHECK_MSG(!QueryTimeParams.empty(), \"The array of query-time parameters shouldn't be empty!\");\n\n  vector<vector<MetaAnalysis*>> ExpResRange(config.GetRange().size(),\n                                                vector<MetaAnalysis*>(QueryTimeParams.size()));\n  vector<vector<MetaAnalysis*>> ExpResKNN(config.GetKNN().size(),\n                                              vector<MetaAnalysis*>(QueryTimeParams.size()));\n\n  GoldStandardManager<dist_t> managerGS(config);\n\n\n  string MethodDescStr;\n\n  // qtmParamId is the ID of the query time parameter set\n  for (size_t qtmParamId = 0; qtmParamId < QueryTimeParams.size(); ++qtmParamId) {\n    for (size_t i = 0; i < config.GetRange().size(); ++i) {\n      ExpResRange[i][qtmParamId] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n    for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n      ExpResKNN[i][qtmParamId] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n  }\n\n  for (int TestSetId = 0; TestSetId < config.GetTestSetToRunQty(); ++TestSetId) {\n    config.SelectTestSet(TestSetId);\n\n    string indexLocAdd = \"\";\n\n    if (QueryFile.empty() && config.GetTestSetToRunQty() > 0) {\n      indexLocAdd = \"_\" + ConvertToString(TestSetId);\n    }\n\n    // SelectTestSet must go before managerGS.Compute()!!!\n\n    if (bReadGSCache) {\n      size_t cacheTestId = 0, savedThreadQty = 0;\n      managerGS.Read(*cacheGSControl, *cacheGSBinary,\n                     config.GetTotalQueryQty(),\n                     cacheTestId, savedThreadQty);\n      if (cacheTestId != TestSetId) {\n        stringstream err;\n        err << \"Perhaps, the input file is corrput (or is incompatible with \"\n            << \"program parameters), expect test set id=\" << TestSetId\n            << \"but obtained \" << cacheTestId;\n        throw runtime_error(err.str());\n      }\n      CHECK_MSG(savedThreadQty == ThreadTestQty,\n                \"Error: the gold standard was computed using \" +ConvertToString(savedThreadQty) + \" threads, but the current test will use \"  +\n                ConvertToString(ThreadTestQty) + \" threads. You have to use the same number of threads while compute gold standard data and testing!\");\n    } else {\n      managerGS.Compute(ThreadTestQty, maxCacheGSRelativeQty);\n      if (bWriteGSCache) {\n        LOG(LIB_INFO) << \"Saving the cache\";\n        managerGS.Write(*cacheGSControl, *cacheGSBinary, TestSetId, ThreadTestQty);\n\n        // Remove the incomplete-file flag, but only if this is the last test set \n        if (TestSetId + 1 == config.GetTestSetToRunQty())\n          CHECK_MSG(std::remove(cacheGSIncompleteFlagName.c_str())==0, \n                                \"Error removing the file: \" + cacheGSIncompleteFlagName);\n      }\n    }\n\n    LOG(LIB_INFO) << \">>>> Test set id: \" << TestSetId << \" (set qty: \" << config.GetTestSetToRunQty() << \")\";\n\n    //ReportIntrinsicDimensionality(\"Main data set\" , *config.GetSpace(), config.GetDataObjects());\n\n    if (MethodName.empty()) {\n      LOG(LIB_INFO) << \"No method is specified, so we will not run any tests...\";\n    } else {\n      unique_ptr<Index<dist_t>>   IndexPtr;\n\n      try {\n        LOG(LIB_INFO) << \">>>> Index type : \"           << MethodName;\n        LOG(LIB_INFO) << \">>>> Index Time Parameters: \" << IndexTimeParams->ToString();\n\n        const double vmsize_before = mem_usage_measure.get_vmsize();\n\n        WallClockTimer wtm;\n\n        wtm.reset();\n        \n          IndexPtr.reset(MethodFactoryRegistry<dist_t>::Instance().\n                       CreateMethod(bPrintProgress,\n                                    MethodName, \n                                    SpaceType, config.GetSpace(), \n                                    config.GetDataObjects()));\n\n        string adjLoadLoc = LoadIndexLoc + indexLocAdd;\n\n        bool bCreate = LoadIndexLoc.empty() || !DoesFileExist(adjLoadLoc);\n\n        if (bCreate) {\n          LOG(LIB_INFO) << \"Creating an index from scratch\";\n\n          IndexPtr->CreateIndex(*IndexTimeParams);\n        } else {\n          LOG(LIB_INFO) << \"Loading an index for test set id \" << TestSetId << \" using location: \" << adjLoadLoc;\n          IndexPtr->LoadIndex(adjLoadLoc);\n        }\n\n        if (!TestSetId) MethodDescStr = IndexPtr->StrDesc();\n\n        LOG(LIB_INFO) << \"==============================================\";\n\n        const double vmsize_after = mem_usage_measure.get_vmsize();\n\n        wtm.split();\n\n        const double IndexTime = bCreate ? double(wtm.elapsed())/1e6 : 0;\n        const double LoadTime  = !bCreate ? double(wtm.elapsed())/1e6 : 0;\n\n        const double data_size = DataSpaceUsed(config.GetDataObjects()) / 1024.0 / 1024.0;\n        const double TotalMemByMethod =  vmsize_after - vmsize_before + data_size;\n        double AdjustedMemByMethod = TotalMemByMethod;\n\n        if (IndexPtr->DuplicateData()) AdjustedMemByMethod -= data_size;\n\n        wtm.reset();\n        // We won't save the index if it is already created\n        string adjSaveLoc = SaveIndexLoc + indexLocAdd;\n        if (!SaveIndexLoc.empty() && !DoesFileExist(adjSaveLoc)) {\n          LOG(LIB_INFO) << \"Saving an index for test set id \" << TestSetId << \" using location: \" << adjSaveLoc;\n          IndexPtr->SaveIndex(adjSaveLoc);\n        }\n        wtm.split();\n        const double SaveTime  = double(wtm.elapsed())/1e6;\n    \n\n        LOG(LIB_INFO) << \">>>> Process memory usage:  \" << vmsize_after         << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Virtual memory usage:  \" << TotalMemByMethod     << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Adjusted memory usage: \" << AdjustedMemByMethod  << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Data size:             \" << data_size            << \" MBs\";\n        LOG(LIB_INFO) << \">>>> Indexing time:         \" << IndexTime            << \" sec\";\n        LOG(LIB_INFO) << \">>>> Index loading time:    \" << LoadTime             << \" sec\";\n        LOG(LIB_INFO) << \">>>> Index saving  time:    \" << SaveTime             << \" sec\";\n\n        for (size_t qtmParamId = 0; qtmParamId < QueryTimeParams.size(); ++qtmParamId) {\n          for (size_t i = 0; i < config.GetRange().size(); ++i) {\n            MetaAnalysis* res = ExpResRange[i][qtmParamId];\n            res->SetMem(TestSetId, AdjustedMemByMethod);\n            res->SetIndexTime(TestSetId, IndexTime);\n            res->SetLoadTime(TestSetId, LoadTime);\n            res->SetSaveTime(TestSetId, SaveTime);\n          }\n          for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n            MetaAnalysis* res = ExpResKNN[i][qtmParamId];\n            res->SetMem(TestSetId, AdjustedMemByMethod);\n            res->SetIndexTime(TestSetId, IndexTime);\n            res->SetLoadTime(TestSetId, LoadTime);\n            res->SetSaveTime(TestSetId, SaveTime);\n          }\n        }\n    \t//report indextime\n\n\t\tstd::ofstream   OutFileRep(ResFilePrefix.c_str(),std::ios::app);\n  \t\tOutFileRep<< IndexTime <<\" #index_time \\n\" ;\n  \t\tOutFileRep.close();\n\t\tindex_time=IndexTime;\n\n        Experiments<dist_t>::RunAll(bPrintProgress,\n                                    ThreadTestQty, \n                                    TestSetId,\n                                    managerGS,\n                                    ExpResRange, ExpResKNN,\n                                    config, \n                                    *IndexPtr, \n                                    QueryTimeParams);\n\n\n      } catch (const std::exception& e) {\n        LOG(LIB_ERROR) << \"Exception: \" << e.what();\n        bFail = true;\n      } catch (...) {\n        LOG(LIB_ERROR) << \"Unknown exception\";\n        bFail = true;\n      }\n\n      if (bFail) {\n        LOG(LIB_FATAL) << \"Failure due to an exception!\";\n      }\n    }\n  }\n\n  // Don't save results, if the method wasn't specified\n  if (!MethodName.empty()) {\n    for (size_t MethNum = 0; MethNum < QueryTimeParams.size(); ++MethNum) {\n      // Don't overwrite file after we output data at least for one method!\n      bool DoAppendHere = DoAppend || MethNum;\n\n      string Print, Data, Header;\n\n      for (size_t i = 0; i < config.GetRange().size(); ++i) {\n        MetaAnalysis* res = ExpResRange[i][MethNum];\n\n        ProcessResults(config, *res, MethodDescStr,\n                      IndexTimeParams->ToString(), QueryTimeParams[MethNum]->ToString(), \n                      Print, Header, Data);\n        LOG(LIB_INFO) << \"Range: \" << config.GetRange()[i];\n        LOG(LIB_INFO) << Print;\n        LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n        if (!ResFilePrefix.empty()) {\n          stringstream str;\n          str << ResFilePrefix << \"_r=\" << config.GetRange()[i];\n          OutData(DoAppendHere, str.str(), Print, Header, Data);\n        }\n\n        delete res;\n      }\n\n      for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n        MetaAnalysis* res = ExpResKNN[i][MethNum];\n\n        ProcessResults(config, *res, MethodDescStr,\n                      IndexTimeParams->ToString(), QueryTimeParams[MethNum]->ToString(), \n                      Print, Header, Data);\n        LOG(LIB_INFO) << \"KNN: \" << config.GetKNN()[i];\n        LOG(LIB_INFO) << Print;\n        LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n        if (!ResFilePrefix.empty()) {\n          stringstream str;\n          str << ResFilePrefix ;//<< \"_K=\" << config.GetKNN()[i];\n          OutData(DoAppendHere, str.str(), Print, Header, Data);\n        }\n\n\t\t//std::ofstream  OutFileRep(ResFilePrefix.c_str(),std::ios::app);\n  \t\t//OutFileRep<<IndexTimeParams->ToString()<<\" \"<< index_time <<\" #index_time \\n\" ;\n  \t\t//OutFileRep.close();\n\t\t//cerr << index_time <<\" #index_time \\n\" ;\n        delete res;\n      }\n    }\n  }\n}\n\nint main(int ac, char* av[]) {\n  // This should be the first function called before\n\n  WallClockTimer timer;\n  timer.reset();\n\n\n  bool                  bPrintProgress;\n  string                LogFile;\n  string                DistType;\n  string                LoadIndexLoc;\n  string                SaveIndexLoc;\n  string                SpaceType;\n  shared_ptr<AnyParams> SpaceParams;\n  bool                  DoAppend;\n  string                ResFilePrefix;\n  unsigned              TestSetQty;\n  string                DataFile;\n  string                QueryFile;\n  string                CacheGSFilePrefix;\n  float                 maxCacheGSRelativeQty;\n  IdTypeUnsign          MaxNumData;\n  IdTypeUnsign          MaxNumQuery;\n  vector<unsigned>      knn;\n  string                RangeArg;\n  float                 eps = 0.0;\n  unsigned              ThreadTestQty;\n\n  shared_ptr<AnyParams>           IndexTimeParams;\n  vector<shared_ptr<AnyParams>>   QueryTimeParams;\n\n  try {\n    string                                  MethodName;\n\n    ParseCommandLine(ac, av, bPrintProgress,\n                         LogFile,\n                         LoadIndexLoc,\n                         SaveIndexLoc, \n                         DistType,\n                         SpaceType,\n                         SpaceParams,\n                         ThreadTestQty,\n                         DoAppend, \n                         ResFilePrefix,\n                         TestSetQty,\n                         DataFile,\n                         QueryFile,\n                         CacheGSFilePrefix,\n                         maxCacheGSRelativeQty,\n                         MaxNumData,\n                         MaxNumQuery,\n                         knn,\n                         eps,\n                         RangeArg,\n                         MethodName,\n                         IndexTimeParams,\n                         QueryTimeParams);\n\n    if ((!LoadIndexLoc.empty() || !SaveIndexLoc.empty()) &&\n         CacheGSFilePrefix.empty() &&\n         MaxNumQuery != 0 &&\n         QueryFile.empty()) {\n      throw\n          runtime_error(string(\"If there is i) no query file ii) # of queries > 0 iii) you ask to save/load the index,\")+\n                        \"then you have to specify the gold-standard cache file!\");\n    }\n\n    initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n    LOG(LIB_INFO) << \"Program arguments are processed\";\n\n    ToLower(DistType);\n\n    if (DIST_TYPE_INT == DistType) {\n      RunExper<int>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                    maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else if (DIST_TYPE_FLOAT == DistType) {\n      RunExper<float>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                      maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else if (DIST_TYPE_DOUBLE == DistType) {\n      RunExper<double>(bPrintProgress,\n                    LoadIndexLoc,\n                    SaveIndexLoc,\n                    MethodName,\n                    IndexTimeParams,\n                    QueryTimeParams,\n                    SpaceType,\n                    SpaceParams,\n                    ThreadTestQty,\n                    DoAppend, \n                    ResFilePrefix,\n                    TestSetQty,\n                    DataFile,\n                    QueryFile,\n                    CacheGSFilePrefix,\n                       maxCacheGSRelativeQty,\n                    MaxNumData,\n                    MaxNumQuery,\n                    knn,\n                    eps,\n                    RangeArg\n                   );\n    } else {\n      LOG(LIB_FATAL) << \"Unknown distance value type: \" << DistType;\n    }\n\n    timer.split();\n    LOG(LIB_INFO) << \"Time elapsed = \" << timer.elapsed() / 1e6;\n    LOG(LIB_INFO) << \"Finished at \" << LibGetCurrentTime();\n  } catch (const std::exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  } catch (...) {\n    LOG(LIB_FATAL) << \"Unknown exception\";\n  }\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/memory.cc",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib \n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n#include \"memory.h\"\n#include \"logging.h\"\n\n\n#ifdef __linux\n\n#include <sys/types.h>\n#include <unistd.h>\n#include <string.h>\n#include <stdio.h>   \n\n#endif\n\n#ifdef _MSC_VER\n\n#include <windows.h>\n#include <Psapi.h>\n\n#endif\n\nnamespace similarity {\n\nMemUsage::MemUsage() {\n#ifdef __linux\n            int pid = getpid();\n            snprintf(status_file_, sizeof(status_file_),\n                \"/proc/%d/status\", pid);\n#endif\n}\n\ndouble \nMemUsage::get_vmsize() {\n#ifdef __linux\n    FILE* f = fopen(status_file_, \"rt\");\n    if (!f) {\n        return -1.0;\n    }\n    char buf[100];\n    int vmsize = -1024;\n    while (fgets(buf, sizeof(buf), f)) {\n        if (strncmp(buf, \"VmSize:\", 7) == 0) {\n            sscanf(buf + 7, \"%d\", &vmsize);\n            break;\n        }\n    }\n    fclose(f);\n    return vmsize / 1024.0;\n#endif\n#ifdef _MSC_VER\n    PROCESS_MEMORY_COUNTERS memCounter;\n    bool result = GetProcessMemoryInfo(GetCurrentProcess(),\n        &memCounter,\n        sizeof(memCounter));\n\n    /*\n     * This seems to be a decent estimates of currently used \n     * RESIDENT memory size\n     * see, e.g., http://social.msdn.microsoft.com/Forums/vstudio/en-US/bda6a289-42e7-41f7-a42b-6a89b623c89c/process-ram-usage-in-visual-c?forum=vcgeneral\n     */\n    return memCounter.WorkingSetSize / 1024.0 / 1024.0;\n#endif\n    return -1.0;\n}\n\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/bbtree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is based on the BBTREE implementation written by Lawrence Cayton\n *\n * The algorithms were originally published in the papers:\n * 1) L. Cayton. Fast nearest neighbor retrieval for bregman divergences. \n *    Twenty-Fifth International Conference on Machine Learning (ICML), 2008. \n *\n * 2) L. Cayton. Efficient bregman range search.  \n * Advances in Neural Information Processing Systems 22 (NIPS), 2009. \n *\n * See https://github.com/lcayton/bbtree and http://lcayton.com/code.html\n *\n * Even though the original code was originally released \n * under the terms of the GNU General Public License,\n *\n * Lawrence Cayton (the author) allowed us to release this code under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <memory>\n\n#include \"space/space_bregman.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"method/bbtree.h\"\n\nnamespace similarity {\n\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nBBTree<dist_t>::BBTree(\n    const Space<dist_t>& space, \n    const ObjectVector& data)  : data_(data) {\n  BregmanDivSpace_ = BregmanDiv<dist_t>::ConvertFrom(&space); // Should be the special space!\n}\n\n\ntemplate <typename dist_t>\nvoid BBTree<dist_t>::CreateIndex(const AnyParams& MethParams) {\n  AnyParamManager pmgr(MethParams);\n\n  pmgr.GetParamOptional(\"bucketSize\", BucketSize_, 50);\n  pmgr.GetParamOptional(\"chunkBucket\", ChunkBucket_, true);\n\n  LOG(LIB_INFO) << \"bucketSize  = \" << BucketSize_;\n  LOG(LIB_INFO) << \"ChunkBucket = \" << ChunkBucket_;\n\n\n  pmgr.CheckUnused();\n\n  root_node_.reset(new BBNode(BregmanDivSpace_, data_, BucketSize_, ChunkBucket_));\n}\n\ntemplate <typename dist_t>\nBBTree<dist_t>::~BBTree() {\n}\n\ntemplate <typename dist_t>\nconst std::string BBTree<dist_t>::StrDesc() const {\n  return \"bbtree\";\n}\n\n\ntemplate <typename dist_t>\nvoid BBTree<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  unique_ptr<Object> query_gradient(BregmanDivSpace_->GradientFunction(query->QueryObject()));\n\n  /*\n   * This is a basic version of the range search that is almost identical to NN search.\n   * It is possible to do better though. See for details:\n   * L. Cayton. Efficient bregman range search. \n   * Advances in Neural Information Processing Systems 22 (NIPS), 2009. \n   */\n\n  int mx = MaxLeavesToVisit_;\n  root_node_->LeftSearch(BregmanDivSpace_, query_gradient.get(), query, mx);\n}\n\ntemplate <typename dist_t>\nvoid BBTree<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  unique_ptr<Object> query_gradient(BregmanDivSpace_->GradientFunction(query->QueryObject()));\n\n  int mx = MaxLeavesToVisit_;\n  root_node_->LeftSearch(BregmanDivSpace_, query_gradient.get(), query, mx);\n}\n\ntemplate <typename dist_t>\nBBTree<dist_t>::BBNode::BBNode(\n    const BregmanDiv<dist_t>* div, const ObjectVector& data, size_t bucket_size, bool use_optim)\n    : center_(div->Mean(data)),\n      center_gradf_(div->GradientFunction(center_)),\n      covering_radius_(0.0),\n      is_leaf_(false),\n      bucket_(NULL),\n      CacheOptimizedBucket_(NULL),\n      left_child_(NULL),\n      right_child_(NULL) {\n  dist_t dist;\n  for (size_t i = 0; i < data.size(); ++i) {\n    dist = div->IndexTimeDistance(data[i], center_);\n    if (dist > covering_radius_) {\n      covering_radius_ = dist;\n    }\n  }\n\n  if (data.size() <= bucket_size) {\n    is_leaf_ = true;\n    if (use_optim) {\n      CreateCacheOptimizedBucket(data, CacheOptimizedBucket_, bucket_);\n    } else {\n      bucket_ = new ObjectVector(data);\n    }\n  } else {\n    ObjectVector bucket_left;\n    ObjectVector bucket_right;\n    int retry = 0;\n    while (retry < kMaxRetry && (bucket_left.empty() || bucket_right.empty())) {\n      FindSplitKMeans(div, data, bucket_left, bucket_right);\n      retry++;\n    }\n    if (retry < kMaxRetry) {\n      if (!bucket_left.empty()) {\n        left_child_ = new BBNode(div, bucket_left, bucket_size, use_optim);\n      }\n      if (!bucket_right.empty()) {\n        right_child_ = new BBNode(div, bucket_right, bucket_size, use_optim);\n      }\n    } else {\n      is_leaf_ = true;\n      if (use_optim) {\n        CreateCacheOptimizedBucket(data, CacheOptimizedBucket_, bucket_);\n      } else {\n        bucket_ = new ObjectVector(data);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nBBTree<dist_t>::BBNode::~BBNode() {\n  delete left_child_;\n  delete right_child_;\n  delete center_;\n  delete center_gradf_;\n  ClearBucket(CacheOptimizedBucket_, bucket_);\n}\n\ntemplate <typename dist_t>\nbool BBTree<dist_t>::BBNode::IsLeaf() const {\n  return is_leaf_;\n}\n\ntemplate <typename dist_t>\nvoid BBTree<dist_t>::BBNode::SelectCenters(\n    const ObjectVector& data, ObjectVector& centers) {\n  std::vector<int> center_idx(centers.size());\n  for (size_t j, i = 0; i < centers.size(); ) {\n    while (true) {\n      int r = RandomInt() % data.size();\n      for (j = 0; j < i; ++j) {\n        if (center_idx[j] == r) break;\n      }\n      if (j == i) {\n        center_idx[i++] = r;\n        break;\n      }\n    }\n  }\n\n  for (size_t i = 0; i < centers.size(); ++i) {\n    centers[i] = data[center_idx[i]]->Clone();\n  }\n}\n\ntemplate <typename dist_t>\nvoid BBTree<dist_t>::BBNode::FindSplitKMeans(\n    const BregmanDiv<dist_t>* div, const ObjectVector& data,\n    ObjectVector& bucket_left, ObjectVector& bucket_right) {\n  ObjectVector centers(2);\n  SelectCenters(data, centers);\n\n  for (int retry = 0; retry < kMaxRetry; ++retry) {\n    bucket_left.clear();\n    bucket_right.clear();\n\n    for (size_t i = 0; i < data.size(); ++i) {\n      const dist_t div_left = div->IndexTimeDistance(data[i], centers[0]);\n      const dist_t div_right = div->IndexTimeDistance(data[i], centers[1]);\n      if (div_left < div_right) {\n        bucket_left.push_back(data[i]);\n      } else {\n        bucket_right.push_back(data[i]);\n      }\n    }\n\n    for (size_t i = 0; i < centers.size(); ++i) {\n      delete centers[i];\n    }\n\n    if (bucket_left.empty() || bucket_right.empty()) {\n      SelectCenters(data, centers);\n    } else {\n      centers[0] = div->Mean(bucket_left);\n      centers[1] = div->Mean(bucket_right);\n    }\n  }\n\n  for (size_t i = 0; i < centers.size(); ++i) {\n    delete centers[i];\n  }\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid BBTree<dist_t>::BBNode::LeftSearch(const BregmanDiv<dist_t>* div, \n                                        Object* query_gradient, \n                                        QueryType* query,\n                                        int& MaxLeavesToVisit) const {\n  if (MaxLeavesToVisit <= 0) return; // early termination\n  if (IsLeaf()) {\n    --MaxLeavesToVisit;\n    dist_t dist;\n    for (size_t j = 0; j < bucket_->size(); ++j) {\n      dist = query->DistanceObjLeft((*bucket_)[j]);\n      query->CheckAndAddToResult(dist, (*bucket_)[j]);\n    }\n  } else {\n    const dist_t div_left = query->DistanceObjRight(left_child_->center_);\n    const dist_t div_right = query->DistanceObjRight(right_child_->center_);\n\n    if (div_left < div_right) {\n      left_child_->LeftSearch(div, query_gradient, query, MaxLeavesToVisit);\n      if (right_child_->NeedToSearch(div, query_gradient, query, query->Radius(), div_right)) {\n        right_child_->LeftSearch(div, query_gradient, query, MaxLeavesToVisit);\n      }\n    } else {\n      right_child_->LeftSearch(div, query_gradient, query, MaxLeavesToVisit);\n      if (left_child_->NeedToSearch(div, query_gradient, query, query->Radius(), div_left)) {\n        left_child_->LeftSearch(div, query_gradient, query, MaxLeavesToVisit);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nbool BBTree<dist_t>::BBNode::NeedToSearch(\n    const BregmanDiv<dist_t>* div,\n    Object* query_gradient, \n    QueryType* query,\n    dist_t mindist_est,\n    dist_t div_query_to_center) const {\n  if (div_query_to_center < covering_radius_ ||\n      div_query_to_center < mindist_est) {\n    return true;\n  }\n  return RecBinSearch(div, query_gradient, query, mindist_est);\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nbool BBTree<dist_t>::BBNode::RecBinSearch(\n    const BregmanDiv<dist_t>* div,\n    Object* query_gradient, \n    QueryType* query, dist_t mindist_est,\n    dist_t l, dist_t r, int depth) const {\n  // sanity checks\n  if (depth >= 1e6) {    // something is wrong!\n    PREPARE_RUNTIME_ERR(err) << \"Recursive depth exceeds \" << depth << std::endl;\n    THROW_RUNTIME_ERR(err);\n  }\n  CHECK(query->QueryObject()->datalength() == center_gradf_->datalength());\n\n  const dist_t *qp = reinterpret_cast<const dist_t*>(query_gradient->data());\n  const dist_t *cp = reinterpret_cast<const dist_t*>(center_gradf_->data());\n\n  Object* tmp = Object::CreateNewEmptyObject(query->QueryObject()->datalength());\n  dist_t *tmp_value = reinterpret_cast<dist_t*>(const_cast<char*>(tmp->data()));\n\n  const size_t length = div->GetElemQty(tmp);\n\n  const dist_t theta = (l + r) / 2.0;\n  for (size_t i = 0; i < length; ++i) {\n    tmp_value[i] = theta * qp[i] + (1.0 - theta) * cp[i];\n  }\n\n  Object *x = div->InverseGradientFunction(tmp);\n  delete tmp;\n\n  dist_t div_to_center = query->Distance(x, center_);     // d(x, center)\n  dist_t div_to_query = query->DistanceObjLeft(x);        // d(x, query)\n  delete x;\n\n  dist_t lower_bound = div_to_query +\n                       (1.0/theta - 1.0) * (div_to_center - covering_radius_);\n\n  if (lower_bound >= mindist_est) {\n    return false;\n  }\n\n  static dist_t kCloseEnough = 1e-3;\n\n  // In C++ 11, std::abs is also defined for floating-point numbers\n  if (std::abs(div_to_center - covering_radius_) < covering_radius_ * kCloseEnough) {\n    return true;\n  }\n\n  if (div_to_center > covering_radius_) {\n    return RecBinSearch(div, query_gradient, query, mindist_est, l, theta, depth+1);\n  } else {\n    if (div_to_query < mindist_est) {\n      return true;\n    }\n    return RecBinSearch(div, query_gradient, query, mindist_est, theta, r, depth+1);\n  }\n}\n\ntemplate class BBTree<double>;\ntemplate class BBTree<float>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/dummy.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"method/dummy.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nvoid DummyMethod<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  if (bDoSeqSearch_) {\n    for (size_t i = 0; i < data_.size(); ++i) {\n      query->CheckAndAddToResult(data_[i]);\n    }\n  } else {\n    for (int i =0; i < 100000; ++i);\n  }\n}\n\ntemplate <typename dist_t>\nvoid DummyMethod<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  if (bDoSeqSearch_) {\n    for (size_t i = 0; i < data_.size(); ++i) {\n      query->CheckAndAddToResult(data_[i]);\n    }\n  } else {\n    for (int i =0; i < 100000; ++i);\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nDummyMethod<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  // Check if a user specified extra parameters, which can be also misspelled variants of existing ones\n  AnyParamManager pmgr(QueryTimeParams);\n  int dummy;\n  // Note that GetParamOptional() should always have a default value\n  pmgr.GetParamOptional(\"dummyParam\", dummy, -1);\n  LOG(LIB_INFO) << \"Set dummy = \" << dummy;\n  pmgr.CheckUnused();\n}\n\n\ntemplate class DummyMethod<float>;\ntemplate class DummyMethod<double>;\ntemplate class DummyMethod<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/ghtree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <limits>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"method/ghtree.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nGHTree<dist_t>::GHTree(const Space<dist_t>& space,\n                       const ObjectVector& data,\n                       bool use_random_center) : \n                                space_(space), \n                                data_(data),\n                                use_random_center_(use_random_center) {\n}\n\ntemplate <typename dist_t>\nvoid GHTree<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"bucketSize\", BucketSize_,    50);\n  pmgr.GetParamOptional(\"chunkBucket\", ChunkBucket_,  true);\n\n  LOG(LIB_INFO) << \"bucketSize   = \" << BucketSize_;\n  LOG(LIB_INFO) << \"chunkBucket  = \" << ChunkBucket_;\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n  root_.reset(new GHNode(space_, data_,\n                     BucketSize_, ChunkBucket_,\n                     use_random_center_ /* random center */));\n}\n\ntemplate <typename dist_t>\nGHTree<dist_t>::~GHTree() { }\n\ntemplate <typename dist_t>\nconst std::string GHTree<dist_t>::StrDesc() const {\n  return \"ghtree\";\n}\n\ntemplate <typename dist_t>\nvoid GHTree<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  root_->GenericSearch(query, mx);\n}\n\ntemplate <typename dist_t>\nvoid GHTree<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  root_->GenericSearch(query, mx);\n}\n\ntemplate <typename dist_t>\nGHTree<dist_t>::GHNode::GHNode(\n    const Space<dist_t>& space, const ObjectVector& data,\n    size_t bucket_size, bool chunk_bucket,\n    const bool use_random_center)\n  : pivot1_(NULL), pivot2_(NULL), left_child_(NULL), right_child_(NULL),\n    bucket_(NULL), CacheOptimizedBucket_(NULL) {\n  CHECK(!data.empty());\n\n  if (data.size() <= bucket_size) {\n    if (chunk_bucket) {\n      CreateCacheOptimizedBucket(data, CacheOptimizedBucket_, bucket_);\n    } else {\n      bucket_ = new ObjectVector(data);\n    }\n    return;\n  }\n\n  int data_size = static_cast<int>(data.size());\n  int pivot1_id = use_random_center ? RandomInt() % data_size : data_size - 1;\n  int pivot2_id = -1;\n  pivot1_ = data[pivot1_id];\n\n  if (data.size() >= 2) {    // check if there exists at least 1 except pivot1\n    dist_t maxd = 0;\n    int id;\n    for (int t = 0; t < 100; ++t) {\n        id = RandomInt() % data_size;\n        if (id != pivot1_id) {\n            dist_t curd = space.IndexTimeDistance(pivot1_, data[id]);\n            if (curd >= maxd) {\n              maxd = curd;\n              pivot2_id = id;\n            }\n        }\n    }\n    CHECK(pivot2_id >= 0);\n    CHECK(pivot2_id != pivot1_id);\n    pivot2_ = data[pivot2_id];\n  }\n\n  if (data.size() >= 3) {   // at least 1 object except pivot1 & 2\n    ObjectVector left_subset, right_subset;\n    dist_t dist_to_pivot1, dist_to_pivot2;\n    for (int i = 0; i < data_size; ++i) {\n      if (i == pivot1_id || i == pivot2_id)\n        continue;\n      dist_to_pivot1 = space.IndexTimeDistance(pivot1_, data[i]);\n      dist_to_pivot2 = space.IndexTimeDistance(pivot2_, data[i]);\n      if (dist_to_pivot1 < dist_to_pivot2) {    // close to pivot1\n        left_subset.push_back(data[i]);\n      } else {\n        right_subset.push_back(data[i]);\n      }\n    }\n\n    if (!left_subset.empty()) {\n      left_child_ = new GHNode(space, left_subset, bucket_size, chunk_bucket, use_random_center);\n    }\n\n    if (!right_subset.empty()) {\n      right_child_ = new GHNode(space, right_subset, bucket_size, chunk_bucket, use_random_center);\n    }\n  }\n}\n\ntemplate <typename dist_t>\nGHTree<dist_t>::GHNode::~GHNode() {\n  delete left_child_;\n  delete right_child_;\n  ClearBucket(CacheOptimizedBucket_, bucket_);\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid GHTree<dist_t>::GHNode::GenericSearch(QueryType* query, int& MaxLeavesToVisit) {\n  if (MaxLeavesToVisit <= 0) return; // early termination\n  if (bucket_) {\n    --MaxLeavesToVisit;\n\n    for (unsigned i = 0; i < bucket_->size(); ++i) {\n      const Object* Obj = (*bucket_)[i];\n      dist_t distQC = query->DistanceObjLeft(Obj);\n      query->CheckAndAddToResult(distQC, Obj);\n    }\n    return;\n  }\n\n  dist_t dist_to_pivot1 = DistMax<dist_t>();\n  dist_t dist_to_pivot2 = DistMax<dist_t>();\n  bool exists_pivot1 = false;\n  bool exists_pivot2 = false;\n  if (pivot1_ != NULL) {\n    exists_pivot1 = true;\n    // Distance function is a symmetric metric, so it can be DistanceObjRight as well\n    dist_to_pivot1 = query->DistanceObjLeft(pivot1_);\n    query->CheckAndAddToResult(dist_to_pivot1, pivot1_);\n  }\n  if (pivot2_ != NULL) {\n    exists_pivot2 = true;\n    // Distance function is a symmetric metric, so it can be DistanceObjRight as well\n    dist_to_pivot2 = query->DistanceObjLeft(pivot2_);\n    query->CheckAndAddToResult(dist_to_pivot2, pivot2_);\n  }\n  if (exists_pivot1 && exists_pivot2) {\n    if (dist_to_pivot1 < dist_to_pivot2) {\n      // check left first\n      if (left_child_ != NULL &&\n          (dist_to_pivot1 - dist_to_pivot2) / 2 <= query->Radius()) {\n        left_child_->GenericSearch(query, MaxLeavesToVisit);\n      }\n      // then right\n      if (right_child_ != NULL &&\n          (dist_to_pivot2 - dist_to_pivot1) / 2 <= query->Radius()) {\n        right_child_->GenericSearch(query, MaxLeavesToVisit);\n      }\n    } else {\n      // check right first\n      if (right_child_ != NULL &&\n          (dist_to_pivot2 - dist_to_pivot1) / 2 <= query->Radius()) {\n        right_child_->GenericSearch(query, MaxLeavesToVisit);\n      }\n      // then left\n      if (left_child_ != NULL &&\n          (dist_to_pivot1 - dist_to_pivot2) / 2 <= query->Radius()) {\n        left_child_->GenericSearch(query, MaxLeavesToVisit);\n      }\n    }\n  } else {\n    if (left_child_ != NULL) left_child_->GenericSearch(query, MaxLeavesToVisit);\n    if (right_child_ != NULL) right_child_->GenericSearch(query, MaxLeavesToVisit);\n  }\n}\n\ntemplate class GHTree<double>;\ntemplate class GHTree<float>;\ntemplate class GHTree<int>;\n\n}   // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/hnsw.cc",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib\n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n/*\n*\n* A Hierarchical Navigable Small World (HNSW) approach.\n*\n* The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n* \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin\n* This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n*\n*\n*/\n\n#include <cmath>\n#include <memory>\n#include <iostream>\n#include <mmintrin.h>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/hnsw.h\"\n#include \"space/space_lp.h\"\n\n#include <vector>\n#include <set>\n#include <map>\n#include <sstream>\n#include <typeinfo>\n\n#ifdef _OPENMP\n#include <omp.h>\n#endif\n\n#define USE_BITSET_FOR_INDEXING 1\n#define EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR (0) // 0 is faster build, 1 is faster search on clustered data\n\n#if defined(__GNUC__)\n#define PORTABLE_ALIGN16 __attribute__((aligned(16)))\n#else\n#define PORTABLE_ALIGN16 __declspec(align(16))\n#endif\n\n\nnamespace similarity {\n\n    using namespace std;\n    /*Functions from hnsw_distfunc_opt.cc:*/\n    float L2SqrSIMDExt(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n    float L2SqrSIMD16Ext(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n    float NormScalarProductSIMD(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n\n    template <typename dist_t>    Hnsw<dist_t>::Hnsw(bool PrintProgress, const Space<dist_t>& space,   const ObjectVector& data) :\n        space_(space), PrintProgress_(PrintProgress), data_(data) {}\n\n    template <typename dist_t> void Hnsw<dist_t>::CreateIndex(const AnyParams& IndexParams)\n    {\n\n        AnyParamManager pmgr(IndexParams);\n\n        generator = new std::default_random_engine(100);\n\n        pmgr.GetParamOptional(\"M\", M_, 16);\n\n        // Let's use a generic algorithm by default!\n        pmgr.GetParamOptional(\"searchMethod\", searchMethod_, 0); // this is just to prevent terminating the program when searchMethod is specified\n        searchMethod_ = 0;\n\n#ifdef _OPENMP\n        indexThreadQty_ = omp_get_max_threads();\n#endif\n        pmgr.GetParamOptional(\"indexThreadQty\", indexThreadQty_, indexThreadQty_);\n        pmgr.GetParamOptional(\"efConstruction\", efConstruction_, 200);\n        pmgr.GetParamOptional(\"maxM\", maxM_, M_);\n        pmgr.GetParamOptional(\"maxM0\", maxM0_, M_ * 2);\n        pmgr.GetParamOptional(\"mult\", mult_, 1 / log(1.0*M_));\n        pmgr.GetParamOptional(\"delaunay_type\", delaunay_type_, 1);\n        int skip_optimized_index = 0;\n        pmgr.GetParamOptional(\"skip_optimized_index\", skip_optimized_index, 0);\n        \n        LOG(LIB_INFO) << \"M                   = \" << M_;\n        LOG(LIB_INFO) << \"indexThreadQty      = \" << indexThreadQty_;\n        LOG(LIB_INFO) << \"efConstruction      = \" << efConstruction_;\n        LOG(LIB_INFO) << \"maxM\t\t\t          = \" << maxM_;\n        LOG(LIB_INFO) << \"maxM0\t\t\t          = \" << maxM0_;\n\n        LOG(LIB_INFO) << \"mult                = \" << mult_;\n        LOG(LIB_INFO) << \"skip_optimized_index= \" << skip_optimized_index;\n        LOG(LIB_INFO) << \"delaunay_type       = \"  << delaunay_type_;\n        \n\t\tSetQueryTimeParams(getEmptyParams());\n        if (data_.empty()) {\n          pmgr.CheckUnused();\n          return;\n        }\n\n        // One entry should be added before all the threads are started, or else add() will not work properly\n        HnswNode *first = new HnswNode(data_[0], 0 /* id == 0 */);        \n        first->init(getRandomLevel(mult_), maxM_, maxM0_);        \n        maxlevel_ = first->level;\n        enterpoint_ = first;\n        addToElementListSynchronized(first);\n\n        visitedlistpool = new VisitedListPool(indexThreadQty_, data_.size());\n\n        unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ? new ProgressDisplay(data_.size(), cerr) : NULL);\n\n//#pragma omp parallel for schedule(dynamic,128) num_threads(indexThreadQty_)\n        for (int id = 1; id < data_.size(); ++id) {\n            HnswNode* node = new HnswNode(data_[id], id);\n            add(&space_, node); \n\n            if (progress_bar) ++(*progress_bar);\n\n        }\n\n\n        data_level0_memory_ = NULL;\n        linkLists_ = NULL;\n\t\t\n        if (skip_optimized_index) {\n          LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n          pmgr.CheckUnused();\n          return;\n        }\n\n        int friendsSectionSize = (maxM0_ + 1)*sizeof(int);\n        //Checking for maximum size of the datasection:\n        int dataSectionSize = 1;\n        for (int i = 0; i < ElList_.size(); i++) {\n            ElList_[i]->id_ = i;\n            if (ElList_[i]->getData()->bufferlength()>dataSectionSize)\n                dataSectionSize = ElList_[i]->getData()->bufferlength();\n        }\n\n        // Selecting custom made functions \n         if (space_.StrDesc().compare(\"SpaceLp: p = 2 do we have a special implementation for this p? : 1\") == 0 && sizeof(dist_t) == 4)\n        {\n            LOG(LIB_INFO) << \"\\nThe space is Euclidean\";\n            vectorlength_ = ((dataSectionSize - 16) >> 2);\n            LOG(LIB_INFO) << \"Vector length=\" << vectorlength_;\n            if (vectorlength_ % 16 == 0) {\n                LOG(LIB_INFO) << \"Thus using an optimised function for base 16\";\n                fstdistfunc_ = L2SqrSIMD16Ext;\n                dist_func_type_ = 1;\n                searchMethod_ = 3;\n            }\n            else {\n                LOG(LIB_INFO) << \"Thus using function with any base\";\n                fstdistfunc_ = L2SqrSIMDExt;\n                dist_func_type_ = 2;\n                searchMethod_ = 3;\n            }\n        }\n        else if (space_.StrDesc().compare(\"CosineSimilarity\") == 0 && sizeof(dist_t) == 4)\n        {\n            LOG(LIB_INFO) << \"\\nThe vectorspace is Cosine Similarity\";\n            vectorlength_ = ((dataSectionSize - 16) >> 2);\n            LOG(LIB_INFO) << \"Vector length=\" << vectorlength_;\n            iscosine_ = true;\n            if (vectorlength_ % 4 == 0) {\n                LOG(LIB_INFO) << \"Thus using an optimised function for base 4\";\n                fstdistfunc_ = NormScalarProductSIMD;\n                dist_func_type_ = 3;\n                searchMethod_ = 4;\n            }\n            else {\n                LOG(LIB_INFO) << \"Thus using function with any base\";\n                LOG(LIB_INFO) << \"Search method 4 is not allowed in this case\";\n                fstdistfunc_ = NormScalarProductSIMD;\n                dist_func_type_ = 3;\n                searchMethod_ = 3;\n            }\n        }\n        else {\n            LOG(LIB_INFO) << \"No appropriate custom distance function for \" << space_.StrDesc();\n            //if (searchMethod_ != 0 && searchMethod_ != 1)\n                searchMethod_ = 0;\n            LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n            pmgr.CheckUnused();\n            return; // No optimized index\n        }\n        pmgr.CheckUnused();\n\t\t\n        LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n        memoryPerObject_ = dataSectionSize + friendsSectionSize;\n\n        int total_memory_allocated = (memoryPerObject_*ElList_.size());\n        data_level0_memory_ = (char*)malloc(memoryPerObject_*ElList_.size());        \n\n        offsetLevel0_ = dataSectionSize;\n        offsetData_ = 0;\n       \n\n        memset(data_level0_memory_, 1, memoryPerObject_*ElList_.size());\n        LOG(LIB_INFO) << \"Making optimized index\";\n        for (long i = 0; i < ElList_.size(); i++) {            \n            ElList_[i]->copyDataAndLevel0LinksToOptIndex(data_level0_memory_ + (size_t)i*memoryPerObject_, offsetLevel0_, offsetData_);\n        };\n        ////////////////////////////////////////////////////////////////////////\n        //\n        // The next step is needed only fos cosine similarity space\n        // All vectors are normalized, so we don't have to normalize them later\n        //\n        ////////////////////////////////////////////////////////////////////////\n        if (iscosine_)\n        {\n            for (long i = 0; i < ElList_.size(); i++) {\n                float *v = (float *)(data_level0_memory_ + (size_t)i*memoryPerObject_ + offsetData_ + 16);\n                float sum = 0;\n                for (int i = 0; i < vectorlength_; i++) {\n                    sum += v[i] * v[i];\n                }                \n                if (sum != 0.0) {\n                    sum = 1 / sqrt(sum);\n                    for (int i = 0; i < vectorlength_; i++) {\n                        v[i] *= sum;\n                    }\n                }\n            };\n        }      \n        \n        /////////////////////////////////////////////////////////\n        ////////////////////////////////////////////////////////\n        linkLists_ = (char**)malloc(sizeof(void*)*ElList_.size());\n        for (long i = 0; i < ElList_.size(); i++) {\n            if (ElList_[i]->level < 1) {\n                linkLists_[i] = nullptr;\n                continue;\n            }\n            int sizemass = ((ElList_[i]->level)*(maxM_ + 1))*sizeof(int);\n            total_memory_allocated += sizemass;\n            char *linkList = (char*)malloc(sizemass);\n            linkLists_[i] = linkList;\n            ElList_[i]->copyHigherLevelLinksToOptIndex(linkList, 0);\n        };\n        enterpointId_ = enterpoint_->getId();\n        LOG(LIB_INFO) << \"Finished making optimized index\";\n        LOG(LIB_INFO) << \"Maximum level = \" << enterpoint_->level;\n        LOG(LIB_INFO) << \"Total memory allocated for optimized index+data: \" << (total_memory_allocated >> 20) << \" Mb\";\n\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n        AnyParamManager pmgr(QueryTimeParams);\n\n        if (pmgr.hasParam(\"ef\") && pmgr.hasParam(\"efSearch\")) {\n          throw new runtime_error(\"The user shouldn't specify parameters ef and efSearch at the same time (they are synonyms)\");\n        }\n\n        // ef and efSearch are going to be parameter-synonyms with the default value 20\n        pmgr.GetParamOptional(\"ef\", ef_, 20);\n        pmgr.GetParamOptional(\"efSearch\", ef_, ef_);\n\n        int tmp;\n        pmgr.GetParamOptional(\"searchMethod\", tmp, 0); // this is just to prevent terminating the program when searchMethod is specified\n\n        pmgr.CheckUnused();\n        LOG(LIB_INFO) << \"Set HNSW query-time parameters:\";\n        LOG(LIB_INFO) << \"ef(Search)         =\" << ef_;\n    }\n\n    template <typename dist_t>\n    const std::string Hnsw<dist_t>::StrDesc() const {\n        return METH_HNSW;\n    }\n\n    template <typename dist_t>\n    Hnsw<dist_t>::~Hnsw() {\n        \n        delete visitedlistpool;\n        if (data_level0_memory_)\n            free(data_level0_memory_);\n        if (linkLists_) {\n            for (int i = 0; i < ElList_.size(); i++) {\n                if (linkLists_[i])\n                    free(linkLists_[i]);\n            }\n            free(linkLists_);\n        }\n        for (int i = 0; i < ElList_.size(); i++)\n            delete ElList_[i];\n    }\n    \n    template <typename dist_t>\n     void Hnsw<dist_t>::add(const Space<dist_t>* space, HnswNode *NewElement) {\n        int curlevel = getRandomLevel(mult_);\n        unique_lock<mutex> *lock = nullptr;\n        if (curlevel > maxlevel_)\n            lock = new unique_lock<mutex>(MaxLevelGuard_);\n\n        NewElement->init(curlevel, maxM_, maxM0_);       \n\n        \n\n\n        int maxlevelcopy = maxlevel_;\n        HnswNode *ep = enterpoint_;\n        if (curlevel < maxlevelcopy) {\n            const Object* currObj = ep->getData();\n\n            dist_t d = space->IndexTimeDistance(NewElement->getData(), currObj);\n            dist_t curdist = d;\n            HnswNode *curNode = ep;\n            for (int level = maxlevelcopy; level > curlevel; level--) {\n                bool changed = true;\n                while (changed) {\n                    changed = false;\n                    unique_lock<mutex>  lock(curNode->accessGuard_);\n\n\n                    const vector<HnswNode*>& neighbor = curNode->getAllFriends(level);\n                    int size = neighbor.size();\n                    /*\n                    for (int i = 0; i < size; i++) {\n                        HnswNode *node = neighbor[i];\n                        _mm_prefetch((char *)(node)->getData(), _MM_HINT_T0);\n                    }*/\n                    for (int i = 0; i < size; i++)\n                    {\n                        currObj = (neighbor[i])->getData();\n                        d = space->IndexTimeDistance(NewElement->getData(), currObj);\n                        if (d < curdist) {\n                            curdist = d;\n                            curNode = neighbor[i];\n                            changed = true;\n                        }\n                    }\n\n                }\n\n            }\n            ep = curNode;\n        }\n\n        \n        for (int level = min(curlevel, maxlevelcopy); level >= 0; level--) {\n\t\t\tpriority_queue<HnswNodeDistCloser<dist_t>> resultSet;\n            kSearchElementsWithAttemptsLevel(space, NewElement->getData(), efConstruction_, resultSet, ep, level);//DOTO: make level\n           \n            switch (delaunay_type_) {\n            case 0:\n                while (resultSet.size() > M_)\n                    resultSet.pop();\n                break;\n            case 1:\n                NewElement->getNeighborsByDistanceHeuristic(resultSet, M_, space);\n                break;\n            case 2:\n                NewElement->getNeighborsByMiniGreedySearches(resultSet, M_, space, level);\n                break;\n            }\n            while (!resultSet.empty()) {\n                link(resultSet.top().getMSWNodeHier(), NewElement, level, space, delaunay_type_);\n                resultSet.pop();\n            }\n\n        }\n        if (curlevel > enterpoint_->level)\n        {\n            enterpoint_ = NewElement;\n            maxlevel_ = curlevel;\n        }\n        if (lock != nullptr)\n            delete lock;\n        addToElementListSynchronized(NewElement);\n    }\n\n\n\n\n    template <typename dist_t>\n    void\n        Hnsw<dist_t>::kSearchElementsWithAttemptsLevel(const Space<dist_t>* space,\n            const Object* queryObj, size_t efConstruction, priority_queue<HnswNodeDistCloser<dist_t>>& resultSet, HnswNode* ep, int level) const\n    {\n\n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        priority_queue<HnswNodeDistCloser<dist_t>> fullResultSet;\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        VisitedList * vl = visitedlistpool->getFreeVisitedList();\n        unsigned int *mass = vl->mass;\n        unsigned int curV = vl->curV;\n#else\n        unordered_set<HnswNode*>             visited;\n#endif\n        HnswNode* provider = ep;\n        priority_queue <HnswNodeDistFarther<dist_t>>   candidateSet;\n        dist_t d = space->IndexTimeDistance(queryObj, provider->getData());\n        HnswNodeDistFarther<dist_t> ev(d, provider);\n\n        candidateSet.push(ev);\n        resultSet.emplace(d, provider);\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        fullResultSet.emplace(d, provider);\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        size_t nodeId = provider->getId();\n        mass[nodeId] = curV;\n#else\n        visited.insert(provider);\n#endif\n\n\n        while (!candidateSet.empty()) {\n            const HnswNodeDistFarther<dist_t>& currEv = candidateSet.top();\n            dist_t lowerBound = resultSet.top().getDistance();\n\n            /*\n            * Check if we reached a local minimum.\n            */\n            if (currEv.getDistance() > lowerBound) {\n                break;\n            }\n            HnswNode* currNode = currEv.getMSWNodeHier();\n\n            /*\n            * This lock protects currNode from being modified\n            * while we are accessing elements of currNode.\n            */\n            unique_lock<mutex>  lock(currNode->accessGuard_);\n            const vector<HnswNode*>& neighbor = currNode->getAllFriends(level);\n\n            // Can't access curEv anymore! The reference would become invalid\n            candidateSet.pop();\n\t    \n            // calculate distance to each neighbor\n            /*\n            for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n                _mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n            }*/\n\n            for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n#if USE_BITSET_FOR_INDEXING\n                size_t nodeId = (*iter)->getId();\n                if (mass[nodeId] != curV) {\n                    mass[nodeId] = curV;\n#else\n                if (visited.find((*iter)) == visited.end()) {\n                    visited.insert(*iter);\n#endif\n                    d = space->IndexTimeDistance(queryObj, (*iter)->getData());\n                    HnswNodeDistFarther<dist_t> evE1(d, *iter);\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n                    fullResultSet.emplace(d, *iter);\n#endif\n        \n                    if (resultSet.size() < efConstruction || resultSet.top().getDistance() > d) {\n                        resultSet.emplace(d, *iter);\n                        candidateSet.push(evE1);\n                        if (resultSet.size() > efConstruction) {\n                            resultSet.pop();\n                        }\n                    }\n                }\n            }\n        }\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        resultSet.swap(fullResultSet);\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        visitedlistpool->releaseVisitedList(vl);\n#endif\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::addToElementListSynchronized(HnswNode *HierElement) {\n        unique_lock<mutex> lock(ElListGuard_);\n        ElList_.push_back(HierElement);\n    }\n    template <typename dist_t>\n    void Hnsw<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n        throw runtime_error(\"Range search is not supported!\");\n    }\n\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const  {\n\t\t\n        switch (searchMethod_) {\n                default:\n                  throw runtime_error(\"Invalid searchMethod: \" + ConvertToString(searchMethod_));\n                  break;\n            \t\tcase 0:\n                        /// Basic search using Nmslib data structure:\n                        const_cast<Hnsw*>(this)->baseSearchAlgorithm(query);\n            \t\t\tbreak;\n            \t\tcase 1:\n                        /// Experimental search using Nmslib data structure (should not be used):\n                        const_cast<Hnsw*>(this)->listPassingModifiedAlgorithm(query);\n            \t\t\tbreak;\n            \t\tcase 3:\n                        /// Basic search using optimized index(cosine+L2)\n                        const_cast<Hnsw*>(this)->SearchL2Custom(query);\n            \t\t\tbreak;\n            \t\tcase 4:\n                        /// Basic search using optimized index with one-time normalized cosine similarity\n                        /// Only for cosine similarity!\n                        const_cast<Hnsw*>(this)->SearchCosineNormalized(query);\n            \t\t\tbreak;\n            \t\t};\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::SaveIndex(const string &location) {\n        if (!data_level0_memory_)\n            throw runtime_error(\"Storing non-optimized index is not supported yet!\");\n\n        std::ofstream output(location, std::ios::binary);\n        streampos position;\n        totalElementsStored_ = ElList_.size();        \n        output.write((char*)&totalElementsStored_, sizeof(size_t));\n        output.write((char*)&memoryPerObject_, sizeof(size_t));\n        output.write((char*)&offsetLevel0_, sizeof(size_t));\n        output.write((char*)&offsetData_, sizeof(size_t));\n        output.write((char*)&maxlevel_, sizeof(size_t));\n        output.write((char*)&enterpointId_, sizeof(size_t));\n        output.write((char*)&maxM_, sizeof(size_t));\n        output.write((char*)&maxM0_, sizeof(size_t));\n        output.write((char*)&dist_func_type_, sizeof(size_t));       \n        output.write((char*)&searchMethod_, sizeof(searchMethod_));\n  \n        size_t data_plus_links0_size = memoryPerObject_*totalElementsStored_;\n        LOG(LIB_INFO) << \"writing \" << data_plus_links0_size << \" bytes\";\n        output.write(data_level0_memory_, data_plus_links0_size);\n        \n        //output.write(data_level0_memory_, memoryPerObject_*totalElementsStored_);\n\n        //size_t total_memory_allocated = 0;\n\n        for (size_t i = 0; i < totalElementsStored_; i++) {            \n            unsigned int sizemass = ((ElList_[i]->level)*(maxM_ + 1))*sizeof(int);       \n            output.write((char*)&sizemass, sizeof(unsigned int));\n            if((sizemass))\n                output.write(linkLists_[i], sizemass);\n        };        \n        output.close();\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::LoadIndex(const string &location) {\n        LOG(LIB_INFO) << \"Loading index from \"<<location;\n        std::ifstream input(location, std::ios::binary);\n        streampos position;\n        \n        //input.seekg(0, std::ios::beg);\n\n        input.read((char*)(&totalElementsStored_), sizeof(size_t)); \n        input.read((char*)(&memoryPerObject_), sizeof(size_t));\n        input.read((char*)&offsetLevel0_, sizeof(size_t));\n        input.read((char*)&offsetData_, sizeof(size_t));\n        input.read((char*)&maxlevel_, sizeof(size_t));\n        input.read((char*)&enterpointId_, sizeof(size_t));\n        input.read((char*)&maxM_, sizeof(size_t));\n        input.read((char*)&maxM0_, sizeof(size_t));\n        input.read((char*)&dist_func_type_, sizeof(size_t));\n        input.read((char*)&searchMethod_, sizeof(searchMethod_));\n\t\t\n        if (dist_func_type_ == 1)\n             fstdistfunc_ = L2SqrSIMD16Ext;\n        else if (dist_func_type_ == 2)\n            fstdistfunc_ = L2SqrSIMDExt;\n        else if (dist_func_type_ == 3)\n            fstdistfunc_ = NormScalarProductSIMD;\n\t\tLOG(LIB_INFO) << \"searchMethod: \" << searchMethod_;\n\n\n  \n//        LOG(LIB_INFO) << input.tellg();\n        LOG(LIB_INFO) << \"Total: \" << totalElementsStored_<< \", Memory per object: \" << memoryPerObject_;\n        size_t data_plus_links0_size = memoryPerObject_*totalElementsStored_;\n        data_level0_memory_ = (char*)malloc(data_plus_links0_size);        \n        input.read(data_level0_memory_, data_plus_links0_size);            \n        linkLists_ = (char**)malloc(sizeof(void*)*totalElementsStored_);\n\n        for (size_t i = 0; i < totalElementsStored_; i++) {\n            unsigned int linkListSize;\n            input.read((char*)&linkListSize, sizeof(unsigned int));\n            position = input.tellg();\n            if (linkListSize == 0) {\n                linkLists_[i] = nullptr;\n            }\n            else {\n                linkLists_[i] = (char *) malloc(linkListSize);\n                input.read(linkLists_[i], linkListSize);\n            }\n\n        }\n        LOG(LIB_INFO) << \"Finished loading index\";\n        visitedlistpool = new VisitedListPool(1, totalElementsStored_);\n      \n        input.close();\n\n    }\n\n\n    \ttemplate <typename dist_t>\n    \tvoid Hnsw<dist_t>::baseSearchAlgorithm(KNNQuery<dist_t>* query) {\n\t\t\tint checks =0 ;\n    \t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n    \t\tunsigned int *massVisited = vl->mass;\n    \t\tunsigned int currentV = vl->curV;\n\n    \t\tHnswNode* provider;\n    \t\tint maxlevel1 = enterpoint_->level;\n    \t\tprovider = enterpoint_;\n    \n    \t\tconst Object* currObj = provider->getData();\n    \n    \t\tdist_t d = query->DistanceObjLeft(currObj);\n\t\t\tchecks ++ ;\n    \t\tdist_t curdist = d;\n    \t\tHnswNode *curNode = provider;\n    \t\tfor (int i = maxlevel1; i > 0; i--) {\n    \t\t\tbool changed = true;\n    \t\t\twhile (changed) {\n    \t\t\t\tchanged = false;\n    \n    \t\t\t\tconst vector<HnswNode*>& neighbor = curNode->getAllFriends(i);\n    \t\t\t\t/*\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t}*/\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n\t\t\t\t\t\tchecks++;\n    \t\t\t\t\tif (d < curdist) {\n    \t\t\t\t\t\tcurdist = d;\n    \t\t\t\t\t\tcurNode = *iter;\n    \t\t\t\t\t\tchanged = true;\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\n    \n    \t\tpriority_queue <HnswNodeDistFarther<dist_t>> candidateQueue; //the set of elements which we can use to evaluate    \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueue1; //The set of closest found elements \n    \n    \t\tHnswNodeDistFarther<dist_t> ev(curdist, curNode);\n    \t\tcandidateQueue.emplace(curdist, curNode);\n    \t\tclosestDistQueue1.emplace(curdist, curNode);\n    \n    \t\tquery->CheckAndAddToResult(curdist, curNode->getData());\n    \t\tmassVisited[curNode->getId()] = currentV;\n    \t\t//visitedQueue.insert(curNode->getId());\n    \n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t// PHASE TWO OF THE SEARCH\n    \t\t// Extraction of the neighborhood to find k nearest neighbors.\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t\n    \t\twhile (!candidateQueue.empty()) {\n    \t\t\t\n    \t\t\tauto iter = candidateQueue.top(); // This one was already compared to the query\n    \t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t//Check condtion to end the search\n    \t\t\tdist_t lowerBound = closestDistQueue1.top().getDistance();\n    \t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\tbreak;\n    \t\t\t}\n    \n    \t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\tcandidateQueue.pop();\n    \n    \t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(0);\n    \n    \t\t\tsize_t curId;\n    \t\t\t/*\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t}*/\n    \t\t\t//calculate distance to each neighbor\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \n    \t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\t\n    \t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t{\n    \t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n\t\t\t\t\t\tchecks ++ ;\n    \t\t\t\t\tif (closestDistQueue1.top().getDistance() > d || closestDistQueue1.size() < ef_) {\n    \t\t\t\t\t\t{\n    \t\t\t\t\t\t\tquery->CheckAndAddToResult(d, currObj);    \n    \t\t\t\t\t\t\tcandidateQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tclosestDistQueue1.emplace(d, *iter);\n    \t\t\t\t\t\t\tif (closestDistQueue1.size() > ef_) {\n    \t\t\t\t\t\t\t\tclosestDistQueue1.pop();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \n    \t\t}\n    \t\tvisitedlistpool->releaseVisitedList(vl);\n\t\t\t//cout << checks << endl;\n    \t}\n        // Experimental search algorithm\n    \ttemplate <typename dist_t>\n    \tvoid Hnsw<dist_t>::listPassingModifiedAlgorithm(KNNQuery<dist_t>* query) {\n\n    \t\tint efSearchL = 4; // This parameters defines the confidence of searches at level higher than zero \n                               // for zero level it is set to ef\n            //Getting the visitedlist\n    \t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n    \t\tunsigned int *massVisited = vl->mass;\n    \t\tunsigned int currentV = vl->curV;\n    \n    \t\tint maxlevel1 = enterpoint_->level;    \n    \n    \t\tconst Object* currObj = enterpoint_->getData();\n    \n    \t\tdist_t d = query->DistanceObjLeft(currObj);\n    \t\tdist_t curdist = d;\n    \t\tHnswNode *curNode = enterpoint_;\n    \n    \n    \t\tpriority_queue <HnswNodeDistFarther<dist_t>> candidateQueue; //the set of elements which we can use to evaluate    \t\t\t\t\t\t\t\t\t\t\t\t\t\t\n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueue= priority_queue <HnswNodeDistCloser<dist_t>>(); //The set of closest found elements \n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueueCpy = priority_queue <HnswNodeDistCloser<dist_t>>();\n\n    \t\tHnswNodeDistFarther<dist_t> ev(curdist, curNode);\n    \t\tcandidateQueue.emplace(curdist, curNode);\n    \t\tclosestDistQueue.emplace(curdist, curNode);\n\n    \t\tmassVisited[curNode->getId()] = currentV;\n\n    \t\tfor (int i = maxlevel1; i > 0; i--) {\n    \t\t\t\n    \t\t\twhile (!candidateQueue.empty()) {\n    \t\n    \t\t\t\tauto iter = candidateQueue.top(); \n    \t\t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t\t//Check condtion to end the search\n    \t\t\t\tdist_t lowerBound = closestDistQueue.top().getDistance();\n    \t\t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\t\tbreak;\n    \t\t\t\t}\n    \n    \t\t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\t\tcandidateQueue.pop();\n    \n    \t\t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(i);\n    \n    \t\t\t\tsize_t curId;\n    \t\t\t\t/*\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t\t}*/\n    \t\t\t\t//calculate distance to each neighbor\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {    \n    \t\t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t\t{\n    \t\t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\t\td = query->DistanceObjLeft(currObj);\n                            if (closestDistQueue.top().getDistance() > d || closestDistQueue.size() < efSearchL) {\n                                candidateQueue.emplace(d, *iter);\n                                closestDistQueue.emplace(d, *iter);\n                                if (closestDistQueue.size() > efSearchL) {\n                                    closestDistQueue.pop();\n                                }\n                            }\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \n    \t\t\t}\n                //Updating the bitset key:\n                currentV++;\n                vl->curV++;// not to forget updating in the pool\n    \t\t\tif (currentV == 0) {\n    \t\t\t\tmemset(massVisited, 0, ElList_.size()*sizeof(int));\n    \t\t\t\tcurrentV++;\n                    vl->curV++;// not to forget updating in the pool\n    \t\t\t}\n                candidateQueue = priority_queue <HnswNodeDistFarther<dist_t>>();\n                closestDistQueueCpy = priority_queue <HnswNodeDistCloser<dist_t>>(closestDistQueue);\n    \t\t\tif (i > 1) {    // Passing the closest neighbors to layers higher than zero:\n                    while (closestDistQueueCpy.size() > 0) {\n                        massVisited[closestDistQueueCpy.top().getMSWNodeHier()->getId()] = currentV;\n                        candidateQueue.emplace(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier());                        \n                        closestDistQueueCpy.pop();\n                    }    \t\t\t\t\n    \t\t\t}\n                else {     // Passing the closest neighbors to the 0 zero layer(one has to add also to query):                    \n                    while (closestDistQueueCpy.size() > 0) {\n                        massVisited[closestDistQueueCpy.top().getMSWNodeHier()->getId()] = currentV;\n                        candidateQueue.emplace(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier());\n                        query->CheckAndAddToResult(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier()->getData());\n                        closestDistQueueCpy.pop();\n                    }\n                }\n    \t\t}\n    \t\t\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t// PHASE TWO OF THE SEARCH\n    \t\t// Extraction of the neighborhood to find k nearest neighbors.\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \n    \n    \t\twhile (!candidateQueue.empty()) {\n    \n    \t\t\tauto iter = candidateQueue.top();\n    \t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t//Check condtion to end the search\n    \t\t\tdist_t lowerBound = closestDistQueue.top().getDistance();\n    \t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\tbreak;\n    \t\t\t}\n    \n    \t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\tcandidateQueue.pop();\n    \n    \t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(0);\n    \n    \t\t\tsize_t curId;\n    \t\t\t/*\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t}*/\n    \t\t\t//calculate distance to each neighbor\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \n    \t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t{\n    \t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n    \t\t\t\t\tif (closestDistQueue.top().getDistance() > d || closestDistQueue.size() < ef_) {\n    \t\t\t\t\t\t{\n    \t\t\t\t\t\t\tquery->CheckAndAddToResult(d, currObj);\n    \t\t\t\t\t\t\tcandidateQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tclosestDistQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tif (closestDistQueue.size() > ef_) {\n    \t\t\t\t\t\t\t\tclosestDistQueue.pop();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \n    \t\t}\n    \t\tvisitedlistpool->releaseVisitedList(vl);\n    \n    \t}\n\n\n    template class Hnsw<float>;\n    template class Hnsw<double>;\n    template class Hnsw<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/hnsw.cc~",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib\n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n/*\n*\n* A Hierarchical Navigable Small World (HNSW) approach.\n*\n* The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n* \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin\n* This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n*\n*\n*/\n\n#include <cmath>\n#include <memory>\n#include <iostream>\n#include <mmintrin.h>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/hnsw.h\"\n#include \"space/space_lp.h\"\n\n#include <vector>\n#include <set>\n#include <map>\n#include <sstream>\n#include <typeinfo>\n\n#ifdef _OPENMP\n#include <omp.h>\n#endif\n\n#define USE_BITSET_FOR_INDEXING 1\n#define EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR (0) // 0 is faster build, 1 is faster search on clustered data\n\n#if defined(__GNUC__)\n#define PORTABLE_ALIGN16 __attribute__((aligned(16)))\n#else\n#define PORTABLE_ALIGN16 __declspec(align(16))\n#endif\n\n\nnamespace similarity {\n\n    using namespace std;\n    /*Functions from hnsw_distfunc_opt.cc:*/\n    float L2SqrSIMDExt(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n    float L2SqrSIMD16Ext(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n    float NormScalarProductSIMD(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes);\n\n    template <typename dist_t>    Hnsw<dist_t>::Hnsw(bool PrintProgress, const Space<dist_t>& space,   const ObjectVector& data) :\n        space_(space), PrintProgress_(PrintProgress), data_(data) {}\n\n    template <typename dist_t> void Hnsw<dist_t>::CreateIndex(const AnyParams& IndexParams)\n    {\n\n        AnyParamManager pmgr(IndexParams);\n\n        generator = new std::default_random_engine(100);\n\n        pmgr.GetParamOptional(\"M\", M_, 16);\n\n        // Let's use a generic algorithm by default!\n        pmgr.GetParamOptional(\"searchMethod\", searchMethod_, 0); // this is just to prevent terminating the program when searchMethod is specified\n        searchMethod_ = 0;\n\n#ifdef _OPENMP\n        indexThreadQty_ = omp_get_max_threads();\n#endif\n        pmgr.GetParamOptional(\"indexThreadQty\", indexThreadQty_, indexThreadQty_);\n        pmgr.GetParamOptional(\"efConstruction\", efConstruction_, 200);\n        pmgr.GetParamOptional(\"maxM\", maxM_, M_);\n        pmgr.GetParamOptional(\"maxM0\", maxM0_, M_ * 2);\n        pmgr.GetParamOptional(\"mult\", mult_, 1 / log(1.0*M_));\n        pmgr.GetParamOptional(\"delaunay_type\", delaunay_type_, 1);\n        int skip_optimized_index = 0;\n        pmgr.GetParamOptional(\"skip_optimized_index\", skip_optimized_index, 0);\n        \n        LOG(LIB_INFO) << \"M                   = \" << M_;\n        LOG(LIB_INFO) << \"indexThreadQty      = \" << indexThreadQty_;\n        LOG(LIB_INFO) << \"efConstruction      = \" << efConstruction_;\n        LOG(LIB_INFO) << \"maxM\t\t\t          = \" << maxM_;\n        LOG(LIB_INFO) << \"maxM0\t\t\t          = \" << maxM0_;\n\n        LOG(LIB_INFO) << \"mult                = \" << mult_;\n        LOG(LIB_INFO) << \"skip_optimized_index= \" << skip_optimized_index;\n        LOG(LIB_INFO) << \"delaunay_type       = \"  << delaunay_type_;\n        \n\t\tSetQueryTimeParams(getEmptyParams());\n        if (data_.empty()) {\n          pmgr.CheckUnused();\n          return;\n        }\n\n        // One entry should be added before all the threads are started, or else add() will not work properly\n        HnswNode *first = new HnswNode(data_[0], 0 /* id == 0 */);        \n        first->init(getRandomLevel(mult_), maxM_, maxM0_);        \n        maxlevel_ = first->level;\n        enterpoint_ = first;\n        addToElementListSynchronized(first);\n\n        visitedlistpool = new VisitedListPool(indexThreadQty_, data_.size());\n\n        unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ? new ProgressDisplay(data_.size(), cerr) : NULL);\n\n//#pragma omp parallel for schedule(dynamic,128) num_threads(indexThreadQty_)\n        for (int id = 1; id < data_.size(); ++id) {\n            HnswNode* node = new HnswNode(data_[id], id);\n            add(&space_, node); \n\n            if (progress_bar) ++(*progress_bar);\n\n        }\n\n\n        data_level0_memory_ = NULL;\n        linkLists_ = NULL;\n\t\t\n        if (skip_optimized_index) {\n          LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n          pmgr.CheckUnused();\n          return;\n        }\n\n        int friendsSectionSize = (maxM0_ + 1)*sizeof(int);\n        //Checking for maximum size of the datasection:\n        int dataSectionSize = 1;\n        for (int i = 0; i < ElList_.size(); i++) {\n            ElList_[i]->id_ = i;\n            if (ElList_[i]->getData()->bufferlength()>dataSectionSize)\n                dataSectionSize = ElList_[i]->getData()->bufferlength();\n        }\n\n        // Selecting custom made functions \n         if (space_.StrDesc().compare(\"SpaceLp: p = 2 do we have a special implementation for this p? : 1\") == 0 && sizeof(dist_t) == 4)\n        {\n            LOG(LIB_INFO) << \"\\nThe space is Euclidean\";\n            vectorlength_ = ((dataSectionSize - 16) >> 2);\n            LOG(LIB_INFO) << \"Vector length=\" << vectorlength_;\n            if (vectorlength_ % 16 == 0) {\n                LOG(LIB_INFO) << \"Thus using an optimised function for base 16\";\n                fstdistfunc_ = L2SqrSIMD16Ext;\n                dist_func_type_ = 1;\n                searchMethod_ = 3;\n            }\n            else {\n                LOG(LIB_INFO) << \"Thus using function with any base\";\n                fstdistfunc_ = L2SqrSIMDExt;\n                dist_func_type_ = 2;\n                searchMethod_ = 3;\n            }\n        }\n        else if (space_.StrDesc().compare(\"CosineSimilarity\") == 0 && sizeof(dist_t) == 4)\n        {\n            LOG(LIB_INFO) << \"\\nThe vectorspace is Cosine Similarity\";\n            vectorlength_ = ((dataSectionSize - 16) >> 2);\n            LOG(LIB_INFO) << \"Vector length=\" << vectorlength_;\n            iscosine_ = true;\n            if (vectorlength_ % 4 == 0) {\n                LOG(LIB_INFO) << \"Thus using an optimised function for base 4\";\n                fstdistfunc_ = NormScalarProductSIMD;\n                dist_func_type_ = 3;\n                searchMethod_ = 4;\n            }\n            else {\n                LOG(LIB_INFO) << \"Thus using function with any base\";\n                LOG(LIB_INFO) << \"Search method 4 is not allowed in this case\";\n                fstdistfunc_ = NormScalarProductSIMD;\n                dist_func_type_ = 3;\n                searchMethod_ = 3;\n            }\n        }\n        else {\n            LOG(LIB_INFO) << \"No appropriate custom distance function for \" << space_.StrDesc();\n            //if (searchMethod_ != 0 && searchMethod_ != 1)\n                searchMethod_ = 0;\n            LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n            pmgr.CheckUnused();\n            return; // No optimized index\n        //}\n        pmgr.CheckUnused();\n\t\t\n        LOG(LIB_INFO) << \"searchMethod\t\t\t  = \" << searchMethod_;\n        memoryPerObject_ = dataSectionSize + friendsSectionSize;\n\n        int total_memory_allocated = (memoryPerObject_*ElList_.size());\n        data_level0_memory_ = (char*)malloc(memoryPerObject_*ElList_.size());        \n\n        offsetLevel0_ = dataSectionSize;\n        offsetData_ = 0;\n       \n\n        memset(data_level0_memory_, 1, memoryPerObject_*ElList_.size());\n        LOG(LIB_INFO) << \"Making optimized index\";\n        for (long i = 0; i < ElList_.size(); i++) {            \n            ElList_[i]->copyDataAndLevel0LinksToOptIndex(data_level0_memory_ + (size_t)i*memoryPerObject_, offsetLevel0_, offsetData_);\n        };\n        ////////////////////////////////////////////////////////////////////////\n        //\n        // The next step is needed only fos cosine similarity space\n        // All vectors are normalized, so we don't have to normalize them later\n        //\n        ////////////////////////////////////////////////////////////////////////\n        if (iscosine_)\n        {\n            for (long i = 0; i < ElList_.size(); i++) {\n                float *v = (float *)(data_level0_memory_ + (size_t)i*memoryPerObject_ + offsetData_ + 16);\n                float sum = 0;\n                for (int i = 0; i < vectorlength_; i++) {\n                    sum += v[i] * v[i];\n                }                \n                if (sum != 0.0) {\n                    sum = 1 / sqrt(sum);\n                    for (int i = 0; i < vectorlength_; i++) {\n                        v[i] *= sum;\n                    }\n                }\n            };\n        }      \n        \n        /////////////////////////////////////////////////////////\n        ////////////////////////////////////////////////////////\n        linkLists_ = (char**)malloc(sizeof(void*)*ElList_.size());\n        for (long i = 0; i < ElList_.size(); i++) {\n            if (ElList_[i]->level < 1) {\n                linkLists_[i] = nullptr;\n                continue;\n            }\n            int sizemass = ((ElList_[i]->level)*(maxM_ + 1))*sizeof(int);\n            total_memory_allocated += sizemass;\n            char *linkList = (char*)malloc(sizemass);\n            linkLists_[i] = linkList;\n            ElList_[i]->copyHigherLevelLinksToOptIndex(linkList, 0);\n        };\n        enterpointId_ = enterpoint_->getId();\n        LOG(LIB_INFO) << \"Finished making optimized index\";\n        LOG(LIB_INFO) << \"Maximum level = \" << enterpoint_->level;\n        LOG(LIB_INFO) << \"Total memory allocated for optimized index+data: \" << (total_memory_allocated >> 20) << \" Mb\";\n\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n        AnyParamManager pmgr(QueryTimeParams);\n\n        if (pmgr.hasParam(\"ef\") && pmgr.hasParam(\"efSearch\")) {\n          throw new runtime_error(\"The user shouldn't specify parameters ef and efSearch at the same time (they are synonyms)\");\n        }\n\n        // ef and efSearch are going to be parameter-synonyms with the default value 20\n        pmgr.GetParamOptional(\"ef\", ef_, 20);\n        pmgr.GetParamOptional(\"efSearch\", ef_, ef_);\n\n        int tmp;\n        pmgr.GetParamOptional(\"searchMethod\", tmp, 0); // this is just to prevent terminating the program when searchMethod is specified\n\n        pmgr.CheckUnused();\n        LOG(LIB_INFO) << \"Set HNSW query-time parameters:\";\n        LOG(LIB_INFO) << \"ef(Search)         =\" << ef_;\n    }\n\n    template <typename dist_t>\n    const std::string Hnsw<dist_t>::StrDesc() const {\n        return METH_HNSW;\n    }\n\n    template <typename dist_t>\n    Hnsw<dist_t>::~Hnsw() {\n        \n        delete visitedlistpool;\n        if (data_level0_memory_)\n            free(data_level0_memory_);\n        if (linkLists_) {\n            for (int i = 0; i < ElList_.size(); i++) {\n                if (linkLists_[i])\n                    free(linkLists_[i]);\n            }\n            free(linkLists_);\n        }\n        for (int i = 0; i < ElList_.size(); i++)\n            delete ElList_[i];\n    }\n    \n    template <typename dist_t>\n     void Hnsw<dist_t>::add(const Space<dist_t>* space, HnswNode *NewElement) {\n        int curlevel = getRandomLevel(mult_);\n        unique_lock<mutex> *lock = nullptr;\n        if (curlevel > maxlevel_)\n            lock = new unique_lock<mutex>(MaxLevelGuard_);\n\n        NewElement->init(curlevel, maxM_, maxM0_);       \n\n        \n\n\n        int maxlevelcopy = maxlevel_;\n        HnswNode *ep = enterpoint_;\n        if (curlevel < maxlevelcopy) {\n            const Object* currObj = ep->getData();\n\n            dist_t d = space->IndexTimeDistance(NewElement->getData(), currObj);\n            dist_t curdist = d;\n            HnswNode *curNode = ep;\n            for (int level = maxlevelcopy; level > curlevel; level--) {\n                bool changed = true;\n                while (changed) {\n                    changed = false;\n                    unique_lock<mutex>  lock(curNode->accessGuard_);\n\n\n                    const vector<HnswNode*>& neighbor = curNode->getAllFriends(level);\n                    int size = neighbor.size();\n                    for (int i = 0; i < size; i++) {\n                        HnswNode *node = neighbor[i];\n                        _mm_prefetch((char *)(node)->getData(), _MM_HINT_T0);\n                    }\n                    for (int i = 0; i < size; i++)\n                    {\n                        currObj = (neighbor[i])->getData();\n                        d = space->IndexTimeDistance(NewElement->getData(), currObj);\n                        if (d < curdist) {\n                            curdist = d;\n                            curNode = neighbor[i];\n                            changed = true;\n                        }\n                    }\n\n                }\n\n            }\n            ep = curNode;\n        }\n\n        \n        for (int level = min(curlevel, maxlevelcopy); level >= 0; level--) {\n\t\t\tpriority_queue<HnswNodeDistCloser<dist_t>> resultSet;\n            kSearchElementsWithAttemptsLevel(space, NewElement->getData(), efConstruction_, resultSet, ep, level);//DOTO: make level\n           \n            switch (delaunay_type_) {\n            case 0:\n                while (resultSet.size() > M_)\n                    resultSet.pop();\n                break;\n            case 1:\n                NewElement->getNeighborsByDistanceHeuristic(resultSet, M_, space);\n                break;\n            case 2:\n                NewElement->getNeighborsByMiniGreedySearches(resultSet, M_, space, level);\n                break;\n            }\n            while (!resultSet.empty()) {\n                link(resultSet.top().getMSWNodeHier(), NewElement, level, space, delaunay_type_);\n                resultSet.pop();\n            }\n\n        }\n        if (curlevel > enterpoint_->level)\n        {\n            enterpoint_ = NewElement;\n            maxlevel_ = curlevel;\n        }\n        if (lock != nullptr)\n            delete lock;\n        addToElementListSynchronized(NewElement);\n    }\n\n\n\n\n    template <typename dist_t>\n    void\n        Hnsw<dist_t>::kSearchElementsWithAttemptsLevel(const Space<dist_t>* space,\n            const Object* queryObj, size_t efConstruction, priority_queue<HnswNodeDistCloser<dist_t>>& resultSet, HnswNode* ep, int level) const\n    {\n\n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        priority_queue<HnswNodeDistCloser<dist_t>> fullResultSet;\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        VisitedList * vl = visitedlistpool->getFreeVisitedList();\n        unsigned int *mass = vl->mass;\n        unsigned int curV = vl->curV;\n#else\n        unordered_set<HnswNode*>             visited;\n#endif\n        HnswNode* provider = ep;\n        priority_queue <HnswNodeDistFarther<dist_t>>   candidateSet;\n        dist_t d = space->IndexTimeDistance(queryObj, provider->getData());\n        HnswNodeDistFarther<dist_t> ev(d, provider);\n\n        candidateSet.push(ev);\n        resultSet.emplace(d, provider);\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        fullResultSet.emplace(d, provider);\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        size_t nodeId = provider->getId();\n        mass[nodeId] = curV;\n#else\n        visited.insert(provider);\n#endif\n\n\n        while (!candidateSet.empty()) {\n            const HnswNodeDistFarther<dist_t>& currEv = candidateSet.top();\n            dist_t lowerBound = resultSet.top().getDistance();\n\n            /*\n            * Check if we reached a local minimum.\n            */\n            if (currEv.getDistance() > lowerBound) {\n                break;\n            }\n            HnswNode* currNode = currEv.getMSWNodeHier();\n\n            /*\n            * This lock protects currNode from being modified\n            * while we are accessing elements of currNode.\n            */\n            unique_lock<mutex>  lock(currNode->accessGuard_);\n            const vector<HnswNode*>& neighbor = currNode->getAllFriends(level);\n\n            // Can't access curEv anymore! The reference would become invalid\n            candidateSet.pop();\n\n            // calculate distance to each neighbor\n            for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n                _mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n            }\n\n            for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n#if USE_BITSET_FOR_INDEXING\n                size_t nodeId = (*iter)->getId();\n                if (mass[nodeId] != curV) {\n                    mass[nodeId] = curV;\n#else\n                if (visited.find((*iter)) == visited.end()) {\n                    visited.insert(*iter);\n#endif\n                    d = space->IndexTimeDistance(queryObj, (*iter)->getData());\n                    HnswNodeDistFarther<dist_t> evE1(d, *iter);\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n                    fullResultSet.emplace(d, *iter);\n#endif\n        \n                    if (resultSet.size() < efConstruction || resultSet.top().getDistance() > d) {\n                        resultSet.emplace(d, *iter);\n                        candidateSet.push(evE1);\n                        if (resultSet.size() > efConstruction) {\n                            resultSet.pop();\n                        }\n                    }\n                }\n            }\n        }\n        \n#if EXTEND_USE_EXTENDED_NEIGHB_AT_CONSTR!=0\n        resultSet.swap(fullResultSet);\n#endif\n        \n#if USE_BITSET_FOR_INDEXING\n        visitedlistpool->releaseVisitedList(vl);\n#endif\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::addToElementListSynchronized(HnswNode *HierElement) {\n        unique_lock<mutex> lock(ElListGuard_);\n        ElList_.push_back(HierElement);\n    }\n    template <typename dist_t>\n    void Hnsw<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n        throw runtime_error(\"Range search is not supported!\");\n    }\n\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const  {\n\t\t\n        switch (searchMethod_) {\n                default:\n                  throw runtime_error(\"Invalid searchMethod: \" + ConvertToString(searchMethod_));\n                  break;\n            \t\tcase 0:\n                        /// Basic search using Nmslib data structure:\n                        const_cast<Hnsw*>(this)->baseSearchAlgorithm(query);\n            \t\t\tbreak;\n            \t\tcase 1:\n                        /// Experimental search using Nmslib data structure (should not be used):\n                        const_cast<Hnsw*>(this)->listPassingModifiedAlgorithm(query);\n            \t\t\tbreak;\n            \t\tcase 3:\n                        /// Basic search using optimized index(cosine+L2)\n                        const_cast<Hnsw*>(this)->SearchL2Custom(query);\n            \t\t\tbreak;\n            \t\tcase 4:\n                        /// Basic search using optimized index with one-time normalized cosine similarity\n                        /// Only for cosine similarity!\n                        const_cast<Hnsw*>(this)->SearchCosineNormalized(query);\n            \t\t\tbreak;\n            \t\t};\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::SaveIndex(const string &location) {\n        if (!data_level0_memory_)\n            throw runtime_error(\"Storing non-optimized index is not supported yet!\");\n\n        std::ofstream output(location, std::ios::binary);\n        streampos position;\n        totalElementsStored_ = ElList_.size();        \n        output.write((char*)&totalElementsStored_, sizeof(size_t));\n        output.write((char*)&memoryPerObject_, sizeof(size_t));\n        output.write((char*)&offsetLevel0_, sizeof(size_t));\n        output.write((char*)&offsetData_, sizeof(size_t));\n        output.write((char*)&maxlevel_, sizeof(size_t));\n        output.write((char*)&enterpointId_, sizeof(size_t));\n        output.write((char*)&maxM_, sizeof(size_t));\n        output.write((char*)&maxM0_, sizeof(size_t));\n        output.write((char*)&dist_func_type_, sizeof(size_t));       \n        output.write((char*)&searchMethod_, sizeof(searchMethod_));\n  \n        size_t data_plus_links0_size = memoryPerObject_*totalElementsStored_;\n        LOG(LIB_INFO) << \"writing \" << data_plus_links0_size << \" bytes\";\n        output.write(data_level0_memory_, data_plus_links0_size);\n        \n        //output.write(data_level0_memory_, memoryPerObject_*totalElementsStored_);\n\n        //size_t total_memory_allocated = 0;\n\n        for (size_t i = 0; i < totalElementsStored_; i++) {            \n            unsigned int sizemass = ((ElList_[i]->level)*(maxM_ + 1))*sizeof(int);       \n            output.write((char*)&sizemass, sizeof(unsigned int));\n            if((sizemass))\n                output.write(linkLists_[i], sizemass);\n        };        \n        output.close();\n    }\n\n    template <typename dist_t>\n    void Hnsw<dist_t>::LoadIndex(const string &location) {\n        LOG(LIB_INFO) << \"Loading index from \"<<location;\n        std::ifstream input(location, std::ios::binary);\n        streampos position;\n        \n        //input.seekg(0, std::ios::beg);\n\n        input.read((char*)(&totalElementsStored_), sizeof(size_t)); \n        input.read((char*)(&memoryPerObject_), sizeof(size_t));\n        input.read((char*)&offsetLevel0_, sizeof(size_t));\n        input.read((char*)&offsetData_, sizeof(size_t));\n        input.read((char*)&maxlevel_, sizeof(size_t));\n        input.read((char*)&enterpointId_, sizeof(size_t));\n        input.read((char*)&maxM_, sizeof(size_t));\n        input.read((char*)&maxM0_, sizeof(size_t));\n        input.read((char*)&dist_func_type_, sizeof(size_t));\n        input.read((char*)&searchMethod_, sizeof(searchMethod_));\n\t\t\n        if (dist_func_type_ == 1)\n             fstdistfunc_ = L2SqrSIMD16Ext;\n        else if (dist_func_type_ == 2)\n            fstdistfunc_ = L2SqrSIMDExt;\n        else if (dist_func_type_ == 3)\n            fstdistfunc_ = NormScalarProductSIMD;\n\t\tLOG(LIB_INFO) << \"searchMethod: \" << searchMethod_;\n\n\n  \n//        LOG(LIB_INFO) << input.tellg();\n        LOG(LIB_INFO) << \"Total: \" << totalElementsStored_<< \", Memory per object: \" << memoryPerObject_;\n        size_t data_plus_links0_size = memoryPerObject_*totalElementsStored_;\n        data_level0_memory_ = (char*)malloc(data_plus_links0_size);        \n        input.read(data_level0_memory_, data_plus_links0_size);            \n        linkLists_ = (char**)malloc(sizeof(void*)*totalElementsStored_);\n\n        for (size_t i = 0; i < totalElementsStored_; i++) {\n            unsigned int linkListSize;\n            input.read((char*)&linkListSize, sizeof(unsigned int));\n            position = input.tellg();\n            if (linkListSize == 0) {\n                linkLists_[i] = nullptr;\n            }\n            else {\n                linkLists_[i] = (char *) malloc(linkListSize);\n                input.read(linkLists_[i], linkListSize);\n            }\n\n        }\n        LOG(LIB_INFO) << \"Finished loading index\";\n        visitedlistpool = new VisitedListPool(1, totalElementsStored_);\n      \n        input.close();\n\n    }\n\n\n    \ttemplate <typename dist_t>\n    \tvoid Hnsw<dist_t>::baseSearchAlgorithm(KNNQuery<dist_t>* query) {\n\t\t\tint checks =0 ;\n    \t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n    \t\tunsigned int *massVisited = vl->mass;\n    \t\tunsigned int currentV = vl->curV;\n\n    \t\tHnswNode* provider;\n    \t\tint maxlevel1 = enterpoint_->level;\n    \t\tprovider = enterpoint_;\n    \n    \t\tconst Object* currObj = provider->getData();\n    \n    \t\tdist_t d = query->DistanceObjLeft(currObj);\n\t\t\tchecks ++ ;\n    \t\tdist_t curdist = d;\n    \t\tHnswNode *curNode = provider;\n    \t\tfor (int i = maxlevel1; i > 0; i--) {\n    \t\t\tbool changed = true;\n    \t\t\twhile (changed) {\n    \t\t\t\tchanged = false;\n    \n    \t\t\t\tconst vector<HnswNode*>& neighbor = curNode->getAllFriends(i);\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t}\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n\t\t\t\t\t\tchecks++;\n    \t\t\t\t\tif (d < curdist) {\n    \t\t\t\t\t\tcurdist = d;\n    \t\t\t\t\t\tcurNode = *iter;\n    \t\t\t\t\t\tchanged = true;\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\n    \n    \t\tpriority_queue <HnswNodeDistFarther<dist_t>> candidateQueue; //the set of elements which we can use to evaluate    \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueue1; //The set of closest found elements \n    \n    \t\tHnswNodeDistFarther<dist_t> ev(curdist, curNode);\n    \t\tcandidateQueue.emplace(curdist, curNode);\n    \t\tclosestDistQueue1.emplace(curdist, curNode);\n    \n    \t\tquery->CheckAndAddToResult(curdist, curNode->getData());\n    \t\tmassVisited[curNode->getId()] = currentV;\n    \t\t//visitedQueue.insert(curNode->getId());\n    \n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t// PHASE TWO OF THE SEARCH\n    \t\t// Extraction of the neighborhood to find k nearest neighbors.\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t\n    \t\twhile (!candidateQueue.empty()) {\n    \t\t\t\n    \t\t\tauto iter = candidateQueue.top(); // This one was already compared to the query\n    \t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t//Check condtion to end the search\n    \t\t\tdist_t lowerBound = closestDistQueue1.top().getDistance();\n    \t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\tbreak;\n    \t\t\t}\n    \n    \t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\tcandidateQueue.pop();\n    \n    \t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(0);\n    \n    \t\t\tsize_t curId;\n    \n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t}\n    \t\t\t//calculate distance to each neighbor\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \n    \t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\t\n    \t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t{\n    \t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n\t\t\t\t\t\tchecks ++ ;\n    \t\t\t\t\tif (closestDistQueue1.top().getDistance() > d || closestDistQueue1.size() < ef_) {\n    \t\t\t\t\t\t{\n    \t\t\t\t\t\t\tquery->CheckAndAddToResult(d, currObj);    \n    \t\t\t\t\t\t\tcandidateQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tclosestDistQueue1.emplace(d, *iter);\n    \t\t\t\t\t\t\tif (closestDistQueue1.size() > ef_) {\n    \t\t\t\t\t\t\t\tclosestDistQueue1.pop();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \n    \t\t}\n    \t\tvisitedlistpool->releaseVisitedList(vl);\n\t\t\t//cout << checks << endl;\n    \t}\n        // Experimental search algorithm\n    \ttemplate <typename dist_t>\n    \tvoid Hnsw<dist_t>::listPassingModifiedAlgorithm(KNNQuery<dist_t>* query) {\n\n    \t\tint efSearchL = 4; // This parameters defines the confidence of searches at level higher than zero \n                               // for zero level it is set to ef\n            //Getting the visitedlist\n    \t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n    \t\tunsigned int *massVisited = vl->mass;\n    \t\tunsigned int currentV = vl->curV;\n    \n    \t\tint maxlevel1 = enterpoint_->level;    \n    \n    \t\tconst Object* currObj = enterpoint_->getData();\n    \n    \t\tdist_t d = query->DistanceObjLeft(currObj);\n    \t\tdist_t curdist = d;\n    \t\tHnswNode *curNode = enterpoint_;\n    \n    \n    \t\tpriority_queue <HnswNodeDistFarther<dist_t>> candidateQueue; //the set of elements which we can use to evaluate    \t\t\t\t\t\t\t\t\t\t\t\t\t\t\n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueue= priority_queue <HnswNodeDistCloser<dist_t>>(); //The set of closest found elements \n    \t\tpriority_queue <HnswNodeDistCloser<dist_t>> closestDistQueueCpy = priority_queue <HnswNodeDistCloser<dist_t>>();\n\n    \t\tHnswNodeDistFarther<dist_t> ev(curdist, curNode);\n    \t\tcandidateQueue.emplace(curdist, curNode);\n    \t\tclosestDistQueue.emplace(curdist, curNode);\n\n    \t\tmassVisited[curNode->getId()] = currentV;\n\n    \t\tfor (int i = maxlevel1; i > 0; i--) {\n    \t\t\t\n    \t\t\twhile (!candidateQueue.empty()) {\n    \t\n    \t\t\t\tauto iter = candidateQueue.top(); \n    \t\t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t\t//Check condtion to end the search\n    \t\t\t\tdist_t lowerBound = closestDistQueue.top().getDistance();\n    \t\t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\t\tbreak;\n    \t\t\t\t}\n    \n    \t\t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\t\tcandidateQueue.pop();\n    \n    \t\t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(i);\n    \n    \t\t\t\tsize_t curId;\n    \n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t\t}\n    \t\t\t\t//calculate distance to each neighbor\n    \t\t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {    \n    \t\t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t\t{\n    \t\t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\t\td = query->DistanceObjLeft(currObj);\n                            if (closestDistQueue.top().getDistance() > d || closestDistQueue.size() < efSearchL) {\n                                candidateQueue.emplace(d, *iter);\n                                closestDistQueue.emplace(d, *iter);\n                                if (closestDistQueue.size() > efSearchL) {\n                                    closestDistQueue.pop();\n                                }\n                            }\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \n    \t\t\t}\n                //Updating the bitset key:\n                currentV++;\n                vl->curV++;// not to forget updating in the pool\n    \t\t\tif (currentV == 0) {\n    \t\t\t\tmemset(massVisited, 0, ElList_.size()*sizeof(int));\n    \t\t\t\tcurrentV++;\n                    vl->curV++;// not to forget updating in the pool\n    \t\t\t}\n                candidateQueue = priority_queue <HnswNodeDistFarther<dist_t>>();\n                closestDistQueueCpy = priority_queue <HnswNodeDistCloser<dist_t>>(closestDistQueue);\n    \t\t\tif (i > 1) {    // Passing the closest neighbors to layers higher than zero:\n                    while (closestDistQueueCpy.size() > 0) {\n                        massVisited[closestDistQueueCpy.top().getMSWNodeHier()->getId()] = currentV;\n                        candidateQueue.emplace(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier());                        \n                        closestDistQueueCpy.pop();\n                    }    \t\t\t\t\n    \t\t\t}\n                else {     // Passing the closest neighbors to the 0 zero layer(one has to add also to query):                    \n                    while (closestDistQueueCpy.size() > 0) {\n                        massVisited[closestDistQueueCpy.top().getMSWNodeHier()->getId()] = currentV;\n                        candidateQueue.emplace(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier());\n                        query->CheckAndAddToResult(closestDistQueueCpy.top().getDistance(), closestDistQueueCpy.top().getMSWNodeHier()->getData());\n                        closestDistQueueCpy.pop();\n                    }\n                }\n    \t\t}\n    \t\t\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \t\t// PHASE TWO OF THE SEARCH\n    \t\t// Extraction of the neighborhood to find k nearest neighbors.\n    \t\t////////////////////////////////////////////////////////////////////////////////\n    \n    \n    \t\twhile (!candidateQueue.empty()) {\n    \n    \t\t\tauto iter = candidateQueue.top();\n    \t\t\tconst HnswNodeDistFarther<dist_t>& currEv = iter;\n    \t\t\t//Check condtion to end the search\n    \t\t\tdist_t lowerBound = closestDistQueue.top().getDistance();\n    \t\t\tif (currEv.getDistance() > lowerBound) {\n    \t\t\t\tbreak;\n    \t\t\t}\n    \n    \t\t\tHnswNode *initNode = currEv.getMSWNodeHier();\n    \t\t\tcandidateQueue.pop();\n    \n    \t\t\tconst vector<HnswNode*>& neighbor = (initNode)->getAllFriends(0);\n    \n    \t\t\tsize_t curId;\n    \n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \t\t\t\t_mm_prefetch((char *)(*iter)->getData(), _MM_HINT_T0);\n    \t\t\t\t_mm_prefetch((char *)(massVisited + (*iter)->getId()), _MM_HINT_T0);\n    \t\t\t}\n    \t\t\t//calculate distance to each neighbor\n    \t\t\tfor (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter) {\n    \n    \t\t\t\tcurId = (*iter)->getId();\n    \t\t\t\tif (!(massVisited[curId] == currentV))\n    \t\t\t\t{\n    \t\t\t\t\tmassVisited[curId] = currentV;\n    \t\t\t\t\tcurrObj = (*iter)->getData();\n    \t\t\t\t\td = query->DistanceObjLeft(currObj);\n    \t\t\t\t\tif (closestDistQueue.top().getDistance() > d || closestDistQueue.size() < ef_) {\n    \t\t\t\t\t\t{\n    \t\t\t\t\t\t\tquery->CheckAndAddToResult(d, currObj);\n    \t\t\t\t\t\t\tcandidateQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tclosestDistQueue.emplace(d, *iter);\n    \t\t\t\t\t\t\tif (closestDistQueue.size() > ef_) {\n    \t\t\t\t\t\t\t\tclosestDistQueue.pop();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \n    \t\t}\n    \t\tvisitedlistpool->releaseVisitedList(vl);\n    \n    \t}\n\n\n    template class Hnsw<float>;\n    template class Hnsw<double>;\n    template class Hnsw<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib\n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n/*\n*\n* A Hierarchical Navigable Small World (HNSW) approach.\n*\n* The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n* \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin\n* This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n*\n*\n*/\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/hnsw.h\"\n\n#include <vector>\n#include <limits>\n#include <algorithm>    // std::min\n#if defined(__GNUC__)\n#define PORTABLE_ALIGN16 __attribute__((aligned(16)))\n#else\n#define PORTABLE_ALIGN16 __declspec(align(16))\n#endif\n//#define DIST_CALC \nnamespace similarity {\n\tfloat L2SqrSIMD16Ext(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n\n\t\t//size_t qty4 = qty >> 2;\n\t\tsize_t qty16 = qty >> 4;\n\n\t\tconst float* pEnd1 = pVect1 + (qty16 << 4);\n\t\t//const float* pEnd2 = pVect1 + (qty4 << 2);\n\t\t//const float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  diff, v1, v2;\n\t\t__m128  sum = _mm_set1_ps(0);\n\n\t\twhile (pVect1 < pEnd1) {\n\t\t\t_mm_prefetch((char*)(pVect2 + 16), _MM_HINT_T0);\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\t/*while (pVect1 < pEnd2) {\n\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\tdiff = _mm_sub_ps(v1, v2);\n\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}*/\n\n\t\t//float PORTABLE_ALIGN16 TmpRes[4];\n\n\t\t_mm_store_ps(TmpRes, sum);\n\t\tfloat res = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n\t\t/*while (pVect1 < pEnd3) {\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += diff * diff;\n\t\t}*/\n\n\t\treturn sqrt(res);\n\t};\n\tfloat L2SqrSIMDExt(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n\n\t\tsize_t qty4 = qty >> 2;\n\t\tsize_t qty16 = qty >> 4;\n\n\t\tconst float* pEnd1 = pVect1 + (qty16 << 4);\n\t\tconst float* pEnd2 = pVect1 + (qty4 << 2);\n\t\tconst float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  diff, v1, v2;\n\t\t__m128  sum = _mm_set1_ps(0);\n\n\t\twhile (pVect1 < pEnd1) {\n\t\t\t_mm_prefetch((char*)(pVect2 + 16), _MM_HINT_T0);\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\tdiff = _mm_sub_ps(v1, v2);\n\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\t//float PORTABLE_ALIGN16 TmpRes[4];\n\n\t\t_mm_store_ps(TmpRes, sum);\n\t\tfloat res = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n\t\twhile (pVect1 < pEnd3) {\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += diff * diff;\n\t\t}\n\n\t\treturn sqrt(res);\n\t};\n\tfloat ScalarProductSIMD(const float* __restrict pVect1, const float*  __restrict pVect2, size_t qty, float  *  __restrict TmpRes) {\n\t\tsize_t qty16 = qty / 16;\n\t\tsize_t qty4 = qty / 4;\n\n\t\tconst float* pEnd1 = pVect1 + 16 * qty16;\n\t\tconst float* pEnd2 = pVect1 + 4 * qty4;\n\t\t//const float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  v1, v2;\n\t\t__m128  sum_prod = _mm_set1_ps(0);\n\t\t//__m128  sum_square1 = sum_prod;\n\t\t//__m128  sum_square2 = sum_prod;\n\n\t\twhile (pVect1 < pEnd1) {\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\t\t}\n\n\n\t\t_mm_store_ps(TmpRes, sum_prod);\n\t\tfloat sum = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t/*while (pVect1 < pEnd3) {\n\t\t\t//cout << \"!!!\";\n\t\t\tsum += (*pVect1) * (*pVect2);\n\n\t\t\t++pVect1; ++pVect2;\n\t\t}*/\n\t\t//return -sum;\n\n\t\treturn std::max(0.0f, 1 - std::max(float(-1), std::min(float(1), sum)));\n\t};\n\n\tfloat NormScalarProductSIMD(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n        \n\t\tsize_t qty16 = qty / 16;\n\t\tsize_t qty4 = qty / 4;\n\t\t\n\t\tconst float* pEnd1 = pVect1 + 16 * qty16;\n\t\tconst float* pEnd2 = pVect1 + 4 * qty4;\n\t\tconst float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  v1, v2;\n\t\t__m128  sum_prod = _mm_set1_ps(0);\n\t\t__m128  sum_square1 = sum_prod;\n\t\t__m128  sum_square2 = sum_prod;\n\n\t\twhile (pVect1 < pEnd1) {\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\t\t}\n\t\t\n\n\t\t_mm_store_ps(TmpRes, sum_prod);\n\t\tfloat sum = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t_mm_store_ps(TmpRes, sum_square1);\n\t\tfloat norm1 = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t_mm_store_ps(TmpRes, sum_square2);\n\t\tfloat norm2 = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\twhile (pVect1 < pEnd3) {\n\t\t\tsum += (*pVect1) * (*pVect2);\n\t\t\tnorm1 += (*pVect1) * (*pVect1);\n\t\t\tnorm2 += (*pVect2) * (*pVect2);\n\n\t\t\t++pVect1; ++pVect2;\n\t\t}\n\n\t\t    const float eps = numeric_limits<float>::min() * 2;\n\n    if (norm1 < eps) { /* \n                        * This shouldn't normally happen for this space, but \n                        * if it does, we don't want to get NANs \n                        */\n      if (norm2 < eps) return 1;\n      return 0;\n    } \n\t\treturn std::max(0.0f, 1-std::max(float(-1), std::min(float(1), sum / sqrt(norm1*norm2))));\n\t};\n\t\n\n\t/****************************************************************\n\n\tUNIVERSAL FUNCTION FOR CUSTOM MADE\n\n\t****************************************************************/\n\ttemplate <typename dist_t>\n\tvoid Hnsw<dist_t>::SearchL2Custom(KNNQuery<dist_t>* query) {\n\n\t\tfloat *pVectq = (float *)((char *)query->QueryObject()->data());\n\t\tfloat PORTABLE_ALIGN16 TmpRes[4];\n\t\tsize_t qty = query->QueryObject()->datalength() >> 2;\n\n\t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n\t\tunsigned int *massVisited = vl->mass;\n\t\tunsigned int currentV = vl->curV;\n\n\n\n\t\tint maxlevel1 = maxlevel_;\n        int curNodeNum = enterpointId_;\t\t\n\t\tdist_t curdist = (fstdistfunc_(pVectq, (float *)(data_level0_memory_ + enterpointId_*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\t\t\n\n\t\tfor (int i = maxlevel1; i > 0; i--) {\n\t\t\tbool changed = true;\n\t\t\twhile (changed) {\n\t\t\t\tchanged = false;\t\t\t\t\n\t\t\t\tint  *data = (int *)(linkLists_[curNodeNum] + (maxM_ + 1)*(i - 1)*sizeof(int));\n\t\t\t\tint size = *data;\n\t\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + j))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t\t}\n#ifdef DIST_CALC\n\t\t\t\tquery->distance_computations_ += size;\n#endif\n\n\t\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\t\tint tnum = *(data + j);\n\n                    dist_t d = (fstdistfunc_(pVectq, (float *)(data_level0_memory_ + tnum*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\t\t\t\t\tif (d < curdist) {\n\t\t\t\t\t\tcurdist = d;\n\t\t\t\t\t\tcurNodeNum = tnum;\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t}\n\t\t\n\t\tpriority_queue <EvaluatedMSWNodeInt<dist_t>> candidateQueuei; //the set of elements which we can use to evaluate\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\tpriority_queue <EvaluatedMSWNodeInt<dist_t>> closestDistQueuei; //The set of closest found elements \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//EvaluatedMSWNodeInt<dist_t> evi(curdist, curNodeNum);\n\t\tcandidateQueuei.emplace(-curdist, curNodeNum);\n\n\t\tclosestDistQueuei.emplace(curdist, curNodeNum);\n\n\t\tquery->CheckAndAddToResult(curdist, new Object(data_level0_memory_ + (curNodeNum)*memoryPerObject_ + offsetData_));\n\t\tmassVisited[curNodeNum] = currentV;\n\n\t\twhile (!candidateQueuei.empty()) {\n\n\t\t\tEvaluatedMSWNodeInt<dist_t> currEv = candidateQueuei.top(); // This one was already compared to the query\n\n\t\t\tdist_t lowerBound = closestDistQueuei.top().getDistance();\n\t\t\tif ((-currEv.getDistance()) > lowerBound) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcandidateQueuei.pop();\n\t\t\tcurNodeNum = currEv.element;\n\t\t\tint  *data = (int *)(data_level0_memory_ + curNodeNum*memoryPerObject_ + offsetLevel0_);\n\t\t\tint size = *data;\n\t\t\t_mm_prefetch((char *)(massVisited + *(data + 1)), _MM_HINT_T0);\n\t\t\t_mm_prefetch((char *)(massVisited + *(data + 1) + 64), _MM_HINT_T0);\n\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t_mm_prefetch((char *)(data + 2), _MM_HINT_T0);\n\n\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\tint tnum = *(data + j);\n\t\t\t\t_mm_prefetch((char *)(massVisited + *(data + j + 1)), _MM_HINT_T0);\n\t\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + j + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t\tif (!(massVisited[tnum] == currentV))\n\t\t\t\t{\n\n#ifdef DIST_CALC\n\t\t\t\t\tquery->distance_computations_++;\n#endif\n\t\t\t\t\tmassVisited[tnum] = currentV;\n\t\t\t\t\tchar *currObj1 = (data_level0_memory_ + tnum*memoryPerObject_ + offsetData_);\n                    dist_t d = (fstdistfunc_(pVectq, (float *)(currObj1 + 16), qty, TmpRes));\n\t\t\t\t\tif (closestDistQueuei.top().getDistance() > d || closestDistQueuei.size() < ef_) {\n\t\t\t\t\t\tcandidateQueuei.emplace(-d, tnum);\n\t\t\t\t\t\t_mm_prefetch(data_level0_memory_ + candidateQueuei.top().element*memoryPerObject_ + offsetLevel0_, _MM_HINT_T0);\n\t\t\t\t\t\tquery->CheckAndAddToResult(d, new Object(currObj1));\n\t\t\t\t\t\tclosestDistQueuei.emplace(d, tnum);\n\n\t\t\t\t\t\tif (closestDistQueuei.size() > ef_) {\n\t\t\t\t\t\t\tclosestDistQueuei.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvisitedlistpool->releaseVisitedList(vl);\n\n\t}\n\t/****************************************************************\n\n\tSearch function for cosine\n\n\t****************************************************************/\n\ttemplate <typename dist_t>\n\tvoid Hnsw<dist_t>::SearchCosineNormalized(KNNQuery<dist_t>* query) {\n\t\t\n\t\tfloat *pVectq = (float *)((char *)query->QueryObject()->data());\n        float PORTABLE_ALIGN16 TmpRes[4];\n        size_t qty = query->QueryObject()->datalength() >> 2;\n\n\n        float *v = pVectq;\n        float sum = 0;\n        for (int i = 0; i < qty; i++) {\n            sum += v[i] * v[i];\n        }\n        if (sum != 0.0) {\n            sum = 1 / sqrt(sum);\n            for (int i = 0; i < qty; i++) {\n                v[i] *= sum;\n            }\n        }\n\n\n\n\n\t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n\t\tunsigned int *massVisited = vl->mass;\n\t\tunsigned int currentV = vl->curV;\n\n\n        int maxlevel1 = maxlevel_;\n        int curNodeNum = enterpointId_;\n        dist_t curdist = (ScalarProductSIMD(pVectq, (float *)(data_level0_memory_ + enterpointId_*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\n\n        for (int i = maxlevel1; i > 0; i--) {\n            bool changed = true;\n            while (changed) {\n                changed = false;\n                int  *data = (int *)(linkLists_[curNodeNum] + (maxM_ + 1)*(i - 1)*sizeof(int));\n                int size = *data;\n                for (int j = 1; j <= size; j++) {\n                    _mm_prefetch(data_level0_memory_ + (*(data + j))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n                }\n#ifdef DIST_CALC\n                query->distance_computations_ += size;\n#endif\n\n                for (int j = 1; j <= size; j++) {\n                    int tnum = *(data + j);\n\n                    dist_t d = (ScalarProductSIMD(pVectq, (float *)(data_level0_memory_ + tnum*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n                    if (d < curdist) {\n                        curdist = d;\n                        curNodeNum = tnum;\n                        changed = true;\n                    }\n                }\n\n\n            }\n        }\n\n        priority_queue <EvaluatedMSWNodeInt<dist_t>> candidateQueuei; //the set of elements which we can use to evaluate\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n        priority_queue <EvaluatedMSWNodeInt<dist_t>> closestDistQueuei; //The set of closest found elements \n                                                                        //EvaluatedMSWNodeInt<dist_t> evi(curdist, curNodeNum);\n        candidateQueuei.emplace(-curdist, curNodeNum);\n\n        closestDistQueuei.emplace(curdist, curNodeNum);\n\n        query->CheckAndAddToResult(curdist, new Object(data_level0_memory_ + (curNodeNum)*memoryPerObject_ + offsetData_));\n        massVisited[curNodeNum] = currentV;\n\n        while (!candidateQueuei.empty()) {\n\n            EvaluatedMSWNodeInt<dist_t> currEv = candidateQueuei.top(); // This one was already compared to the query\n\n            dist_t lowerBound = closestDistQueuei.top().getDistance();\n            if ((-currEv.getDistance()) > lowerBound) {\n                break;\n            }\n\n            candidateQueuei.pop();\n            curNodeNum = currEv.element;\n            int  *data = (int *)(data_level0_memory_ + curNodeNum*memoryPerObject_ + offsetLevel0_);\n            int size = *data;\n            _mm_prefetch((char *)(massVisited + *(data + 1)), _MM_HINT_T0);\n            _mm_prefetch((char *)(massVisited + *(data + 1) + 64), _MM_HINT_T0);\n            _mm_prefetch(data_level0_memory_ + (*(data + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n            _mm_prefetch((char *)(data + 2), _MM_HINT_T0);\n\n            for (int j = 1; j <= size; j++) {\n                int tnum = *(data + j);\n                _mm_prefetch((char *)(massVisited + *(data + j + 1)), _MM_HINT_T0);\n                _mm_prefetch(data_level0_memory_ + (*(data + j + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n                if (!(massVisited[tnum] == currentV))\n                {\n\n#ifdef DIST_CALC\n                    query->distance_computations_++;\n#endif\n                    massVisited[tnum] = currentV;\n                    char *currObj1 = (data_level0_memory_ + tnum*memoryPerObject_ + offsetData_);\n                    dist_t d = (ScalarProductSIMD(pVectq, (float *)(currObj1 + 16), qty, TmpRes));\n                    if (closestDistQueuei.top().getDistance() > d || closestDistQueuei.size() < ef_) {\n                        candidateQueuei.emplace(-d, tnum);\n                        _mm_prefetch(data_level0_memory_ + candidateQueuei.top().element*memoryPerObject_ + offsetLevel0_, _MM_HINT_T0);\n                        query->CheckAndAddToResult(d, new Object(currObj1));\n                        closestDistQueuei.emplace(d, tnum);\n\n                        if (closestDistQueuei.size() > ef_) {\n                            closestDistQueuei.pop();\n                        }\n\n                    }\n\n                }\n            }\n        }\n        visitedlistpool->releaseVisitedList(vl);\n\n\n\t}\n\t\n\ttemplate class Hnsw<float>;\n\ttemplate class Hnsw<double>;\n\ttemplate class Hnsw<int>;\n\t\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/hnsw_distfunc_opt.cc~",
    "content": "/**\n* Non-metric Space Library\n*\n* Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n* With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n*\n* For the complete list of contributors and further details see:\n* https://github.com/searchivarius/NonMetricSpaceLib\n*\n* Copyright (c) 2014\n*\n* This code is released under the\n* Apache License Version 2.0 http://www.apache.org/licenses/.\n*\n*/\n\n/*\n*\n* A Hierarchical Navigable Small World (HNSW) approach.\n*\n* The main publication is (available on arxiv: http://arxiv.org/abs/1603.09320):\n* \"Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs\" by Yu. A. Malkov, D. A. Yashunin\n* This code was contributed by Yu. A. Malkov. It also was used in tests from the paper.\n*\n*\n*/\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/hnsw.h\"\n\n#include <vector>\n#include <limits>\n#include <algorithm>    // std::min\n#if defined(__GNUC__)\n#define PORTABLE_ALIGN16 __attribute__((aligned(16)))\n#else\n#define PORTABLE_ALIGN16 __declspec(align(16))\n#endif\n//#define DIST_CALC \nnamespace similarity {\n\tfloat L2SqrSIMD16Ext(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n\n\t\t//size_t qty4 = qty >> 2;\n\t\tsize_t qty16 = qty >> 4;\n\n\t\tconst float* pEnd1 = pVect1 + (qty16 << 4);\n\t\t//const float* pEnd2 = pVect1 + (qty4 << 2);\n\t\t//const float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  diff, v1, v2;\n\t\t__m128  sum = _mm_set1_ps(0);\n\n\t\twhile (pVect1 < pEnd1) {\n\t\t\t_mm_prefetch((char*)(pVect2 + 16), _MM_HINT_T0);\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\t/*while (pVect1 < pEnd2) {\n\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\tdiff = _mm_sub_ps(v1, v2);\n\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}*/\n\n\t\t//float PORTABLE_ALIGN16 TmpRes[4];\n\n\t\t_mm_store_ps(TmpRes, sum);\n\t\tfloat res = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n\t\t/*while (pVect1 < pEnd3) {\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += diff * diff;\n\t\t}*/\n\n\t\treturn sqrt(res);\n\t};\n\tfloat L2SqrSIMDExt(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n\n\t\tsize_t qty4 = qty >> 2;\n\t\tsize_t qty16 = qty >> 4;\n\n\t\tconst float* pEnd1 = pVect1 + (qty16 << 4);\n\t\tconst float* pEnd2 = pVect1 + (qty4 << 2);\n\t\tconst float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  diff, v1, v2;\n\t\t__m128  sum = _mm_set1_ps(0);\n\n\t\twhile (pVect1 < pEnd1) {\n\t\t\t_mm_prefetch((char*)(pVect2 + 16), _MM_HINT_T0);\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tdiff = _mm_sub_ps(v1, v2);\n\t\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\tdiff = _mm_sub_ps(v1, v2);\n\t\tsum = _mm_add_ps(sum, _mm_mul_ps(diff, diff));\n\t\t}\n\n\t\t//float PORTABLE_ALIGN16 TmpRes[4];\n\n\t\t_mm_store_ps(TmpRes, sum);\n\t\tfloat res = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\n\t\twhile (pVect1 < pEnd3) {\n\t\tfloat diff = *pVect1++ - *pVect2++;\n\t\tres += diff * diff;\n\t\t}\n\n\t\treturn sqrt(res);\n\t};\n\tfloat ScalarProductSIMD(const float* __restrict pVect1, const float*  __restrict pVect2, size_t qty, float  *  __restrict TmpRes) {\n\t\tsize_t qty16 = qty / 16;\n\t\tsize_t qty4 = qty / 4;\n\n\t\tconst float* pEnd1 = pVect1 + 16 * qty16;\n\t\tconst float* pEnd2 = pVect1 + 4 * qty4;\n\t\t//const float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  v1, v2;\n\t\t__m128  sum_prod = _mm_set1_ps(0);\n\t\t//__m128  sum_square1 = sum_prod;\n\t\t//__m128  sum_square2 = sum_prod;\n\n\t\twhile (pVect1 < pEnd1) {\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\n\t\t}\n\n\n\t\t_mm_store_ps(TmpRes, sum_prod);\n\t\tfloat sum = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t/*while (pVect1 < pEnd3) {\n\t\t\t//cout << \"!!!\";\n\t\t\tsum += (*pVect1) * (*pVect2);\n\n\t\t\t++pVect1; ++pVect2;\n\t\t}*/\n\t\t//return -sum;\n\n\t\treturn std::max(0.0f, 1 - std::max(float(-1), std::min(float(1), sum)));\n\t};\n\n\tfloat NormScalarProductSIMD(const float* pVect1, const float* pVect2, size_t &qty, float *TmpRes) {\n        \n\t\tsize_t qty16 = qty / 16;\n\t\tsize_t qty4 = qty / 4;\n\t\t\n\t\tconst float* pEnd1 = pVect1 + 16 * qty16;\n\t\tconst float* pEnd2 = pVect1 + 4 * qty4;\n\t\tconst float* pEnd3 = pVect1 + qty;\n\n\t\t__m128  v1, v2;\n\t\t__m128  sum_prod = _mm_set1_ps(0);\n\t\t__m128  sum_square1 = sum_prod;\n\t\t__m128  sum_square2 = sum_prod;\n\n\t\twhile (pVect1 < pEnd1) {\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\t\t}\n\n\t\twhile (pVect1 < pEnd2) {\n\t\t\tv1 = _mm_loadu_ps(pVect1); pVect1 += 4;\n\t\t\tv2 = _mm_loadu_ps(pVect2); pVect2 += 4;\n\t\t\tsum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2));\n\t\t\tsum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1));\n\t\t\tsum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2));\n\t\t}\n\t\t\n\n\t\t_mm_store_ps(TmpRes, sum_prod);\n\t\tfloat sum = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t_mm_store_ps(TmpRes, sum_square1);\n\t\tfloat norm1 = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\t_mm_store_ps(TmpRes, sum_square2);\n\t\tfloat norm2 = TmpRes[0] + TmpRes[1] + TmpRes[2] + TmpRes[3];\n\t\twhile (pVect1 < pEnd3) {\n\t\t\tsum += (*pVect1) * (*pVect2);\n\t\t\tnorm1 += (*pVect1) * (*pVect1);\n\t\t\tnorm2 += (*pVect2) * (*pVect2);\n\n\t\t\t++pVect1; ++pVect2;\n\t\t}\n\n\t\t    const float eps = numeric_limits<float>::min() * 2;\n\n    if (norm1 < eps) { /* \n                        * This shouldn't normally happen for this space, but \n                        * if it does, we don't want to get NANs \n                        */\n      if (norm2 < eps) return 1;\n      return 0;\n    } \n\t\treturn std::max(0.0f, 1-std::max(float(-1), std::min(float(1), sum / sqrt(norm1*norm2))));\n\t};\n\t\n\n\t/****************************************************************\n\n\tUNIVERSAL FUNCTION FOR CUSTOM MADE\n\n\t****************************************************************/\n\ttemplate <typename dist_t>\n\tvoid Hnsw<dist_t>::SearchL2Custom(KNNQuery<dist_t>* query) {\n\n\t\tcerr << \"search L2 custom \" <<endl;\n\t\tfloat *pVectq = (float *)((char *)query->QueryObject()->data());\n\t\tfloat PORTABLE_ALIGN16 TmpRes[4];\n\t\tsize_t qty = query->QueryObject()->datalength() >> 2;\n\n\t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n\t\tunsigned int *massVisited = vl->mass;\n\t\tunsigned int currentV = vl->curV;\n\n\n\n\t\tint maxlevel1 = maxlevel_;\n        int curNodeNum = enterpointId_;\t\t\n\t\tdist_t curdist = (fstdistfunc_(pVectq, (float *)(data_level0_memory_ + enterpointId_*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\t\t\n\n\t\tfor (int i = maxlevel1; i > 0; i--) {\n\t\t\tbool changed = true;\n\t\t\twhile (changed) {\n\t\t\t\tchanged = false;\t\t\t\t\n\t\t\t\tint  *data = (int *)(linkLists_[curNodeNum] + (maxM_ + 1)*(i - 1)*sizeof(int));\n\t\t\t\tint size = *data;\n\t\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + j))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t\t}\n#ifdef DIST_CALC\n\t\t\t\tquery->distance_computations_ += size;\n#endif\n\n\t\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\t\tint tnum = *(data + j);\n\n                    dist_t d = (fstdistfunc_(pVectq, (float *)(data_level0_memory_ + tnum*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\t\t\t\t\tif (d < curdist) {\n\t\t\t\t\t\tcurdist = d;\n\t\t\t\t\t\tcurNodeNum = tnum;\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t}\n\t\t\n\t\tpriority_queue <EvaluatedMSWNodeInt<dist_t>> candidateQueuei; //the set of elements which we can use to evaluate\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\tpriority_queue <EvaluatedMSWNodeInt<dist_t>> closestDistQueuei; //The set of closest found elements \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//EvaluatedMSWNodeInt<dist_t> evi(curdist, curNodeNum);\n\t\tcandidateQueuei.emplace(-curdist, curNodeNum);\n\n\t\tclosestDistQueuei.emplace(curdist, curNodeNum);\n\n\t\tquery->CheckAndAddToResult(curdist, new Object(data_level0_memory_ + (curNodeNum)*memoryPerObject_ + offsetData_));\n\t\tmassVisited[curNodeNum] = currentV;\n\n\t\twhile (!candidateQueuei.empty()) {\n\n\t\t\tEvaluatedMSWNodeInt<dist_t> currEv = candidateQueuei.top(); // This one was already compared to the query\n\n\t\t\tdist_t lowerBound = closestDistQueuei.top().getDistance();\n\t\t\tif ((-currEv.getDistance()) > lowerBound) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcandidateQueuei.pop();\n\t\t\tcurNodeNum = currEv.element;\n\t\t\tint  *data = (int *)(data_level0_memory_ + curNodeNum*memoryPerObject_ + offsetLevel0_);\n\t\t\tint size = *data;\n\t\t\t_mm_prefetch((char *)(massVisited + *(data + 1)), _MM_HINT_T0);\n\t\t\t_mm_prefetch((char *)(massVisited + *(data + 1) + 64), _MM_HINT_T0);\n\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t_mm_prefetch((char *)(data + 2), _MM_HINT_T0);\n\n\t\t\tfor (int j = 1; j <= size; j++) {\n\t\t\t\tint tnum = *(data + j);\n\t\t\t\t_mm_prefetch((char *)(massVisited + *(data + j + 1)), _MM_HINT_T0);\n\t\t\t\t_mm_prefetch(data_level0_memory_ + (*(data + j + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n\t\t\t\tif (!(massVisited[tnum] == currentV))\n\t\t\t\t{\n\n#ifdef DIST_CALC\n\t\t\t\t\tquery->distance_computations_++;\n#endif\n\t\t\t\t\tmassVisited[tnum] = currentV;\n\t\t\t\t\tchar *currObj1 = (data_level0_memory_ + tnum*memoryPerObject_ + offsetData_);\n                    dist_t d = (fstdistfunc_(pVectq, (float *)(currObj1 + 16), qty, TmpRes));\n\t\t\t\t\tif (closestDistQueuei.top().getDistance() > d || closestDistQueuei.size() < ef_) {\n\t\t\t\t\t\tcandidateQueuei.emplace(-d, tnum);\n\t\t\t\t\t\t_mm_prefetch(data_level0_memory_ + candidateQueuei.top().element*memoryPerObject_ + offsetLevel0_, _MM_HINT_T0);\n\t\t\t\t\t\tquery->CheckAndAddToResult(d, new Object(currObj1));\n\t\t\t\t\t\tclosestDistQueuei.emplace(d, tnum);\n\n\t\t\t\t\t\tif (closestDistQueuei.size() > ef_) {\n\t\t\t\t\t\t\tclosestDistQueuei.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvisitedlistpool->releaseVisitedList(vl);\n\n\t}\n\t/****************************************************************\n\n\tSearch function for cosine\n\n\t****************************************************************/\n\ttemplate <typename dist_t>\n\tvoid Hnsw<dist_t>::SearchCosineNormalized(KNNQuery<dist_t>* query) {\n\t\t\n\t\tfloat *pVectq = (float *)((char *)query->QueryObject()->data());\n        float PORTABLE_ALIGN16 TmpRes[4];\n        size_t qty = query->QueryObject()->datalength() >> 2;\n\n\n        float *v = pVectq;\n        float sum = 0;\n        for (int i = 0; i < qty; i++) {\n            sum += v[i] * v[i];\n        }\n        if (sum != 0.0) {\n            sum = 1 / sqrt(sum);\n            for (int i = 0; i < qty; i++) {\n                v[i] *= sum;\n            }\n        }\n\n\n\n\n\t\tVisitedList * vl = visitedlistpool->getFreeVisitedList();\n\t\tunsigned int *massVisited = vl->mass;\n\t\tunsigned int currentV = vl->curV;\n\n\n        int maxlevel1 = maxlevel_;\n        int curNodeNum = enterpointId_;\n        dist_t curdist = (ScalarProductSIMD(pVectq, (float *)(data_level0_memory_ + enterpointId_*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n\n\n        for (int i = maxlevel1; i > 0; i--) {\n            bool changed = true;\n            while (changed) {\n                changed = false;\n                int  *data = (int *)(linkLists_[curNodeNum] + (maxM_ + 1)*(i - 1)*sizeof(int));\n                int size = *data;\n                for (int j = 1; j <= size; j++) {\n                    _mm_prefetch(data_level0_memory_ + (*(data + j))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n                }\n#ifdef DIST_CALC\n                query->distance_computations_ += size;\n#endif\n\n                for (int j = 1; j <= size; j++) {\n                    int tnum = *(data + j);\n\n                    dist_t d = (ScalarProductSIMD(pVectq, (float *)(data_level0_memory_ + tnum*memoryPerObject_ + offsetData_ + 16), qty, TmpRes));\n                    if (d < curdist) {\n                        curdist = d;\n                        curNodeNum = tnum;\n                        changed = true;\n                    }\n                }\n\n\n            }\n        }\n\n        priority_queue <EvaluatedMSWNodeInt<dist_t>> candidateQueuei; //the set of elements which we can use to evaluate\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n        priority_queue <EvaluatedMSWNodeInt<dist_t>> closestDistQueuei; //The set of closest found elements \n                                                                        //EvaluatedMSWNodeInt<dist_t> evi(curdist, curNodeNum);\n        candidateQueuei.emplace(-curdist, curNodeNum);\n\n        closestDistQueuei.emplace(curdist, curNodeNum);\n\n        query->CheckAndAddToResult(curdist, new Object(data_level0_memory_ + (curNodeNum)*memoryPerObject_ + offsetData_));\n        massVisited[curNodeNum] = currentV;\n\n        while (!candidateQueuei.empty()) {\n\n            EvaluatedMSWNodeInt<dist_t> currEv = candidateQueuei.top(); // This one was already compared to the query\n\n            dist_t lowerBound = closestDistQueuei.top().getDistance();\n            if ((-currEv.getDistance()) > lowerBound) {\n                break;\n            }\n\n            candidateQueuei.pop();\n            curNodeNum = currEv.element;\n            int  *data = (int *)(data_level0_memory_ + curNodeNum*memoryPerObject_ + offsetLevel0_);\n            int size = *data;\n            _mm_prefetch((char *)(massVisited + *(data + 1)), _MM_HINT_T0);\n            _mm_prefetch((char *)(massVisited + *(data + 1) + 64), _MM_HINT_T0);\n            _mm_prefetch(data_level0_memory_ + (*(data + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n            _mm_prefetch((char *)(data + 2), _MM_HINT_T0);\n\n            for (int j = 1; j <= size; j++) {\n                int tnum = *(data + j);\n                _mm_prefetch((char *)(massVisited + *(data + j + 1)), _MM_HINT_T0);\n                _mm_prefetch(data_level0_memory_ + (*(data + j + 1))*memoryPerObject_ + offsetData_, _MM_HINT_T0);\n                if (!(massVisited[tnum] == currentV))\n                {\n\n#ifdef DIST_CALC\n                    query->distance_computations_++;\n#endif\n                    massVisited[tnum] = currentV;\n                    char *currObj1 = (data_level0_memory_ + tnum*memoryPerObject_ + offsetData_);\n                    dist_t d = (ScalarProductSIMD(pVectq, (float *)(currObj1 + 16), qty, TmpRes));\n                    if (closestDistQueuei.top().getDistance() > d || closestDistQueuei.size() < ef_) {\n                        candidateQueuei.emplace(-d, tnum);\n                        _mm_prefetch(data_level0_memory_ + candidateQueuei.top().element*memoryPerObject_ + offsetLevel0_, _MM_HINT_T0);\n                        query->CheckAndAddToResult(d, new Object(currObj1));\n                        closestDistQueuei.emplace(d, tnum);\n\n                        if (closestDistQueuei.size() > ef_) {\n                            closestDistQueuei.pop();\n                        }\n\n                    }\n\n                }\n            }\n        }\n        visitedlistpool->releaseVisitedList(vl);\n\n\n\t}\n\t\n\ttemplate class Hnsw<float>;\n\ttemplate class Hnsw<double>;\n\ttemplate class Hnsw<int>;\n\t\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/list_clusters.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"method/list_clusters.h\"\n#include \"utils.h\"\n#include \"logging.h\"\n\n#include <queue>\n#include <utility>\n\nnamespace similarity {\n\nusing std::priority_queue;\nusing std::pair;\nusing std::make_pair;\n\ntemplate <typename dist_t>\nusing DistDistObjectTuple = std::tuple<dist_t, dist_t, const Object*>;\n\ntemplate <typename dist_t>\nstruct DistDistObjectTupleAscComparator {\n  bool operator()(const DistDistObjectTuple<dist_t>& x,\n                  const DistDistObjectTuple<dist_t>& y) const {\n    return std::get<0>(x) < std::get<0>(y);\n  }\n};\n    \ntemplate <typename dist_t>\nvoid \nListClusters<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  pmgr.GetParamOptional(\"maxLeavesToVisit\", MaxLeavesToVisit_, FAKE_MAX_LEAVES_TO_VISIT);\n  LOG(LIB_INFO) << \"Set list of clusters query-time parameters:\";\n  LOG(LIB_INFO) << \"maxLeavesToVisit=\" << MaxLeavesToVisit_;\n  pmgr.CheckUnused();\n}\n\n\ntemplate <typename dist_t>\nListClusters<dist_t>::ListClusters(\n    const Space<dist_t>& space,\n    const ObjectVector& data) : space_(space), data_(data) { }\n\ntemplate <typename dist_t>\nvoid ListClusters<dist_t>::CreateIndex(const AnyParams& IndexParams) \n{\n  AnyParamManager pmgr(IndexParams);\n\n  string sVal; \n\n  pmgr.GetParamOptional(\"strategy\", sVal, \"random\");\n\n  if (sVal == \"random\") {\n    Strategy_ =  ListClustersStrategy::kRandom;\n  } else if (sVal == \"closestPrevCenter\") {\n    Strategy_ = ListClustersStrategy::kClosestPrevCenter;\n  } else if (sVal == \"farthestPrevCenter\") {\n    Strategy_ = ListClustersStrategy::kFarthestPrevCenter;\n  } else if (sVal == \"minSumDistPrevCenters\") {\n    Strategy_ = ListClustersStrategy::kMinSumDistPrevCenters;\n  } else if (sVal == \"maxSumDistPrevCenters\") {\n    Strategy_ = ListClustersStrategy::kMaxSumDistPrevCenters;\n  } else {\n    PREPARE_RUNTIME_ERR(err) << \"Incorrect value :'\" << sVal << \"' for parameter strategy \";\n    THROW_RUNTIME_ERR(err);\n  }\n\n\n  pmgr.GetParamOptional(\"useBucketSize\", UseBucketSize_, true);\n  pmgr.GetParamOptional(\"bucketSize\",    BucketSize_,    50);\n  pmgr.GetParamOptional(\"radius\",        Radius_,        1);\n  pmgr.GetParamOptional(\"chunkBucket\",   ChunkBucket_,   true);\n\n  pmgr.CheckUnused();\n\n  this->ResetQueryTimeParams();\n\n  // <distance to previous centers, object>\n  DistObjectPairVector<dist_t> remaining;\n  for (const auto& object : data_) {\n    remaining.push_back(std::make_pair(0, object));\n  }\n\n  while (!remaining.empty()) {\n    const Object* center = SelectNextCenter(remaining, Strategy_);\n    Cluster* new_cluster = new Cluster(center);\n    cluster_list_.push_back(new_cluster);\n\n    if (remaining.size() == 1) {\n      break;\n    }\n\n    DistObjectPairVector<dist_t> outside;\n    if (UseBucketSize_) {    // use bucket size\n      // <d(object, center), distance to previous centers, object>\n      std::vector<DistDistObjectTuple<dist_t>> dp;\n      bool center_skipped = false;\n      for (const auto& p : remaining) {\n        if (p.second == center) {\n          // sanity check\n          if (center_skipped) {\n            PREPARE_RUNTIME_ERR(err) << \"found skipped center again\" << std::endl;\n            THROW_RUNTIME_ERR(err);\n          }\n          center_skipped = true;\n        } else {\n          dp.push_back(std::make_tuple(\n                  space_.IndexTimeDistance(p.second, center), p.first, p.second));\n        }\n      }\n      std::sort(dp.begin(), dp.end(),\n                DistDistObjectTupleAscComparator<dist_t>());\n      for (const auto& p : dp) {\n        if (new_cluster->GetBucket().size() < BucketSize_) {\n          new_cluster->AddObject(std::get<2>(p), std::get<0>(p));\n        } else {\n          outside.push_back(std::make_pair(\n                  std::get<0>(p) + std::get<1>(p), std::get<2>(p)));\n        }\n      }\n    } else {   // use radius\n      bool center_skipped = false;\n      for (const auto& p : remaining) {\n        if (p.second == center) {\n          // sanity check\n          if (center_skipped) {\n            PREPARE_RUNTIME_ERR(err) << \"found skipped center again\" << std::endl;\n            THROW_RUNTIME_ERR(err);\n          }\n          center_skipped = true;\n        } else {\n          const dist_t dist = space_.IndexTimeDistance(p.second, center);\n          if (dist < Radius_) {\n            new_cluster->AddObject(p.second, dist);\n          } else {\n            outside.push_back(std::make_pair(p.first + dist, p.second));\n          }\n        }\n      }\n    }\n\n    remaining.swap(outside);\n  }\n\n  if (ChunkBucket_) {\n    for (auto i: cluster_list_) {\n      i->OptimizeBucket();\n    }\n  }\n}\n\ntemplate <typename dist_t>\nListClusters<dist_t>::~ListClusters() {\n  for (auto& cluster : cluster_list_) {\n    delete cluster;\n  }\n}\n\ntemplate <typename dist_t>\nconst std::string ListClusters<dist_t>::StrDesc() const {\n  return \"list of clusters\";\n}\n\ntemplate <typename dist_t>\nvoid ListClusters<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  GenSearch(query);\n}\n\ntemplate <typename dist_t>\nvoid ListClusters<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  GenSearch(query);\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid ListClusters<dist_t>::GenSearch(QueryType* query) const {\n  if (MaxLeavesToVisit_ == FAKE_MAX_LEAVES_TO_VISIT) {\n    for (const auto& cluster : cluster_list_) {\n      const dist_t dist_qc = query->DistanceObjLeft(cluster->GetCenter());\n      query->CheckAndAddToResult(dist_qc, cluster->GetCenter());\n\n      if (dist_qc - query->Radius() < cluster->GetCoveringRadius()) {\n        cluster->Search(query);\n        if (dist_qc + query->Radius() < cluster->GetCoveringRadius()) {\n        /* \n        * All the query points are inside the current cluster,\n        * they have all been compared to the query already.\n        */\n          break;\n        }\n      }\n    }\n  } else {\n     /*   \n      *             NOTE that the below code is a naive early termination algorithm\n      *             that WAS NOT proposed by Chavez and Navarro!!!! \n      *\n      * TODO (@leo) Ideally, if the MaxLeavesToVisit_ is very large, \n      *             the code should work as an exact method. Yet, it does not\n      *             due to specifics of the index construction algorithm.\n      *             Think about possible improvements for the early termination strategy.\n      */\n    struct Elem {\n      Cluster* cluster;\n      dist_t   dist_qc;\n      bool operator<(const Elem& o) const { return dist_qc > o.dist_qc; }\n      Elem(Cluster* c, dist_t d) : cluster(c), dist_qc(d) {}\n    };\n\n    priority_queue<Elem> queue;\n\n    for (const auto& cluster : cluster_list_) {\n      const dist_t dist_qc = query->DistanceObjLeft(cluster->GetCenter());\n      query->CheckAndAddToResult(dist_qc, cluster->GetCenter());\n\n      if (dist_qc - query->Radius() < cluster->GetCoveringRadius()) {\n        queue.push(Elem(cluster, dist_qc));\n      }\n    }\n\n    dist_t  PrevDist = 0;\n\n    int lproc = 0;\n\n    while (!queue.empty() && lproc < MaxLeavesToVisit_) {\n      Cluster* cluster = queue.top().cluster;\n      const dist_t dist_qc = queue.top().dist_qc;\n\n      CHECK(dist_qc >= PrevDist);\n      PrevDist = dist_qc;\n\n      cluster->Search(query);\n      ++lproc;\n\n      if (dist_qc + query->Radius() < cluster->GetCoveringRadius()) {\n       return;\n      }\n      queue.pop();\n    }\n  }\n}\n\ntemplate <typename dist_t>\nconst Object* ListClusters<dist_t>::SelectNextCenter(\n    DistObjectPairVector<dist_t>& remaining,\n    ListClustersStrategy strategy) {\n  CHECK(!remaining.empty());\n  size_t idx;\n  switch (strategy) {\n    case ListClustersStrategy::kRandom:\n      return remaining[RandomInt() % remaining.size()].second;\n\n    case ListClustersStrategy::kClosestPrevCenter:\n      return remaining.front().second;\n\n    case ListClustersStrategy::kFarthestPrevCenter:\n      return remaining.back().second;\n\n    case ListClustersStrategy::kMinSumDistPrevCenters:\n      idx = RandomInt() % remaining.size();\n      for (size_t i = 0; i < remaining.size(); ++i) {\n        if (remaining[i].first < remaining[idx].first) {\n          idx = i;\n        }\n      }\n      return remaining[idx].second;\n\n    case ListClustersStrategy::kMaxSumDistPrevCenters:\n      idx = RandomInt() % remaining.size();\n      for (size_t i = 0; i < remaining.size(); ++i) {\n        if (remaining[i].first > remaining[idx].first) {\n          idx = i;\n        }\n      }\n      return remaining[idx].second;\n  }\n\n  throw runtime_error(\"Unknown CenterStrategy\");\n  return remaining[0].second;\n}\n\ntemplate <typename dist_t>\nListClusters<dist_t>::Cluster::Cluster(const Object* center)\n  : center_(center), covering_radius_(0), \n    CacheOptimizedBucket_(NULL), bucket_(new(ObjectVector)) {\n}\n\ntemplate <typename dist_t>\nListClusters<dist_t>::Cluster::~Cluster() {\n  ClearBucket(CacheOptimizedBucket_, bucket_);\n}\n\ntemplate <typename dist_t>\nvoid ListClusters<dist_t>::Cluster::OptimizeBucket() {\n  ObjectVector* OldBucket = bucket_;\n\n  CreateCacheOptimizedBucket(*OldBucket, CacheOptimizedBucket_, bucket_);\n  \n  delete OldBucket;\n}\n\ntemplate <typename dist_t>\nvoid ListClusters<dist_t>::Cluster::AddObject(\n    const Object* object,\n    const dist_t dist) {\n  bucket_->push_back(object);\n  if (covering_radius_ < dist) {\n    covering_radius_ = dist;\n  }\n}\n\ntemplate <typename dist_t>\nconst Object* ListClusters<dist_t>::Cluster::GetCenter() {\n  return center_;\n}\n\ntemplate <typename dist_t>\nconst dist_t ListClusters<dist_t>::Cluster::GetCoveringRadius() {\n  return covering_radius_;\n}\n\ntemplate <typename dist_t>\nconst ObjectVector& ListClusters<dist_t>::Cluster::GetBucket() {\n  return *bucket_;\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid ListClusters<dist_t>::Cluster::Search(QueryType* query) const {\n  for (const auto& object : (*bucket_)) {\n    query->CheckAndAddToResult(object);\n  }\n}\n\ntemplate class ListClusters<double>;\ntemplate class ListClusters<float>;\ntemplate class ListClusters<int>;\n\n}   // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/lsh.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <limits>\n\n#include \"space.h\"\n#include \"method/lsh_space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"method/lsh.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nLSH<dist_t, lsh_t, paramcreator_t>::LSH(const Space<dist_t>& space,\n                                        const ObjectVector& data,\n                                        int P) : data_(data), p_(P) {\n\n}\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nvoid LSH<dist_t, lsh_t, paramcreator_t>::CreateIndex(const AnyParams& IndexParams) {\n  float     LSH_W;\n  unsigned  LSH_M;\n  unsigned  LSH_L;\n  unsigned  LSH_H;\n\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"W\",  LSH_W, 20);\n  pmgr.GetParamOptional(\"M\",  LSH_M, 20);\n  pmgr.GetParamOptional(\"L\",  LSH_L, 50);\n  pmgr.GetParamOptional(\"H\",  LSH_H, data_.size() + 1);\n\n  int is_float = std::is_same<float,dist_t>::value;\n  CHECK_MSG(is_float, \"LSH works only for single-precision numbers\");\n  CHECK_MSG(sizeof(dist_t) == sizeof(float), \"LSH works only for single-precision numbers\");\n  CHECK_MSG(!data_.empty(), \"The data set shouldn't be empty\");\n  CHECK_MSG(p_ == 1 || p_ == 2, \"The value of the space selector should be either 1 or 2!\");\n\n  const size_t datalength = data_[0]->datalength();\n\n  LOG(LIB_INFO) << \"W (window size (used only for LSHCauchy and LSHGaussian)) : \"  << LSH_W;\n  LOG(LIB_INFO) << \"M (# of hash functions) : \"  << LSH_M;\n  LOG(LIB_INFO) << \"L (# of hash tables) :    \"  << LSH_L;\n  LOG(LIB_INFO) << \"H (# hash table size) :   \"  << LSH_H;\n\n  const int dim = static_cast<int>(datalength / sizeof(float));\n  matrix_ = new lshkit::FloatMatrix(dim, static_cast<int>(data_.size()));\n\n  for (size_t i = 0; i < data_.size(); ++i) {\n    CHECK(datalength == data_[i]->datalength());\n    const float* x = reinterpret_cast<const float*>(data_[i]->data());\n    for (int j = 0; j < dim; ++j) {\n      (*matrix_)[i][j] = x[j];\n    }\n  }\n\n  LOG(LIB_INFO) << paramcreator_t::StrDesc();\n  lshkit::FloatMatrix::Accessor accessor(*matrix_);\n  lshkit::DefaultRng rng;\n  index_ = new LshIndexType;\n  index_->init(paramcreator_t::GetParameter(*matrix_, LSH_H, LSH_M, LSH_W), rng, LSH_L);\n\n  for (int i = 0; i < matrix_->getSize(); ++i) {\n    index_->insert(i, (*matrix_)[i]);\n  }\n}\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nLSH<dist_t, lsh_t, paramcreator_t>::~LSH() {\n  delete matrix_;\n  delete index_;\n}\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nconst std::string LSH<dist_t, lsh_t, paramcreator_t>::StrDesc() const {\n  return \"lsh\";\n}\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nvoid LSH<dist_t, lsh_t, paramcreator_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search isn't supported by LSH\");\n}\n\ntemplate <typename dist_t, typename lsh_t, typename paramcreator_t>\nvoid LSH<dist_t, lsh_t, paramcreator_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  const size_t datalength = query->QueryObject()->datalength();\n  const int dim = static_cast<int>(datalength / sizeof(float));\n  CHECK(dim == matrix_->getDim());\n\n  const float* q = reinterpret_cast<const float*>(query->QueryObject()->data());\n\n  lshkit::FloatMatrix::Accessor accessor(*matrix_);\n  LSHLpSpace<dist_t> lp(dim, p_, query);\n  lshkit::TopkScanner<lshkit::FloatMatrix::Accessor, LSHLpSpace<dist_t>>\n      query_scanner(accessor, lp, query->GetK());\n  query_scanner.reset(q);\n\n  index_->query(q, query_scanner);\n\n  const lshkit::Topk<uint32_t>& knn = query_scanner.topk();\n  for (size_t i = 0; i < knn.size(); ++i) {\n    if (knn[i].key != std::numeric_limits<uint32_t>::max()) {\n      query->CheckAndAddToResult(knn[i].dist, data_[knn[i].key]);\n    }\n  }\n}\n\ntemplate class LSH<float, lshkit::ThresholdingLsh, ParameterCreator<TailRepeatHashThreshold>>;\ntemplate class LSH<float, lshkit::CauchyLsh, ParameterCreator<TailRepeatHashCauchy>>;\ntemplate class LSH<float, lshkit::GaussianLsh, ParameterCreator<TailRepeatHashGaussian>>;\n\n}   // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/lsh_multiprobe.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <limits>\n\n#include \"space.h\"\n#include \"method/lsh_space.h\"\n#include \"method/lsh_multiprobe.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nMultiProbeLSH<dist_t>::MultiProbeLSH(const Space<dist_t>& space,\n                                     const ObjectVector& data) : data_(data) {\n}\n\ntemplate <typename dist_t>\nvoid MultiProbeLSH<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n    unsigned  LSH_M = 20;\n    unsigned  LSH_L = 50;\n    unsigned  LSH_H = 1017881;\n    float     LSH_W = 20;\n    unsigned  LSH_T = 10;\n    unsigned  LSH_TuneK = 1;\n    float     DesiredRecall = 0.9;\n\n    AnyParamManager pmgr(IndexParams);\n\n    pmgr.GetParamOptional(\"M\",  LSH_M,  20);\n    pmgr.GetParamOptional(\"L\",  LSH_L,  50);\n    pmgr.GetParamOptional(\"H\",  LSH_H,  data_.size() + 1);\n    pmgr.GetParamOptional(\"W\",  LSH_W,  20);\n    pmgr.GetParamOptional(\"T\",  LSH_T,  10);\n    pmgr.GetParamOptional(\"tuneK\",  LSH_TuneK, 1);\n    pmgr.GetParamOptional(\"desiredRecall\",  DesiredRecall, 0.9);\n\n\n    // For FitData():\n    // number of points to use\n    unsigned N1 = data_.size();\n    // number of pairs to sample\n    unsigned P = 10000;\n    // number of queries to sample\n    unsigned Q = 1000;\n    // search for K neighbors neighbors\n    unsigned K = LSH_TuneK;\n\n    pmgr.GetParamOptional(\"numSamplePairs\",    P,  10000);\n    pmgr.GetParamOptional(\"numSampleQueries\",  Q,  1000);\n\n    pmgr.CheckUnused();\n\n\n    LOG(LIB_INFO) << \"M (# of hash functions) = \"  << LSH_M;\n    LOG(LIB_INFO) << \"L (# of hash tables)    = \"  << LSH_L;\n    LOG(LIB_INFO) << \"H (# hash table size)   = \"  << LSH_H;\n    LOG(LIB_INFO) << \"W (window size)         = \"  << LSH_W;\n    LOG(LIB_INFO) << \"T (# of probes)         = \"  << LSH_T;\n    LOG(LIB_INFO) << \"desiredRecall (desired recall)            = \"  << DesiredRecall;\n    LOG(LIB_INFO) << \"numSamplePairs   (# of sample pairs, P)   = \"  << P;\n    LOG(LIB_INFO) << \"numSampleQueries (# of sample queries, Q) = \"  << Q;\n    LOG(LIB_INFO) << \"lshTuneK                                  = \" << K;\n\n    this->ResetQueryTimeParams(); // set query-time parameters to default values\n\n    // divide the sample to F folds\n    unsigned F = 10;\n    // For MPLSHTune():\n    // dataset size\n    unsigned N2 = data_.size();\n    // desired recall\n\n    CreateIndexInternal(\n                  N1, P, Q, K, F, N2,\n                  DesiredRecall,\n                  LSH_L,\n                  LSH_T,\n                  LSH_H,\n                  LSH_M,\n                  LSH_W\n                  );\n}\n\ntemplate <typename dist_t>\nvoid MultiProbeLSH<dist_t>::CreateIndexInternal(\n                                     unsigned N1,\n                                     unsigned P,\n                                     unsigned Q,\n                                     unsigned K,\n                                     unsigned F,\n                                     unsigned N2,\n                                     double R,\n                                     unsigned L,\n                                     unsigned T,\n                                     unsigned H,\n                                     int    M,\n                                     float  W) {\n  int is_float = std::is_same<float,dist_t>::value;\n  CHECK(is_float);\n  CHECK(sizeof(dist_t) == sizeof(float));\n  CHECK(!data_.empty());\n  const size_t datalength = data_[0]->datalength();\n  dim_ = static_cast<int>(datalength / sizeof(float));\n  matrix_ = new lshkit::FloatMatrix(dim_, static_cast<int>(data_.size()));\n  for (size_t i = 0; i < data_.size(); ++i) {\n    CHECK(datalength == data_[i]->datalength());\n    const float* x = reinterpret_cast<const float*>(data_[i]->data());\n    for (int j = 0; j < dim_; ++j) {\n      (*matrix_)[i][j] = x[j];\n    }\n  }\n  T_ = T;\n\n  CHECK_MSG(W > 0, \"W must be > 0\");\n\n#define TUNE_MPLSH_PARAMS\n#ifdef TUNE_MPLSH_PARAMS\n  R_ = R;\n\n  const std::string fit_data = lshkit::FitData(*matrix_, N1, P, Q, K, F);\n\n  lshkit::MPLSHTune(N2, fit_data, T_, L, R, K, M, W);\n#endif\n\n  lshkit::FloatMatrix::Accessor accessor(*matrix_);\n  LshIndexType::Parameter param;\n  param.W = W;\n  param.range = H;\n  param.repeat = M;\n  param.dim = dim_;\n  lshkit::DefaultRng rng;\n\n  index_ = new LshIndexType;\n  index_->init(param, rng, L);\n\n  for (int i = 0; i < matrix_->getSize(); ++i) {\n    index_->insert(i, (*matrix_)[i]);\n  }\n}\n\ntemplate <typename dist_t>\nMultiProbeLSH<dist_t>::~MultiProbeLSH() {\n  delete matrix_;\n  delete index_;\n}\n\ntemplate <typename dist_t>\nconst std::string MultiProbeLSH<dist_t>::StrDesc() const {\n  return \"multiprobe lsh\";\n}\n\ntemplate <typename dist_t>\nvoid MultiProbeLSH<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search isn't supported by LSH\");\n}\n\ntemplate <typename dist_t>\nvoid MultiProbeLSH<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  const size_t datalength = query->QueryObject()->datalength();\n  const int dim = static_cast<int>(datalength / sizeof(float));\n  CHECK(dim == dim_);\n\n  const float* q = reinterpret_cast<const float*>(query->QueryObject()->data());\n\n  lshkit::FloatMatrix::Accessor accessor(*matrix_);\n  LSHMultiProbeLpSpace<dist_t> lp(dim_, query);\n  lshkit::TopkScanner<lshkit::FloatMatrix::Accessor, LSHMultiProbeLpSpace<dist_t>>\n      query_scanner(accessor, lp, query->GetK());\n  query_scanner.reset(q);\n\n  index_->query(q, T_, query_scanner);\n\n  const lshkit::Topk<uint32_t>& knn = query_scanner.topk();\n  for (size_t i = 0; i < knn.size(); ++i) {\n    if (knn[i].key != std::numeric_limits<uint32_t>::max()) {\n      query->CheckAndAddToResult(sqrt(knn[i].dist), data_[knn[i].key]);\n    }\n  }\n}\n\ntemplate class MultiProbeLSH<float>;\n\n}   // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/lsh_space.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"distcomp.h\"\n#include \"method/lsh_space.h\"\n\nnamespace similarity {\n\n/*\n * TODO(@leo/bileg) \n * Do we compute the number of times we invoke these functions during retrieval?\n * Perhaps, through query?\n */ \n\n// l1 & l2 distances for lsh\nfloat LSHLp(const float* x, const float* y, const int dim, const int p) {\n  if (p == 1) {\n    return L1NormSIMD(x, y, dim);\n  } else if (p == 2) {\n    return L2NormSIMD(x, y, dim);\n  } else {\n    throw runtime_error(\"LSH can work only with l_1 and l_2\");\n  }\n  return -1;\n}\n\n// l2sqr (squared euclidean distance) for multi probe lsh\nfloat LSHMultiProbeLp(const float* x, const float* y, const int dim) {\n#if 1\n  return L2SqrSIMD(x, y, dim);\n#else\n\n  float r = 0, diff;\n  for (int i = 0; i < dim; ++i) {\n    diff = x[i] - y[i];\n    r += diff * diff;\n  }\n  return r;\n#endif\n}\n\n}   // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/multi_index.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <algorithm>\n#include <iostream>\n#include <sstream>\n#include <vector>\n#include <unordered_set>\n#include <memory>\n\n#include \"space.h\"\n#include \"knnqueue.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"methodfactory.h\"\n#include \"method/multi_index.h\"\n\nnamespace similarity {\n\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nMultiIndex<dist_t>::MultiIndex(\n         bool PrintProgress,\n         const string& SpaceType,\n         Space<dist_t>& space, \n         const ObjectVector& data) : space_(space), data_(data), SpaceType_(SpaceType), PrintProgress_(PrintProgress) {}\n\n\ntemplate <typename dist_t>\nvoid MultiIndex<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamRequired(\"indexQty\", IndexQty_);\n  pmgr.GetParamRequired(\"methodName\", MethodName_);\n\n  AnyParams RemainParams = pmgr.ExtractParametersExcept( {\"indexQty\", \"methodName\"} );\n\n  for (size_t i = 0; i < IndexQty_; ++i) {\n    LOG(LIB_INFO) << \"Method: \" << MethodName_ << \" index # \" << (i+1) << \" out of \" << IndexQty_;\n    indices_.push_back(MethodFactoryRegistry<dist_t>::Instance().CreateMethod(PrintProgress_, \n                                                                 MethodName_,\n                                                                 SpaceType_,\n                                                                 space_,\n                                                                 data_));\n\n    indices_.back()->CreateIndex(RemainParams);\n  }\n\n  this->ResetQueryTimeParams(); // reset query time parameters\n}\n\ntemplate <typename dist_t>\nvoid MultiIndex<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  for (size_t i = 0; i < indices_.size(); ++i) {\n    AnyParams ParamCopy(QueryTimeParams);\n    indices_[i]->SetQueryTimeParams(ParamCopy);\n  }\n}\n\ntemplate <typename dist_t>\nMultiIndex<dist_t>::~MultiIndex() {\n  for (size_t i = 0; i < indices_.size(); ++i) \n    delete indices_[i];\n}\n\ntemplate <typename dist_t>\nconst std::string MultiIndex<dist_t>::StrDesc() const {\n  std::stringstream str;\n  str << \"\" << indices_.size() << \" copies of \" << MethodName_;\n  return str.str();\n}\n\ntemplate <typename dist_t>\nvoid MultiIndex<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  /* \n   * There may be duplicates: the same object coming from \n   * different indices. The set found is used to filter them out.\n   */\n  std::unordered_set<const Object*> found;\n\n  for (size_t i = 0; i < indices_.size(); ++i) {\n    RangeQuery<dist_t>  TmpRes(space_, query->QueryObject(), query->Radius());\n    indices_[i]->Search(&TmpRes);\n    const ObjectVector& res          = *TmpRes.Result();\n    const std::vector<dist_t>& dists = *TmpRes.ResultDists();\n\n    query->AddDistanceComputations(TmpRes.DistanceComputations());\n    for (size_t i = 0; i < res.size(); ++i) {\n      const Object* obj = res[i];\n      if (!found.count(obj)) {\n        query->CheckAndAddToResult(dists[i], obj);\n        found.insert(obj);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid MultiIndex<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  /* \n   * There may be duplicates: the same object coming from \n   * different indices. The set found is used to filter them out.\n   */\n  std::unordered_set<IdType> found;\n\n  for (size_t i = 0; i < indices_.size(); ++i) {\n    KNNQuery<dist_t> TmpRes(space_, query->QueryObject(), query->GetK(), query->GetEPS());\n\n    indices_[i]->Search(&TmpRes);\n    unique_ptr<KNNQueue<dist_t>> ResQ(TmpRes.Result()->Clone());\n\n    query->AddDistanceComputations(TmpRes.DistanceComputations());\n    while(!ResQ->Empty()) {\n      const Object* obj = reinterpret_cast<const Object*>(ResQ->TopObject());\n\n      /*  \n       * It's essential to check for previously added entries.\n       * If we don't do this, the same close entry may be added multiple\n       * times. At the same time, other relevant entries will be removed!\n       */\n      if (!found.count(obj->id())) {\n        query->CheckAndAddToResult(ResQ->TopDistance(), obj);\n        found.insert(obj->id());\n      }\n      ResQ->Pop();\n    }\n  }\n}\n\ntemplate class MultiIndex<float>;\ntemplate class MultiIndex<double>;\ntemplate class MultiIndex<int>;\n\n}   // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/multi_vantage_point_tree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"utils.h\"\n#include \"method/multi_vantage_point_tree_utils.h\"\n#include \"method/multi_vantage_point_tree.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nMultiVantagePointTree<dist_t>::MultiVantagePointTree(\n    const Space<dist_t>& space,\n    const ObjectVector& data) : space_(space), data_(data) {\n}\n\ntemplate <typename dist_t>\nvoid MultiVantagePointTree<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"maxPathLen\", MaxPathLength_,  5);\n  pmgr.GetParamOptional(\"bucketSize\", BucketSize_,     50);\n  pmgr.GetParamOptional(\"chunkBucket\", ChunkBucket_,   true);\n\n  LOG(LIB_INFO) << \"maxPathLen= \" << MaxPathLength_;\n  LOG(LIB_INFO) << \"bucketSize= \" << BucketSize_;\n  LOG(LIB_INFO) << \"chunkBucket=\" << ChunkBucket_;\n\n  pmgr.CheckUnused();\n\n  if (BucketSize_ < 2) {\n     throw runtime_error(\"Bug: The bucket size should be at least 2 (multi vantage point tree)\");\n  }\n\n  Entries entries;\n  entries.reserve(data_.size());\n  for (size_t i = 0; i < data_.size(); ++i) {\n    entries.push_back(Entry(data_[i]));\n  }\n  root_.reset(BuildTree(&space_, entries));\n}\n\ntemplate <typename dist_t>\nMultiVantagePointTree<dist_t>::~MultiVantagePointTree() {\n}\n\ntemplate <typename dist_t>\nconst std::string MultiVantagePointTree<dist_t>::StrDesc() const {\n  return \"mvp-tree\";\n}\n\ntemplate <typename dist_t>\ntypename MultiVantagePointTree<dist_t>::Node*\nMultiVantagePointTree<dist_t>::BuildTree(\n    const Space<dist_t>* space,\n    typename MultiVantagePointTree<dist_t>::Entries& entries) {\n  if (entries.empty()) {\n    return NULL;\n  }\n\n  const Object* pivot1 =\n      Remove(entries, RandomInt() % entries.size()).object;\n  const Object* pivot2 = NULL;\n\n  if (entries.size() + 1 <= BucketSize_ + 2) {\n    if (!entries.empty()) {\n      size_t pivot2_idx = 0;\n      dist_t pivot2_dist = 0;\n      for (size_t i = 0; i < entries.size(); ++i) {\n        entries[i].d1 = space->IndexTimeDistance(pivot1, entries[i].object);\n        if (entries[i].d1 > pivot2_dist) {\n          pivot2_idx = i;\n          pivot2_dist = entries[i].d1;\n        }\n      }\n      pivot2 = Remove(entries, pivot2_idx).object;\n      for (size_t i = 0; i < entries.size(); ++i) {\n        entries[i].d2 = space->IndexTimeDistance(pivot2, entries[i].object);\n      }\n    }\n    LeafNode* node = new LeafNode(pivot1, pivot2, entries, ChunkBucket_);\n    return node;\n  } else {\n    dist_t m1 = 0;\n    dist_t m21 = 0, m22 = 0;\n    MultiVantagePointTree::Entries entry_list11, entry_list12;\n    MultiVantagePointTree::Entries entry_list21, entry_list22;\n    if (!entries.empty()) {\n      for (size_t i = 0; i < entries.size(); ++i) {\n        entries[i].d1 = space->IndexTimeDistance(pivot1, entries[i].object);\n        if (entries[i].path.size() < MaxPathLength_) {\n          entries[i].path.push_back(entries[i].d1);\n        }\n      }\n      std::sort(entries.begin(), entries.end(), Dist1AscComparator());\n      CHECK(entries[0].d1 <= entries[entries.size() - 1].d1);\n      // entries = elist1+elist2\n      MultiVantagePointTree::Entries elist1, elist2;\n      m1 = SplitByMedian(entries, elist1, elist2).d1;\n      pivot2 = Remove(elist2, RandomInt() % elist2.size()).object;\n      for (size_t i = 0; i < elist1.size(); ++i) {\n        elist1[i].d2 = space->IndexTimeDistance(pivot2, elist1[i].object);\n        if (elist1[i].path.size() < MaxPathLength_) {\n          elist1[i].path.push_back(elist1[i].d2);\n        }\n      }\n      for (size_t i = 0; i < elist2.size(); ++i) {\n        elist2[i].d2 = space->IndexTimeDistance(pivot2, elist2[i].object);\n        if (elist2[i].path.size() < MaxPathLength_) {\n          elist2[i].path.push_back(elist2[i].d2);\n        }\n      }\n      std::sort(elist1.begin(), elist1.end(), Dist2AscComparator());\n      CHECK(elist1[0].d2 <= elist1[elist1.size() - 1].d2); \n      std::sort(elist2.begin(), elist2.end(), Dist2AscComparator());\n      CHECK(elist2[0].d2 <= elist2[elist2.size() - 1].d2); \n      m21 = SplitByMedian(elist1, entry_list11, entry_list12).d2;\n      m22 = SplitByMedian(elist2, entry_list21, entry_list22).d2;\n    }\n    InternalNode* node = new InternalNode(pivot1, pivot2, m1, m21, m22);\n    node->child1_ = BuildTree(space, entry_list11);\n    node->child2_ = BuildTree(space, entry_list12);\n    node->child3_ = BuildTree(space, entry_list21);\n    node->child4_ = BuildTree(space, entry_list22);\n    return node;\n  }\n}\n\ntemplate <typename dist_t>\nvoid MultiVantagePointTree<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  Dists path(MaxPathLength_);\n  GenericSearch(root_.get(), query, path, 0, mx);\n}\n\ntemplate <typename dist_t>\nvoid MultiVantagePointTree<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  Dists path(MaxPathLength_);\n  GenericSearch(root_.get(), query, path, 0, mx);\n}\n\n// Range search algorithm\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid MultiVantagePointTree<dist_t>::GenericSearch(\n    typename MultiVantagePointTree<dist_t>::Node* node,\n    QueryType* query,\n    Dists& path,\n    size_t query_path_len,\n    int& MaxLeavesToVisit) const {\n  if (node == NULL) {\n    return;\n  }\n  if (MaxLeavesToVisit <= 0) return; // early termination\n\n  const bool exists_p1 = node->pivot1_ != NULL;\n  const bool exists_p2 = node->pivot2_ != NULL;\n  const dist_t dp1 = exists_p1 ? query->DistanceObjLeft(node->pivot1_) : DistMax<dist_t>();\n  const dist_t dp2 = exists_p2 ? query->DistanceObjLeft(node->pivot2_) : DistMax<dist_t>();\n\n  if (exists_p1) query->CheckAndAddToResult(dp1, node->pivot1_);\n  if (exists_p2) query->CheckAndAddToResult(dp2, node->pivot2_);\n\n  if (node->isleaf()) {\n    --MaxLeavesToVisit;\n    const LeafNode* leaf_node = reinterpret_cast<const LeafNode*>(node);\n    const Entries& entries = leaf_node->entries_;\n    for (size_t i = 0; i < entries.size(); ++i) {\n      if (dp1 - query->Radius() <= entries[i].d1 &&\n          dp1 + query->Radius() >= entries[i].d1 &&\n          dp2 - query->Radius() <= entries[i].d2 &&\n          dp2 + query->Radius() >= entries[i].d2) {\n        size_t path_len = std::min(query_path_len, entries[i].path.size());\n        bool ok = true;\n        for (size_t k = 0; k < path_len; ++k) {\n          if (path[k] - query->Radius() > entries[i].path[k] ||\n              path[k] + query->Radius() < entries[i].path[k]) {\n            ok = false;\n            break;\n          }\n        }\n        if (ok) {\n          query->CheckAndAddToResult(entries[i].object);\n        }\n      }\n    }\n  } else {\n    const InternalNode* internal_node =\n        reinterpret_cast<const InternalNode*>(node);\n\n    if (exists_p1 && query_path_len < MaxPathLength_) {\n      path[query_path_len++] = dp1;\n    }\n    if (exists_p2 && query_path_len < MaxPathLength_) {\n      path[query_path_len++] = dp2;\n    }\n\n    bool FirstRight1 = dp1 > internal_node->m1_; \n\n    for (int order1 = 0; order1 < 2; ++ order1) {\n      if (order1 == int(FirstRight1) && dp1 - query->Radius() <= internal_node->m1_) {      // left\n        bool FirstRight2 = dp2 > internal_node->m21_;\n        for (int order2 = 0; order2 < 2; ++order2) {\n          if (order2 == int(FirstRight2) && dp2 - query->Radius() <= internal_node->m21_) {   // left-left\n            GenericSearch(internal_node->child1_, query, path, query_path_len, MaxLeavesToVisit);\n          }\n\t\t  if (order2 != int(FirstRight2) && dp2 + query->Radius() >= internal_node->m21_) {   // left-right\n            GenericSearch(internal_node->child2_, query, path, query_path_len, MaxLeavesToVisit);\n          }\n        }\n      }\n\t  if (order1 != int(FirstRight1) && dp1 + query->Radius() >= internal_node->m1_) {      // right\n        bool FirstRight2 = dp2 > internal_node->m22_;\n        for (int order2 = 0; order2 < 2; ++order2) {\n          if (order2 == int(FirstRight2) && dp2 - query->Radius() <= internal_node->m22_) {   // right-left\n            GenericSearch(internal_node->child3_, query, path, query_path_len, MaxLeavesToVisit);\n          }\n\t\t  if (order2 != int(FirstRight2) && dp2 + query->Radius() >= internal_node->m22_) {   // right-right\n            GenericSearch(internal_node->child4_, query, path, query_path_len, MaxLeavesToVisit);\n          }\n        }\n      }\n    }\n  }\n}\n\ntemplate class MultiVantagePointTree<float>;\ntemplate class MultiVantagePointTree<double>;\ntemplate class MultiVantagePointTree<int>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/nndes.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * This is a wrapper class for the Wei Dong implementation of https://code.google.com/p/nndes/,\n * which also contains some of the original code from Wei Dong's repository.  \n * Wei Dong implemented only the graph construction algorithm [1]. \n * We implemented two search algorithms\n * i)  A greedy walk that starts from a random point and always proceeds to the closest neighbor [2].\n * ii) A priority queue based procedure where the queue may contain more distance not necessarily\n *     adjacent nodes [3]\n *\n * 1. Wei Dong, Charikar Moses, and Kai Li. 2011. \n *    Efficient k-nearest neighbor graph construction for generic similarity measures. \n *    In Proceedings of the 20th international conference on World wide web (WWW '11). \n *    ACM, New York, NY, USA, 577-586. \n *\n * 2. K. Hajebi, Y. Abbasi-Yadkori, H. Shahbazi, and H. Zhang. \n *    Fast approximate nearest-neighbor search with k-nearest neighbor graph. \n *    In IJCAI Proceedings-International Joint Conference on Artificial Intelligence, \n *    volume 22, page 1312, 2011\n *\n * 3. The main publication is as follows, but the basic algorithm was also presented as SISAP'12: \n *    Malkov, Y., Ponomarenko, A., Logvinov, A., & Krylov, V., 2014. \n *    Approximate nearest neighbor algorithm based on navigable small world graphs. Information Systems, 45, 61-68. \n * \n * The Wei Dong's code (to construct the knn-graph) can be redistributed given \n * that the license (see below) is retained in the source code.\n */\n/*\nCopyright (C) 2010,2011 Wei Dong <wdong@wdong.org>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n    Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n#include <iomanip>\n#include <map>\n#include <unordered_set>\n#include <queue>\n\n#include <boost/format.hpp>\n#include <boost/program_options.hpp>\n\n#include \"space.h\"\n#include \"utils.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"method/nndes.h\"\n\n#define USE_BITSET_FOR_SEARCHING 1\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nNNDescentMethod<dist_t>::NNDescentMethod(\n    bool  PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) :\n      space_(space), data_(data), PrintProgress_(PrintProgress),\n      controlQty_(0), // default value from Wei Dong's code\n      nndesOracle_(space, data)\n{}\n\ntemplate <typename dist_t>\nvoid NNDescentMethod<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"NN\",           NN_,           20);// default value from Wei Dong's code\n  pmgr.GetParamOptional(\"iterationQty\", iterationQty_, 100); // default value from Wei Dong's code\n\n  pmgr.GetParamOptional(\"rho\",          rho_,          1.0); // Fast rho is 0.5, 1.0 is from Wei Dong's code\n  pmgr.GetParamOptional(\"delta\",        delta_,        0.001), // default value from Wei Dong's code\n\n  LOG(LIB_INFO) <<  \"NN           = \" << NN_;\n  LOG(LIB_INFO) <<  \"iterationQty = \" << iterationQty_;\n  LOG(LIB_INFO) <<  \"rho          = \" << rho_;\n  LOG(LIB_INFO) <<  \"delta        = \" << delta_;\n\n  SetQueryTimeParams(getEmptyParams()); // reset query-time parameter\n\n\n  LOG(LIB_INFO) << \"Starting NN-Descent...\";\n\n  nndesObj_.reset(new NNDescent<SpaceOracle>(data_.size(), // N\n                                             NN_, //K \n                                             rho_, //S, \n                                             nndesOracle_, GRAPH_BOTH));\n\n    float total = float(data_.size()) * (data_.size() - 1) / 2;\n    cout.precision(5);\n    cout.setf(ios::fixed);\n    for (int it = 0; it < iterationQty_; ++it) {\n        int t = nndesObj_->iterate(PrintProgress_);\n        float rate = float(t) / (NN_ * data_.size());\n\n// TODO @leo computation of recall needs to be re-written, can't use original Wei Dong's code\n/*\n        float recall = 0;\n        if (controlQty_) {  // report accuracy\n            const vector<KNN> &nn = nndes.getNN();\n#pragma omp parallel for default(shared) reduction(+:recall) \n            for (int i = 0; i < control_knn.size(); ++i) {\n                recall += nndes::recall(control_knn[i], nn[control_index[i]], K);\n            }\n            recall /= control;\n        }\n        cout << setw(2) << it << \" update:\" << rate << \" recall:\" << recall << \" cost:\" << float(nndes.getCost())/total  << endl;\n*/\n        LOG(LIB_INFO) << setw(2) << it << \" update:\" << rate << \" cost:\" << float(nndesObj_->getCost())/total;\n        if (rate < delta_) break;\n    }\n\n\n  LOG(LIB_INFO) << \"NN-Descent finished!\";\n}\n\ntemplate <typename dist_t>\nvoid NNDescentMethod<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search is not supported!\");\n}\n\ntemplate <typename dist_t>\nvoid NNDescentMethod<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  greedy_ ? SearchGreedy(query) : SearchSmallWorld(query);\n}\n\ntemplate <typename dist_t>\nvoid NNDescentMethod<dist_t>::SearchSmallWorld(KNNQuery<dist_t>* query) const {\n  const vector<KNN> &nn = nndesObj_->getNN();\n\n#if USE_BITSET_FOR_SEARCHING\n  vector<bool>                      visitedBitset(data_.size());\n#else\n  unordered_set <IdType>            visitedNodes;\n#endif\n\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n  /**\n   * Search of most k-closest elements to the query.\n   */\n    IdType randPoint = RandomInt() % data_.size();\n\n    priority_queue <dist_t>             closestDistQueue; //The set of all elements which distance was calculated\n    priority_queue <EvaluatedNode>      candidateSet; //the set of elements which we can use to evaluate\n\n    const Object* currObj = data_[randPoint];\n    dist_t         d = query->DistanceObjLeft(currObj);\n    query->CheckAndAddToResult(d, currObj);\n    \n    EvaluatedNode  ev(-d, randPoint);\n\n    candidateSet.push(ev);\n    closestDistQueue.push(d);\n#if USE_BITSET_FOR_SEARCHING\n    visitedBitset[randPoint] = true;\n#else\n    visitedNodes.insert(randPoint);\n#endif\n\n    while(!candidateSet.empty()){\n      const EvaluatedNode& currEv = candidateSet.top();\n      dist_t lowerBound = closestDistQueue.top();\n\n      // Did we reach a local minimum?\n      if ((-currEv.first) > lowerBound) {\n        break;\n      }\n\n      IdType currEvId = currEv.second;\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateSet.pop();\n\n      //calculate distance to each neighbor\n      for (const KNNEntry& e: nn[currEvId]) {\n        IdType currNew = e.key;\n        if (currNew == KNNEntry::BAD) continue;\n\n#if USE_BITSET_FOR_SEARCHING\n        if (!visitedBitset[currNew]) {\n          visitedBitset[currNew] = true;\n#else\n        if (visitedNodes.find(currNew) == visitedNodes.end()){\n            visitedNodes.insert(currNew);\n#endif\n\n            currObj = data_[currNew];\n            d = query->DistanceObjLeft(currObj);\n            query->CheckAndAddToResult(d, currObj);\n            EvaluatedNode  evE1(-d, currNew);\n\n            closestDistQueue.push(d);\n            if (closestDistQueue.size() > efSearch_) { \n              closestDistQueue.pop(); \n            }\n            candidateSet.push(evE1);\n          }\n      }\n    }\n  }\n}\n\n\ntemplate <typename dist_t>\nvoid NNDescentMethod<dist_t>::SearchGreedy(KNNQuery<dist_t>* query) const {\n  const vector<KNN> &nn = nndesObj_->getNN();\n\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n    IdType curr = RandomInt() % data_.size();\n\n    dist_t currDist = query->DistanceObjLeft(data_[curr]);\n    query->CheckAndAddToResult(currDist, data_[curr]);\n\n\n    IdType currOld;\n\n    do {\n      currOld = curr;\n      // Iterate over neighbors\n      for (const KNNEntry&e: nn[currOld]) {\n        IdType currNew = e.key;\n        if (currNew != KNNEntry::BAD) {\n          dist_t currDistNew = query->DistanceObjLeft(data_[currNew]);\n          query->CheckAndAddToResult(currDistNew, data_[currNew]);\n          if (currDistNew < currDist) {\n            curr = currNew;\n            currDist = currDistNew;\n          }\n        }\n      }\n    } while (currOld != curr);\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nNNDescentMethod<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  pmgr.GetParamOptional(\"initSearchAttempts\", initSearchAttempts_,  3);\n  pmgr.GetParamOptional(\"efSearch\",           efSearch_,            NN_);\n  pmgr.GetParamOptional(\"greedy\",             greedy_,              false);\n  pmgr.CheckUnused();\n  LOG(LIB_INFO) << \"Set NNDescentMethod query-time parameters:\";\n  LOG(LIB_INFO) << \"initSearchAttempts=\" << initSearchAttempts_;\n  LOG(LIB_INFO) << \"efSearch=\"           << efSearch_;\n  LOG(LIB_INFO) << \"greedy=\"             << greedy_;\n}\n\ntemplate class NNDescentMethod<float>;\ntemplate class NNDescentMethod<double>;\ntemplate class NNDescentMethod<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/nonmetr_list_clust.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"cluster_util.h\"\n#include \"knnquery.h\"\n\n#include \"method/nonmetr_list_clust.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nvoid NonMetrListClust<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n  string clusterType;\n  pmgr.GetParamRequired(\"clusterType\", clusterType);\n  size_t centerQty;\n  pmgr.GetParamRequired(\"centerQty\", centerQty);\n\n  LOG(LIB_INFO) << \"clusterType=\" << clusterType;\n  LOG(LIB_INFO) << \"centerQty=\" << centerQty;\n  if (clusterType == CLUST_TYPE_FIRMAL) {\n    size_t searchCloseIterQty = 500;\n    pmgr.GetParamOptional(\"searchCloseIterQty\", searchCloseIterQty, searchCloseIterQty);\n    size_t sampleDistQty = SAMPLE_LIST_CLUST_DEFAULT_SAMPLE_QTY;\n    pmgr.GetParamOptional(\"sampleDistQty\", sampleDistQty, sampleDistQty);\n\n    LOG(LIB_INFO) << \"searchCloseIterQty=\" << searchCloseIterQty;\n    LOG(LIB_INFO) << \"sampleDistQty=\" << sampleDistQty;\n    ClusterUtils<dist_t>::doFIRMAL(printProgress_, space_, data_, centerQty, vCenters_, vClusterAssign_, vUnassigned_,\n                                   searchCloseIterQty, sampleDistQty, true /* do use all previous clusters in each iteration */);\n  } else if (clusterType == CLUST_TYPE_CLARAN) {\n    size_t randRestQty = CLARANS_RAND_RESTART_QTY;\n    pmgr.GetParamOptional(\"randRestQty\", randRestQty, randRestQty);\n    size_t inClusterSwapAttempts = CLARANS_SWAP_ATTEMPTS;\n    pmgr.GetParamOptional(\"inClusterSwapAttempts\", inClusterSwapAttempts, inClusterSwapAttempts);\n    size_t inClusterSampleQty = CLARANS_SAMPLE_QTY;\n    pmgr.GetParamOptional(\"inClusterSampleQty\", inClusterSampleQty, inClusterSampleQty);\n\n    LOG(LIB_INFO) << \"randRestQty=\" << randRestQty;\n    ClusterUtils<dist_t>::doCLARANS(printProgress_, space_, data_, centerQty, vCenters_, vClusterAssign_,\n                                    inClusterSwapAttempts, inClusterSampleQty, randRestQty);\n  } else if (clusterType == CLUST_TYPE_REDUCT_CLARAN) {\n    size_t inClusterSwapAttempts = CLARANS_SWAP_ATTEMPTS;\n    pmgr.GetParamOptional(\"inClusterSwapAttempts\", inClusterSwapAttempts, inClusterSwapAttempts);\n    size_t inClusterSampleQty = CLARANS_SAMPLE_QTY;\n    pmgr.GetParamOptional(\"inClusterSampleQty\", inClusterSampleQty, inClusterSampleQty);\n\n    IdTypeUnsign maxMetaIterQty = MAX_METAITER_CLARANS_ITER_QTY;\n    pmgr.GetParamOptional(\"maxMetaIterQty\", maxMetaIterQty, maxMetaIterQty);\n    float keepFrac = 0.2;\n    pmgr.GetParamOptional(\"keepFrac\", keepFrac, keepFrac);\n    LOG(LIB_INFO) << \"maxMetaIterQty = \" << maxMetaIterQty;\n    LOG(LIB_INFO) << \"keepFrac       = \" << keepFrac;\n    ClusterUtils<dist_t>::doReductiveCLARANS(printProgress_, space_, data_,\n                                             maxMetaIterQty, keepFrac,\n                                             centerQty, vCenters_, vClusterAssign_, vUnassigned_,\n                                             inClusterSwapAttempts, inClusterSampleQty);\n  } else throw runtime_error(\"Wrong cluster type, expecting: \" + CLUST_TYPE_CLARAN + \" or \" + CLUST_TYPE_FIRMAL);\n\n  ClusterUtils<dist_t>::printAndVerifyClusterStat(space_, vCenters_, vClusterAssign_, 1000);\n\n  pmgr.CheckUnused();\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid NonMetrListClust<dist_t>::GenericSearch(QueryType* query, IdType) const {\n  size_t dbScan = 0;\n  vector<bool>  vis(maxObjId_ + 1);\n  for (const Object* o:vUnassigned_) {\n    if (vis[o->id()]) continue;\n    query->CheckAndAddToResult(o);\n    vis[o->id()] = true;\n    dbScan++;\n  }\n\n  const Object* pQueryObj = query->QueryObject();\n\n  if (dbScan < db_scan_) {\n    vector<pair<dist_t, IdTypeUnsign>> orderedClusters;\n\n    for (IdTypeUnsign cid = 0; cid < vCenters_.size(); ++cid) {\n      dist_t d = query->Distance(pQueryObj /* object or query is the left argument */,\n                                 vCenters_[cid]/* cluster center is the right argument */);\n      orderedClusters.push_back(make_pair(d, cid));\n    }\n    sort(orderedClusters.begin(), orderedClusters.end());\n\n    CHECK(orderedClusters.size() < 2 || (orderedClusters[0].first <= orderedClusters[1].first));\n    //cerr << \"######## @@@\";\n    for (IdTypeUnsign i = 0; dbScan <= db_scan_ && i < orderedClusters.size(); ++i) {\n      IdTypeUnsign cid = orderedClusters[i].second;\n      //cerr << \" \" << orderedClusters[i].first;\n      for (const DistObjectPair<dist_t> p: (*vClusterAssign_[cid])) {\n        const Object* o = p.second;\n        if (vis[o->id()]) continue;\n        query->CheckAndAddToResult(o);\n        vis[o->id()] = true;\n        dbScan++;\n      }\n    }\n    //cerr<<endl;\n  }\n}\n\ntemplate <typename dist_t>\nvoid NonMetrListClust<dist_t>::Search(RangeQuery<dist_t>* query, IdType id) const {\n  GenericSearch(query, id);\n}\n\ntemplate <typename dist_t>\nvoid NonMetrListClust<dist_t>::Search(KNNQuery<dist_t>* query, IdType id) const {\n  GenericSearch(query, id);\n}\n\ntemplate <typename dist_t>\nvoid\nNonMetrListClust<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  // Check if a user specified extra parameters, which can be also misspelled variants of existing ones\n  AnyParamManager pmgr(QueryTimeParams);\n  float dbScanFrac;\n  // Note that GetParamOptional() should always have a default value\n  pmgr.GetParamOptional(\"dbScanFrac\", dbScanFrac, 0.1);\n  CHECK_MSG(dbScanFrac > 0 && dbScanFrac <= 1, \"dbScanFrac should be >0 and <=1\");\n  db_scan_ = size_t(ceil(dbScanFrac * data_.size()));\n  LOG(LIB_INFO) << \"db_scan=\" << db_scan_;\n  pmgr.CheckUnused();\n}\n\n\ntemplate class NonMetrListClust<float>;\ntemplate class NonMetrListClust<double>;\ntemplate class NonMetrListClust<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/omedrank.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * Patent ALERT: even though the code is released under the liberal Apache 2 license,\n * the underlying search method is patented. Therefore, it's free to use in research,\n * but may be problematic in a production setting.\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <unordered_map>\n#include <algorithm>\n#include <cmath>\n#include <queue>\n\n#include \"space.h\"\n#include \"permutation_utils.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"method/omedrank.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nOMedRank<dist_t>::OMedRank(\n    bool                 PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) :\n        space_(space), data_(data), PrintProgress_(PrintProgress),\n        index_qty_(0) // If ComputeDbScan is called before index_qty_ is computed, it will see this zero\n{ }\n\ntemplate <typename dist_t>\nvoid OMedRank<dist_t>::CreateIndex(const AnyParams &IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"projType\",  proj_type_,    PROJ_TYPE_RAND);\n  pmgr.GetParamOptional(\"intermDim\", interm_dim_,   0);\n  pmgr.GetParamOptional(\"numPivot\",  num_pivot_,    8);\n\n  pmgr.GetParamOptional(\"chunkIndexSize\", chunk_index_size_, 65536);\n\n  ToLower(proj_type_);\n  if (PROJ_TYPE_PERM_BIN == proj_type_)\n    throw runtime_error(\"This method cannot be used with binarized permutations!\");\n\n  projection_.reset(Projection<dist_t>::createProjection(\n                                                      space_,\n                                                      data_,\n                                                      proj_type_,\n                                                      interm_dim_,\n                                                      num_pivot_,\n                                                      0 /* can't be used with binarized permutations */));\n\n  if (projection_.get() == NULL) {\n    throw runtime_error(\"Cannot create projection class '\" + proj_type_ + \"'\" +\n                        \" for the space: '\" + space_.StrDesc() +\"' \" +\n                        \" distance value type: '\" + DistTypeName<dist_t>() + \"'\");\n  }\n\n  index_qty_ = (data_.size() + chunk_index_size_ - 1) / chunk_index_size_;\n  \n  pmgr.CheckUnused();\n\n  LOG(LIB_INFO) << \"# of entries in an index chunk  = \" << chunk_index_size_;\n  LOG(LIB_INFO) << \"# of index chunks  = \" << index_qty_;\n  LOG(LIB_INFO) << \"projection type:     \" << proj_type_;\n  LOG(LIB_INFO) << \"intermediate dim:    \" << interm_dim_;\n  LOG(LIB_INFO) << \"# pivots/target dim  \" << num_pivot_;\n\n  posting_lists_.resize(index_qty_);\n\n  for (size_t chunkId = 0; chunkId < index_qty_; ++chunkId) {\n    posting_lists_[chunkId] = shared_ptr<vector<PostingList>>(new vector<PostingList>());\n  }\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                              new ProgressDisplay(data_.size(), cerr)\n                              :NULL);\n\n  for (size_t chunkId = 0; chunkId < index_qty_; ++chunkId) {\n    IndexChunk(chunkId, progress_bar.get());\n  }\n}\n\ntemplate <typename dist_t> \ntemplate <typename QueryType> \nvoid OMedRank<dist_t>::GenSearch(QueryType* query, size_t K) const {\n  // Let's make this check here. Otherwise, if you misspell dbScanFrac, you will get \n  // a strange error message that says: dbScanFrac should be in the range [0,1].\n  if (!knn_amp_) {\n    if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n      stringstream err;\n      err << METH_OMEDRANK << \" requires that dbScanFrac is in the range [0,1]\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  size_t db_scan = computeDbScan(K);\n\n  /* \n   * Let these guys have num_pivot_ elements despite\n   * only num_pivot_search_ (potentially << num_pivot_) are used.\n   * This simplifies the code: element arrays can be addressed\n   * using the pivotId that can be > num_pivot_search_\n   */\n  vector<ssize_t> lowIndx(num_pivot_);\n  vector<ssize_t> highIndx(num_pivot_);\n\n  ObjectInvEntry  e(IdType(0), 0); \n\n  vector<unsigned>  counter(chunk_index_size_);\n  vector<float>     projDists(num_pivot_);\n\n  projection_->compProj(query, NULL, &projDists[0]);\n\n  typedef pair<dist_t, size_t>  DIPair;\n\n  // Let's use the closest pivots\n  priority_queue<DIPair>    closePivots;  \n\n  for (size_t i = 0 ; i < num_pivot_; ++i) {\n    dist_t  posDist = projDists[i] > 0 ? projDists[i] : - projDists[i];  \n    /*\n     * minus means that the closest pivots are selected. This works\n     * better for random projections. However, it appears to work\n     * worse for type = rand (at least for CoPhIr)\n     */\n    closePivots.push(make_pair(-posDist, i));\n    if (closePivots.size() > num_pivot_search_) closePivots.pop();\n  }\n\n  if (closePivots.size() != num_pivot_search_) {\n    stringstream err;\n    err << \"Bug: the number of close pivots '\" << closePivots.size() << \"' isn't equal to \" << num_pivot_search_;\n    throw runtime_error(err.str());\n  }\n\n  vector<size_t>  closePivotIds(num_pivot_search_);\n\n  // Note we should have exactly num_pivot_search_ elements in the queue\n  for (size_t kk = 0; kk < num_pivot_search_; ++kk) {\n    closePivotIds[kk] = closePivots.top().second;  \n    closePivots.pop();\n  } \n\n  for (size_t chunkId = 0; chunkId < posting_lists_.size(); ++chunkId) {\n    const auto & chunkPostLists = *posting_lists_[chunkId];\n\n    if (chunkId != 0)\n      memset(&counter[0], 0, sizeof(counter[0])*counter.size());\n\n    //for (size_t i = 0 ; i < num_pivot_; ++i) {\n    for (size_t kk = 0; kk < num_pivot_search_; ++kk) {\n      size_t pivotId = closePivotIds[kk];\n      // Again, pivot is the left argument, see the comment in the constructor\n      e.pivot_dist_ = projDists[pivotId];\n      lowIndx[pivotId] = (lower_bound(chunkPostLists[pivotId].begin(), chunkPostLists[pivotId].end(), e) - chunkPostLists[pivotId].begin());;\n      --lowIndx[pivotId]; // Can become less than zero\n      highIndx[pivotId] = lowIndx[pivotId] + 1;\n      CHECK(chunkPostLists[pivotId].size() > 0);\n      CHECK(lowIndx[pivotId] < 0 || static_cast<size_t>(lowIndx[pivotId]) < chunkPostLists[pivotId].size());\n      CHECK(highIndx[pivotId] >= 0);\n    }\n\n    bool      eof = false;\n    size_t    totOp = 0;\n    size_t    scannedQty = 0;\n    size_t    minMatchPivotQty = max(size_t(1), static_cast<size_t>(round(min_freq_ * num_pivot_search_)));\n\n    size_t minId = chunkId * chunk_index_size_;\n    size_t maxId = min(data_.size(), minId + chunk_index_size_);\n    size_t chunkQty = (maxId - minId);\n\n    CHECK(chunkQty <= chunk_index_size_);\n\n    while (scannedQty < min(db_scan, chunkQty) && !eof) {\n      eof = true;\n      //for (size_t i = 0 ; i < num_pivot_; ++i) {\n      for (size_t kk = 0; kk < num_pivot_search_; ++kk) {\n        size_t pivotId = closePivotIds[kk];\n        IdType    indx[2];\n        unsigned  iQty = 0;\n\n        if (lowIndx[pivotId] >= 0) {\n          indx[iQty++]=lowIndx[pivotId];\n          --lowIndx[pivotId];\n        }\n        if (static_cast<size_t>(highIndx[pivotId]) < chunkPostLists[pivotId].size()) {\n          indx[iQty++]=highIndx[pivotId];\n          ++highIndx[pivotId];\n        }\n\n        for (unsigned k = 0; k < iQty; ++k) {\n          ++totOp;\n          IdType objIdDiff = chunkPostLists[pivotId][indx[k]].id_;\n          unsigned freq = counter[objIdDiff]++;\n\n          if (freq == minMatchPivotQty) { // Add only the first time when we exceeded the threshold!\n            ++scannedQty;\n            if (!skip_check_) query->CheckAndAddToResult(data_[objIdDiff + minId]);\n          } \n          eof = false;\n        }\n      }\n    }\n  }\n}\n \n\ntemplate <typename dist_t>\nvoid OMedRank<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t>\nvoid OMedRank<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  GenSearch(query, query->GetK());\n}\n\ntemplate <typename dist_t>\nvoid OMedRank<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n\n  pmgr.GetParamOptional(\"skipChecking\",   skip_check_, false);\n\n  pmgr.GetParamOptional(\"minFreq\",        min_freq_, 0.5);\n  pmgr.GetParamOptional(\"numPivotSearch\", num_pivot_search_, num_pivot_);\n\n  if (num_pivot_search_ > num_pivot_) \n    throw runtime_error(\"numPivotSearch can't be > numPivot\");\n\n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n  \n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_, 0.05);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,      0);\n\n  pmgr.CheckUnused();\n  \n  LOG(LIB_INFO) << \"Set query-time parameters for OMedRank:\";\n  LOG(LIB_INFO) << \"# dbScanFrac                  = \" << db_scan_frac_;\n  LOG(LIB_INFO) << \"# knnAmp                      = \" << knn_amp_;\n  LOG(LIB_INFO) << \"# minFreq                     = \" << min_freq_;\n  LOG(LIB_INFO) << \"# numPivotSearch              = \" << num_pivot_search_;\n  LOG(LIB_INFO) << \"# skipChecking                = \" << skip_check_;\n}\n\ntemplate <typename dist_t>\nvoid OMedRank<dist_t>::IndexChunk(size_t chunkId, ProgressDisplay* displayBar) {\n  size_t minId = chunkId * chunk_index_size_;\n  size_t maxId = min(data_.size(), minId + chunk_index_size_);\n\n  auto & chunkPostLists = *posting_lists_[chunkId];\n  chunkPostLists.resize(num_pivot_);\n\n  vector<float>     projDists(num_pivot_);\n\n\n  for (size_t i = 0; i < maxId - minId; ++i) {\n    IdType id = minId + i;\n\n    projection_->compProj(NULL, data_[id], &projDists[0]);\n\n    for (size_t j = 0; j < num_pivot_; ++j) {\n      /* \n       * Object (in this case pivot) is the left argument.\n       * At search time, the right argument of the distance will be the query point\n       * and pivot again will be the left argument.\n       */\n      dist_t leftObjDst = projDists[j];\n      chunkPostLists[j].push_back(ObjectInvEntry(id - minId, leftObjDst));\n    }\n    if (displayBar) ++(*displayBar);\n  }\n  for (size_t j = 0; j < num_pivot_; ++j) {\n    sort(chunkPostLists[j].begin(), chunkPostLists[j].end());\n  }\n}\n\ntemplate class OMedRank<float>;\ntemplate class OMedRank<double>;\ntemplate class OMedRank<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/perm_bin_vptree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n#include <memory>\n\n#include \"space.h\"\n#include \"space/space_bit_hamming.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"knnqueue.h\"\n#include \"method/perm_bin_vptree.h\"\n#include \"utils.h\"\n#include \"distcomp.h\"\n#include \"logging.h\"\n#include \"report_intr_dim.h\"\n\nnamespace similarity {\n\nusing std::unique_ptr;\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nPermBinVPTree<dist_t, RankCorrelDistFunc>::PermBinVPTree(\n    bool PrintProgress,\n    Space<dist_t>& space,\n    const ObjectVector& data) : \n      space_(space), data_(data),   \n      PrintProgress_(PrintProgress),\n      VPTreeSpace_(new SpaceBitHamming())\n{}\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermBinVPTree<dist_t, RankCorrelDistFunc>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  size_t        NumPivot;\n\n  pmgr.GetParamOptional(\"numPivot\",   NumPivot, 16);\n  pmgr.GetParamOptional(\"binThreshold\", bin_threshold_, NumPivot / 2);\n\n  bin_perm_word_qty_ = (NumPivot + 31)/32;\n\n\n  LOG(LIB_INFO) << \"NumPivot     = \" << NumPivot;\n  LOG(LIB_INFO) << \"binThreshold = \"  << bin_threshold_;\n  LOG(LIB_INFO) << \"# binary entry size (words) = \"  << bin_perm_word_qty_;\n\n  AnyParams RemainParams = pmgr.ExtractParametersExcept({ \"numPivot\", \"binThreshold\"});\n\n\n  GetPermutationPivot(data_, space_, NumPivot, &pivots_);\n  BinPermData_.resize(data_.size());\n\n  for (size_t i = 0; i < data_.size(); ++i) {\n    Permutation TmpPerm;\n    GetPermutation(pivots_, space_, data_[i], &TmpPerm);\n    vector<uint32_t>  binPivot;\n    Binarize(TmpPerm, bin_threshold_, binPivot);\n    CHECK(binPivot.size() == bin_perm_word_qty_);\n    BinPermData_[i] = VPTreeSpace_->CreateObjFromVect(i, -1, binPivot);\n  }\n\n  ReportIntrinsicDimensionality(\"Set of permutations\" , *VPTreeSpace_, BinPermData_);\n  VPTreeIndex_.reset(new VPTree<int, PolynomialPruner<int>>(\n                                          PrintProgress_,\n                                          *VPTreeSpace_,\n                                          BinPermData_));\n\n  VPTreeIndex_->CreateIndex(RemainParams);\n  // Reset parameters only after the VP-tree index is created!\n  this->ResetQueryTimeParams();\n}\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermBinVPTree<dist_t, RankCorrelDistFunc>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n\n  AnyParams vptreeQueryParams = pmgr.ExtractParameters(VPTreeIndex_->getQueryTimeParams());\n  VPTreeIndex_->SetQueryTimeParams(vptreeQueryParams);\n\n  float dbScanFrac = 0;\n\n  pmgr.GetParamOptional(\"dbScanFrac\",   dbScanFrac, 0.05);\n\n  if (dbScanFrac < 0.0 || dbScanFrac > 1.0) {\n    PREPARE_RUNTIME_ERR(err) << METH_PERM_BIN_VPTREE << \" requires that dbScanFrac is in the range [0,1]\";\n    THROW_RUNTIME_ERR(err);\n  }\n\n\n  LOG(LIB_INFO) << \"Set query-time parameters for PermBinVPTree:\";\n  LOG(LIB_INFO) << \"dbScanFrac=\" << dbScanFrac;\n\n  db_scan_qty_ = max(size_t(1), static_cast<size_t>(dbScanFrac * data_.size()));\n\n  LOG(LIB_INFO) << \"db_scan_qty_=\" << db_scan_qty_;\n\n  pmgr.CheckUnused();\n}\n\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nPermBinVPTree<dist_t, RankCorrelDistFunc>::~PermBinVPTree() {\n  for (size_t i = 0; i < data_.size(); ++i) {\n    delete BinPermData_[i];\n  }\n}\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nconst std::string PermBinVPTree<dist_t, RankCorrelDistFunc>::StrDesc() const {\n  std::stringstream str;\n  str <<  \"binarized permutation (vptree)\";\n  return str.str();\n}\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermBinVPTree<dist_t, RankCorrelDistFunc>::Search(RangeQuery<dist_t>* query, IdType) const {\n  Permutation perm_q;\n  GetPermutation(pivots_, query, &perm_q);\n\n  vector<uint32_t>  binPivot;\n  Binarize(perm_q, bin_threshold_, binPivot);\n  CHECK(binPivot.size() == bin_perm_word_qty_);\n\n  unique_ptr<Object>  QueryObject(VPTreeSpace_->CreateObjFromVect(0, -1, binPivot));\n\n  unique_ptr<KNNQuery<int>> VPTreeQuery(new KNNQuery<int>(*VPTreeSpace_, QueryObject.get(), db_scan_qty_, 0.0));\n\n  VPTreeIndex_->Search(VPTreeQuery.get(), -1);\n\n  unique_ptr<KNNQueue<int>> ResQueue(VPTreeQuery->Result()->Clone());\n\n  while (!ResQueue->Empty()) {\n      size_t id = reinterpret_cast<const Object*>(ResQueue->TopObject())->id();\n      query->CheckAndAddToResult(data_[id]);\n      ResQueue->Pop();\n  }\n}\n\ntemplate <typename dist_t, PivotIdType (*RankCorrelDistFunc)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermBinVPTree<dist_t, RankCorrelDistFunc>::Search(KNNQuery<dist_t>* query, IdType) const {\n  Permutation perm_q;\n  GetPermutation(pivots_, query, &perm_q);\n\n  vector<uint32_t>  binPivot;\n  Binarize(perm_q, bin_threshold_, binPivot);\n  CHECK(binPivot.size() == bin_perm_word_qty_);\n\n  unique_ptr<Object>  QueryObject(VPTreeSpace_->CreateObjFromVect(0, -1, binPivot));\n\n  unique_ptr<KNNQuery<int>> VPTreeQuery(new KNNQuery<int>(*VPTreeSpace_, QueryObject.get(), db_scan_qty_, 0.0));\n\n  VPTreeIndex_->Search(VPTreeQuery.get(), -1);\n\n  unique_ptr<KNNQueue<int>> ResQueue(VPTreeQuery->Result()->Clone());\n\n  while (!ResQueue->Empty()) {\n      size_t id = reinterpret_cast<const Object*>(ResQueue->TopObject())->id();\n      query->CheckAndAddToResult(data_[id]);\n      ResQueue->Pop();\n  }\n}\n\ntemplate class PermBinVPTree<float, SpearmanRho>;\ntemplate class PermBinVPTree<float, SpearmanRhoSIMD>;\ntemplate class PermBinVPTree<float, SpearmanFootrule>;\ntemplate class PermBinVPTree<double, SpearmanRho>;\ntemplate class PermBinVPTree<double, SpearmanRhoSIMD>;\ntemplate class PermBinVPTree<double, SpearmanFootrule>;\ntemplate class PermBinVPTree<int, SpearmanRho>;\ntemplate class PermBinVPTree<int, SpearmanRhoSIMD>;\ntemplate class PermBinVPTree<int, SpearmanFootrule>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/perm_index_incr_bin.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n#include <memory>\n\n#include \"space.h\"\n#include \"ported_boost_progress.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"incremental_quick_select.h\"\n#include \"method/perm_index_incr_bin.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nPermutationIndexIncrementalBin<dist_t, perm_func>::PermutationIndexIncrementalBin(\n    bool PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) \n    : space_(space), data_(data), PrintProgress_(PrintProgress) {}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermutationIndexIncrementalBin<dist_t, perm_func>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"numPivot\",     num_pivot_, 16);\n  pmgr.GetParamOptional(\"binThreshold\", bin_threshold_, num_pivot_ / 2);\n\n  bin_perm_word_qty_ = (num_pivot_ + 31)/32,\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n  LOG(LIB_INFO) << \"# pivots                  = \" << num_pivot_;\n  LOG(LIB_INFO) << \"# binarization threshold = \"  << bin_threshold_;\n  LOG(LIB_INFO) << \"# binary entry size (words) = \"  << bin_perm_word_qty_;\n\n  GetPermutationPivot(data_, space_, num_pivot_, &pivot_);\n\n  permtable_.resize(data_.size() * bin_perm_word_qty_);\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n  for (size_t i = 0, start = 0; i < data_.size(); ++i, start += bin_perm_word_qty_) {\n    Permutation TmpPerm;\n    GetPermutation(pivot_, space_, data_[i], &TmpPerm);\n    CHECK(TmpPerm.size() == num_pivot_);\n    vector<uint32_t>  binPivot;\n    Binarize(TmpPerm, bin_threshold_, binPivot);\n    CHECK(binPivot.size() == bin_perm_word_qty_);\n    memcpy(&permtable_[start], &binPivot[0], bin_perm_word_qty_ * sizeof(binPivot[0]));\n    if (progress_bar) ++(*progress_bar);\n  }\n  //SavePermTable(permtable_, \"permtab\");\n}\n    \ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermutationIndexIncrementalBin<dist_t, perm_func>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n\n  pmgr.GetParamOptional(\"skipChecking\", skip_checking_,     false);\n  pmgr.GetParamOptional(\"useSort\",      use_sort_,          true);\n  pmgr.GetParamOptional(\"maxHammingDist\", max_hamming_dist_, num_pivot_);\n\n    \n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n  \n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_,  0.05);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,       0);\n\n  pmgr.CheckUnused();\n\n  LOG(LIB_INFO) << \"Set query-time parameters fro PermutationIndexIncrementalBin:\";\n  LOG(LIB_INFO) << \"use sort = \" << use_sort_;\n  if (use_sort_) {\n    LOG(LIB_INFO) << \"db scan fraction = \" << db_scan_frac_;\n  } else {\n    LOG(LIB_INFO) << \"max hamming distance = \" << max_hamming_dist_;\n  }\n  LOG(LIB_INFO) << \"skip checking = \" << skip_checking_;\n}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nPermutationIndexIncrementalBin<dist_t, perm_func>::~PermutationIndexIncrementalBin() {\n}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nconst std::string PermutationIndexIncrementalBin<dist_t, perm_func>::StrDesc() const {\n  std::stringstream str;\n  str <<  \"permutation binarized (incr. sorting)\";\n  return str.str();\n}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)> \ntemplate <typename QueryType>\nvoid PermutationIndexIncrementalBin<dist_t, perm_func>::GenSearch(QueryType* query, size_t K) const {\n  // Let's make this check here. Otherwise, if you misspell dbScanFrac, you will get \n  // a strange error message that says: dbScanFrac should be in the range [0,1].\n  if (!knn_amp_) {\n    if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n      stringstream err;\n      err << METH_PERMUTATION_INC_SORT_BIN << \" requires that dbScanFrac is in the range [0,1]\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  size_t db_scan = computeDbScan(K);\n\n\n  Permutation perm_q;\n  GetPermutation(pivot_, query, &perm_q);\n  vector<uint32_t>  binPivot;\n  Binarize(perm_q, bin_threshold_, binPivot);\n\n  std::vector<IntInt> perm_dists;\n  perm_dists.reserve(data_.size());\n\n  if (use_sort_) {\n    for (size_t i = 0, start = 0; i < data_.size(); ++i, start += bin_perm_word_qty_) {\n      perm_dists.push_back(std::make_pair(BitHamming(&permtable_[start], &binPivot[0], bin_perm_word_qty_), i));\n    }\n\n    IncrementalQuickSelect<IntInt> quick_select(perm_dists);\n    for (size_t i = 0; i < db_scan; ++i) {\n      const size_t idx = quick_select.GetNext().second;\n      quick_select.Next();\n      if (!skip_checking_) query->CheckAndAddToResult(data_[idx]);\n    }\n  } else {\n    for (size_t i = 0, start = 0; i < data_.size(); ++i, start += bin_perm_word_qty_) {\n      if (BitHamming(&permtable_[start], &binPivot[0], bin_perm_word_qty_) < max_hamming_dist_) {\n        if (!skip_checking_) query->CheckAndAddToResult(data_[i]);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermutationIndexIncrementalBin<dist_t, perm_func>::Search(RangeQuery<dist_t>* query, IdType) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t, PivotIdType (*perm_func)(const PivotIdType*, const PivotIdType*, size_t)>\nvoid PermutationIndexIncrementalBin<dist_t, perm_func>::Search(KNNQuery<dist_t>* query, IdType) const {\n  GenSearch(query, query->GetK());\n}\n\n\ntemplate class PermutationIndexIncrementalBin<float,SpearmanRho>;\ntemplate class PermutationIndexIncrementalBin<double,SpearmanRho>;\ntemplate class PermutationIndexIncrementalBin<int,SpearmanRho>;\ntemplate class PermutationIndexIncrementalBin<float,SpearmanFootrule>;\ntemplate class PermutationIndexIncrementalBin<double,SpearmanFootrule>;\ntemplate class PermutationIndexIncrementalBin<int,SpearmanFootrule>;\ntemplate class PermutationIndexIncrementalBin<float,SpearmanRhoSIMD>;\ntemplate class PermutationIndexIncrementalBin<double,SpearmanRhoSIMD>;\ntemplate class PermutationIndexIncrementalBin<int,SpearmanRhoSIMD>;\ntemplate class PermutationIndexIncrementalBin<float,SpearmanFootruleSIMD>;\ntemplate class PermutationIndexIncrementalBin<double,SpearmanFootruleSIMD>;\ntemplate class PermutationIndexIncrementalBin<int,SpearmanFootruleSIMD>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/perm_lsh_bin.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n\n#include \"space.h\"\n#include \"params.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"method/perm_lsh_bin.h\"\n#include \"ported_boost_progress.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nPermutationIndexLSHBin<dist_t>::PermutationIndexLSHBin(\n    bool PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) : \n                                space_(space), data_(data), printProgress_(PrintProgress) {}\n\ntemplate <typename dist_t>\nvoid PermutationIndexLSHBin<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"numPivot\",     num_pivot_,       32);\n  pmgr.GetParamOptional(\"binThreshold\", bin_threshold_,   num_pivot_ / 2);\n  pmgr.GetParamOptional(\"bitSampleQty\", bit_sample_qty_,  20 /* good for 1m records */);\n  pmgr.GetParamOptional(\"L\",            num_hash_,        50);\n\n  if (!bit_sample_qty_) {\n    throw runtime_error(\"bitSampleQty should be non-zero\");\n  }\n\n  if (bit_sample_qty_ > 63 || bit_sample_qty_ > num_pivot_) {\n    stringstream err;\n    err << \"bitSampleQty cannot be larger than \" << min(size_t(63), num_pivot_);\n    throw runtime_error(err.str());\n  }\n\n  hash_table_size_ = 1 << bit_sample_qty_;\n  \n  LOG(LIB_INFO) << \"# of hashes      = \" << num_hash_;\n  LOG(LIB_INFO) << \"hashe table size = \" << hash_table_size_;\n  LOG(LIB_INFO) << \"# pivots         = \" << num_pivot_;\n  LOG(LIB_INFO) << \"bin threshold    = \" << bin_threshold_;\n  LOG(LIB_INFO) << \"bit sample qty   = \" << bit_sample_qty_;\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n  pivots_.resize(num_hash_);\n  bit_sample_flags_.resize(num_hash_);\n\n  for (size_t i = 0; i < num_hash_; ++i) {\n    GetPermutationPivot(data_, space_, num_pivot_, &pivots_[i]);\n    bit_sample_flags_[i].resize(num_pivot_);\n\n\n    if (bit_sample_qty_ <= num_pivot_) {\n      fill(bit_sample_flags_[i].begin(),\n           bit_sample_flags_[i].end(), 0);\n      // Select bit_sample_qty 1s randomly\n      size_t toSelQty = bit_sample_qty_;\n      while (toSelQty) {\n        while (true) {\n          size_t p = RandomInt() % bit_sample_qty_;\n          if (!bit_sample_flags_[i][p]) {\n            bit_sample_flags_[i][p] = 1;\n            --toSelQty;\n            break;\n          }\n        }\n      }\n    } else {\n      // Inversion trick\n      fill(bit_sample_flags_[i].begin(),\n           bit_sample_flags_[i].end(), 1);\n      // Select (num_pivot_ - bit_sample_qty) 0s randomly\n      size_t toSelQty = num_pivot_ - bit_sample_qty_;\n      while (toSelQty) {\n        while (true) {\n          size_t p = RandomInt() % bit_sample_qty_;\n          if (bit_sample_flags_[i][p]) {\n            bit_sample_flags_[i][p] = 0;\n            --toSelQty;\n            break;\n          }\n        }\n      }\n    }\n  }\n\n  hash_tables_.resize(num_hash_);\n\n  for (size_t hashId = 0; hashId < num_hash_; ++hashId) {\n    hash_tables_[hashId].resize(hash_table_size_);\n  }\n\n  unique_ptr<ProgressDisplay> progress_bar(printProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n  for (size_t id = 0; id < data_.size(); ++id) {\n    for (size_t hashId = 0; hashId < num_hash_; ++hashId) {\n      size_t val = computeHashValue(hashId, data_[id], NULL); // Already <= hash_table_size_;\n      //cout << val << endl;\n      if (!hash_tables_[hashId][val]) {\n        hash_tables_[hashId][val] = new vector<IdType>();\n      }\n      hash_tables_[hashId][val]->push_back(id);\n    }\n    if (progress_bar) ++(*progress_bar);\n  }\n}\n\ntemplate <typename dist_t>\nPermutationIndexLSHBin<dist_t>::~PermutationIndexLSHBin() { \n  for (size_t hashId = 0; hashId < num_hash_; ++hashId) {\n    for (auto e: hash_tables_[hashId]) delete e;\n  }\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid PermutationIndexLSHBin<dist_t>::GenSearch(QueryType* query) const {\n  std::unordered_set<IdType> found;\n\n  for (size_t hashId = 0; hashId < num_hash_; ++hashId) {\n    size_t val = computeHashValue(hashId, NULL, query); // Already <= hash_table_size_;\n\n    vector<IdType>* pObjIds = hash_tables_[hashId][val]; \n    if (pObjIds) {\n      for (IdType id : *pObjIds)\n      /*  \n       * It's essential to check for previously added entries.\n       * If we don't do this, the same close entry may be added multiple\n       * times. At the same time, other relevant entries will be removed!\n       */\n      if (!found.count(id)) {\n        query->CheckAndAddToResult(data_[id]);\n        found.insert(id);\n      }\n    }\n  }\n}\n\ntemplate class PermutationIndexLSHBin<float>;\ntemplate class PermutationIndexLSHBin<double>;\ntemplate class PermutationIndexLSHBin<int>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/permutation_inverted_index.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n#include <unordered_map>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"incremental_quick_select.h\"\n#include \"method/permutation_inverted_index.h\"\n#include \"ported_boost_progress.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\n\ntemplate <typename dist_t>\nvoid \nPermutationInvertedIndex<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n  \n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_,  0.05);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,       0);\n\n\n  pmgr.GetParamOptional(\"numPivotSearch\", num_pivot_search_, max<size_t>(1, num_pivot_index_ / 2));\n  pmgr.GetParamOptional(\"maxPosDiff\",     max_pos_diff_,     num_pivot_);\n\n  if (num_pivot_search_ > num_pivot_index_) {\n    stringstream err;\n    err << METH_PERM_INVERTED_INDEX << \" requires that numPivotSearch \"\n               << \"should be less than or equal to numPivotIndex\";\n    throw runtime_error(err.str());\n  }\n\n  pmgr.CheckUnused();\n\n  LOG(LIB_INFO) << \"Set query-time parameters for PermutationInvertedIndex:\";\n  LOG(LIB_INFO) << \"dbScanFrac=     \" << db_scan_frac_;\n  LOG(LIB_INFO) << \"knnAmp=         \" << knn_amp_;\n  LOG(LIB_INFO) << \"numPivotSearch= \" << num_pivot_search_;\n  LOG(LIB_INFO) << \"maxPosDiff=     \" << max_pos_diff_;\n}\n   \n\ntemplate <typename dist_t>\nPermutationInvertedIndex<dist_t>::PermutationInvertedIndex(\n    bool  PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) : space_(space), data_(data), PrintProgress_(PrintProgress) {\n}\n\n\ntemplate <typename dist_t>\nvoid PermutationInvertedIndex<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"numPivot\",      num_pivot_,        512);\n  pmgr.GetParamOptional(\"numPivotIndex\", num_pivot_index_,  16);\n\n  pmgr.CheckUnused();\n\n  this->ResetQueryTimeParams(); // set query-time parameters to default\n\n  if (num_pivot_index_ > num_pivot_) {\n    stringstream err;\n    err << METH_PERM_INVERTED_INDEX << \" requires that numPivotIndex \"\n               << \"should be less than or equal to numPivot\";\n    throw runtime_error(err.str());\n  }\n\n  LOG(LIB_INFO) << \"# pivots             = \"              << num_pivot_;\n  LOG(LIB_INFO) << \"# pivots to index requested (ki)  = \" << num_pivot_index_;\n  LOG(LIB_INFO) << \"# pivots to search (ks) = \"           << num_pivot_search_;\n  LOG(LIB_INFO) << \"# max position difference = \"         << max_pos_diff_;\n  LOG(LIB_INFO) << \"# dbScanFrac              = \"         << db_scan_frac_;\n  LOG(LIB_INFO) << \"# knnAmp                  = \"         << knn_amp_;\n\n  unique_ptr<ProgressDisplay>   progress_bar(PrintProgress_ ? \n                                              new ProgressDisplay(data_.size(), cerr):\n                                              NULL);\n\n\n  GetPermutationPivot(data_, space_, num_pivot_, &pivot_);\n\n  posting_lists_.resize(num_pivot_);\n\n\n  for (size_t id = 0; id < data_.size(); ++id) {\n    Permutation perm;\n    GetPermutation(pivot_, space_, data_[id], &perm);\n    for (size_t j = 0; j < perm.size(); ++j) {\n      if (perm[j] < num_pivot_index_) {\n        posting_lists_[j].push_back(ObjectInvEntry(id, perm[j]));\n      }\n    }\n  if (progress_bar) ++(*progress_bar);\n  }\n  for (size_t j = 0; j < posting_lists_.size(); ++j) {\n    sort(posting_lists_[j].begin(), posting_lists_[j].end());\n  }\n  if (progress_bar) { // make it 100%\n    (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n  }\n}\n\ntemplate <typename dist_t>\nPermutationInvertedIndex<dist_t>::~PermutationInvertedIndex() {\n}\n\ntemplate <typename dist_t>\nconst string PermutationInvertedIndex<dist_t>::StrDesc() const {\n  stringstream str;\n  str <<  \"(permutation) inverted index\";\n  return str.str();\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid PermutationInvertedIndex<dist_t>::GenSearch(QueryType* query, size_t K) const {\n  // Let's make this check here. Otherwise, if you misspell dbScanFrac, you will get \n  // a strange error message that says: dbScanFrac should be in the range [0,1].\n  if (!knn_amp_) {\n    if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n      stringstream err;\n      err << METH_PERM_INVERTED_INDEX << \" requires that dbScanFrac is in the range [0,1]\";\n      throw runtime_error(err.str());\n    }\n  }\n\n\n  size_t db_scan = computeDbScan(K);\n\n  Permutation perm_q;\n  GetPermutation(pivot_, query, &perm_q);\n  vector<typename vector<typename PermutationInvertedIndex<dist_t>::ObjectInvEntry>::const_iterator>  iterBegs;\n  vector<typename vector<typename PermutationInvertedIndex<dist_t>::ObjectInvEntry>::const_iterator>  iterEnds;\n\n  size_t maxScanQty = 0;\n\n  for (size_t i = 0; i < perm_q.size(); ++i) {\n    if (perm_q[i] < num_pivot_search_) {\n      ObjectInvEntry  o1(0, std::max(perm_q[i] - static_cast<int>(max_pos_diff_), 0));\n      ObjectInvEntry  o2(0, std::min(perm_q[i] + static_cast<int>(max_pos_diff_) + 1, static_cast<int>(num_pivot_index_)));\n\n      auto itEnd = lower_bound(posting_lists_[i].begin(), posting_lists_[i].end(), o2);\n      auto it = lower_bound(posting_lists_[i].begin(), itEnd, o1);\n\n      maxScanQty += itEnd - it;\n      iterBegs.push_back(it);\n      iterEnds.push_back(itEnd);\n    }\n  }\n\n  bool bUseMap = maxScanQty < USE_MAP_THRESHOLD * data_.size();  // TODO: @leo this is rather adhoc\n\n  vector<IntInt> perm_dists;\n\n  //LOG(LIB_INFO) << \"bUseMap: \" << bUseMap << \" maxScanQty: \" << maxScanQty << \" data.size() \" << data_.size();\n\n  if (bUseMap) {\n    unordered_map<int,int> perm_dists_set;\n\n    int MaxDist = (num_pivot_search_ - 1) * num_pivot_index_; \n\n    for (size_t i = 0, inum = 0; i < perm_q.size(); ++i) {\n      if (perm_q[i] < num_pivot_search_) {\n        auto        it    = iterBegs[inum];\n        const auto& itEnd = iterEnds[inum];\n        ++inum;\n\n        for (; it != itEnd; ++it) {\n          int id = it->id_;\n          int pos = it->pos_;\n\n          CHECK(std::abs(pos - perm_q[i]) <= max_pos_diff_);\n\n          // spearman footrule\n          int spearman_dist = std::abs(static_cast<int>(pos) - static_cast<int>(perm_q[i]));\n\n          auto iter = perm_dists_set.find(id);\n\n          if (iter != perm_dists_set.end()) {\n            iter->second += spearman_dist - static_cast<int>(num_pivot_index_);\n          } else {\n            perm_dists_set.insert(make_pair(id, MaxDist + spearman_dist));\n          }\n        }\n      }\n    }\n    // Copy data from set to array\n    perm_dists.reserve(perm_dists_set.size());\n\n    for(const auto it: perm_dists_set) {\n      // Id goes second\n      perm_dists.push_back(make_pair(it.second, it.first));\n    }\n  } else {\n    int MaxDist = num_pivot_search_ * num_pivot_index_; \n\n    perm_dists.reserve(data_.size());\n\n    for (size_t i = 0; i < data_.size(); ++i)\n      perm_dists.push_back(make_pair(MaxDist, i));\n\n    for (size_t i = 0, inum = 0; i < perm_q.size(); ++i) {\n      if (perm_q[i] < num_pivot_search_) {\n        auto        it    = iterBegs[inum];\n        const auto& itEnd = iterEnds[inum];\n        ++inum;\n\n        for (; it < itEnd; ++it) {\n          int id = it->id_;\n          int pos = it->pos_;\n\n          CHECK(std::abs(pos - perm_q[i]) <= max_pos_diff_);\n\n          // spearman footrule\n          int spearman_dist = std::abs(static_cast<int>(pos) - static_cast<int>(perm_q[i]));\n          perm_dists[id].first += spearman_dist - static_cast<int>(num_pivot_index_);\n        }\n      }\n    }\n  }\n  size_t scan_qty = min(db_scan, perm_dists.size());\n\n  if (!scan_qty) {\n    stringstream err;\n    err << \"One should specify a proper value for either dbScanFrac or knnAmp\" <<\n               \" currently, dbScanFrac=\" << db_scan_frac_ << \" knnAmp=\" << knn_amp_;\n    throw runtime_error(err.str());\n  }\n\n  IncrementalQuickSelect<IntInt> quick_select(perm_dists);\n  for (size_t i = 0; i < scan_qty; ++i) {\n    const size_t idx = quick_select.GetNext().second;\n    quick_select.Next();\n    query->CheckAndAddToResult(data_[idx]);\n  }\n}\n\ntemplate <typename dist_t>\nvoid PermutationInvertedIndex<dist_t>::Search (RangeQuery<dist_t>* query, IdType ) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t>\nvoid PermutationInvertedIndex<dist_t>::Search (KNNQuery<dist_t>* query, IdType ) const {\n  GenSearch(query, query->GetK());\n}\n\ntemplate class PermutationInvertedIndex<float>;\ntemplate class PermutationInvertedIndex<double>;\ntemplate class PermutationInvertedIndex<int>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/permutation_prefix_index.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <sstream>\n#include <unordered_map>\n#include <unordered_set>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"permutation_utils.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/permutation_prefix_index.h\"\n\nnamespace similarity {\n\nclass PrefixNode;\nclass PrefixNodeInternal;\nclass PrefixNodeLeaf;\n\nclass PrefixNode {\n public:\n  virtual ~PrefixNode() {};\n  virtual bool IsLeaf() const = 0;\n  virtual void Insert(const Permutation& perm,\n                      const Object* object,\n                      const size_t length,\n                      const size_t cur_depth) = 0;\n  virtual size_t GetNumberObjects() const = 0;\n  virtual void GetAllObjectsInThisSubTree(\n      ObjectVector* objects,\n      std::unordered_set<const PrefixNode*>* visited) const = 0;\n  virtual const PrefixNode* SearchPath(const Permutation& perm,\n                                       const size_t sub_length,\n                                       const size_t cur_depth) const = 0;\n  virtual void ChunkBuckets() = 0;\n};\n\nclass PrefixNodeLeaf : public PrefixNode {\n public:\n  PrefixNodeLeaf() : bucket_(new ObjectVector()), CacheOptimizedBucket_(NULL) {}\n  virtual ~PrefixNodeLeaf() { ClearBucket(CacheOptimizedBucket_, bucket_); }\n\n  virtual void ChunkBuckets() {\n    ObjectVector* pData = bucket_;\n\n    CreateCacheOptimizedBucket(*pData, CacheOptimizedBucket_, bucket_);\n\n    delete pData;\n  }\n\n  bool IsLeaf() const { return true; }\n\n  void Insert(const Permutation& perm,\n              const Object* object,\n              const size_t length,\n              const size_t cur_depth) {\n    CHECK(cur_depth == length);\n    bucket_->push_back(object);\n  }\n\n  size_t GetNumberObjects() const { return bucket_->size(); }\n\n  void GetAllObjectsInThisSubTree(\n      ObjectVector* objects,\n      std::unordered_set<const PrefixNode*>* visited) const {\n    if (visited->count(this) == 0) {\n      visited->insert(this);\n      objects->insert(objects->end(), bucket_->begin(), bucket_->end());\n    }\n  }\n\n  const PrefixNode* SearchPath(const Permutation& perm,\n                               const size_t sub_length,\n                               const size_t cur_depth) const {\n    return this;\n  }\n\n private:\n  ObjectVector* bucket_;\n  char*         CacheOptimizedBucket_;\n};\n\nclass PrefixNodeInternal : public PrefixNode {\n public:\n  PrefixNodeInternal() : num_objects_(0) {}\n\n  ~PrefixNodeInternal() {\n    for (auto& it : children_) {\n      delete it.second;\n    }\n  }\n\n  bool IsLeaf() const { return false; }\n\n  virtual void ChunkBuckets() {\n    for (auto& it: children_) it.second->ChunkBuckets();\n  }\n\n  void Insert(const Permutation& perm,\n              const Object* object,\n              const size_t length,\n              const size_t cur_depth) {\n    CHECK(cur_depth < length);\n    ++num_objects_;\n    PrefixNode* node = NULL;\n    auto it = children_.find(perm[cur_depth]);\n    if (it != children_.end()) {\n      node = it->second;\n    } else {\n      if (cur_depth + 1 < length) {\n        node = new PrefixNodeInternal;\n      } else {\n        node = new PrefixNodeLeaf;\n      }\n      children_[perm[cur_depth]] = node;\n    }\n    node->Insert(perm, object, length, cur_depth + 1);\n  }\n\n  size_t GetNumberObjects() const { return num_objects_; }\n\n  void GetAllObjectsInThisSubTree(\n      ObjectVector* objects,\n      std::unordered_set<const PrefixNode*>* visited) const {\n    if (visited->count(this) == 0) {\n      visited->insert(this);\n      for (const auto& it : children_) {\n        it.second->GetAllObjectsInThisSubTree(objects, visited);\n      }\n    }\n  }\n\n  const PrefixNode* SearchPath(const Permutation& perm,\n                               const size_t sub_length,\n                               const size_t cur_depth) const {\n    CHECK(cur_depth <= sub_length);\n    if (cur_depth == sub_length) {\n      return this;\n    } else {\n      const auto& it = children_.find(perm[cur_depth]);\n      return it != children_.end()\n          ? it->second->SearchPath(perm, sub_length, cur_depth + 1)\n          : NULL;\n    }\n  }\n\n private:\n  typedef std::unordered_map<size_t, PrefixNode*> PrefixMap;\n  PrefixMap children_;\n  size_t num_objects_;\n};\n\nclass PrefixTree {\n public:\n  PrefixTree() : root_(new PrefixNodeInternal) {}\n  void ChunkBuckets() { root_->ChunkBuckets(); }\n\n  ~PrefixTree() { delete root_; }\n\n  void Insert(const Permutation& perm,\n              const Object* object,\n              const size_t length) {\n    root_->Insert(perm, object, length, 0);\n  }\n\n  void FindCandidates(const Permutation& perm_q,\n                      const size_t prefix_length,\n                      const size_t min_candidate,\n                      ObjectVector* candidates) {\n    std::unordered_set<const PrefixNode*> visited;\n    visited.reserve(min_candidate * 2);\n    for (int i = static_cast<int>(prefix_length); i >= 0; --i) {\n      const PrefixNode* node = root_->SearchPath(perm_q, i, 0);\n      if (node != NULL &&\n          (node->GetNumberObjects() >= min_candidate || i == 0)) {\n        node->GetAllObjectsInThisSubTree(candidates, &visited);\n        CHECK(node->GetNumberObjects() == candidates->size());\n        return;\n      }\n    }\n  }\n\n private:\n  PrefixNode* root_;\n};\n\ntemplate <typename dist_t>\nvoid PermutationPrefixIndex<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager   pmgr(QueryTimeParams);\n\n  if (pmgr.hasParam(\"minCandidate\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters minCandidate and knnAmp, b/c they are synonyms!\");\n  }\n\n  pmgr.GetParamOptional(\"minCandidate\", min_candidate_, 0);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,       0);\n\n  LOG(LIB_INFO) << \"Set query-time parameters for PermutationPrefixIndex:\";\n  LOG(LIB_INFO) << \"knnAmp=       \" << knn_amp_;\n  LOG(LIB_INFO) << \"minCandidate= \" << min_candidate_;\n}\n\ntemplate <typename dist_t>\nPermutationPrefixIndex<dist_t>::PermutationPrefixIndex(\n    bool  PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) : space_(space), data_(data), PrintProgress_(PrintProgress) {\n}\n\ntemplate <typename dist_t>\nvoid PermutationPrefixIndex<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"numPivot\",     num_pivot_,       16);\n  pmgr.GetParamOptional(\"chunkBucket\",  chunkBucket_,      true);\n  pmgr.GetParamOptional(\"prefixLength\", prefix_length_,   max<size_t>(1, num_pivot_/4));\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n  LOG(LIB_INFO) << \"# pivots         = \" << num_pivot_;\n  LOG(LIB_INFO) << \"prefix length    = \" << prefix_length_;\n  LOG(LIB_INFO) << \"ChunkBucket      = \" << chunkBucket_;\n\n  GetPermutationPivot(data_, space_, num_pivot_, &pivot_);\n  prefixtree_.reset(new PrefixTree);\n  Permutation permutation;\n\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n  for (const auto& it : data_) {\n    permutation.clear();\n    GetPermutationPPIndex(pivot_, space_, it, &permutation);\n    prefixtree_->Insert(permutation, it, prefix_length_);\n\n    if (progress_bar) ++(*progress_bar);\n  }\n  // Store elements in leaves/buckets contiguously\n  if (chunkBucket_) prefixtree_->ChunkBuckets();\n}\n\ntemplate <typename dist_t>\nPermutationPrefixIndex<dist_t>::~PermutationPrefixIndex() {\n}\n\ntemplate <typename dist_t>\nconst std::string PermutationPrefixIndex<dist_t>::StrDesc() const {\n  return \"permutation (pref. index)\";\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid PermutationPrefixIndex<dist_t>::GenSearch(QueryType* query, size_t K) const {\n  if (prefix_length_ == 0 || prefix_length_ > num_pivot_) {\n    stringstream err;\n    err << METH_PERMUTATION_PREFIX_IND\n               << \" requires that prefix length should be in the range in [1,\"\n               << num_pivot_ << \"]\";\n    throw runtime_error(err.str());\n  }\n\n  Permutation perm_q;\n  GetPermutationPPIndex(pivot_, query, &perm_q);\n\n  size_t db_scan = computeDbScan(K);\n\n  if (!db_scan) {\n    if (!db_scan) {\n      throw runtime_error(\"One should specify a proper value for either minCandidate or knnAmp\");\n    }\n  }\n\n  ObjectVector candidates;\n  candidates.reserve(2  * db_scan);\n  prefixtree_->FindCandidates(perm_q, prefix_length_,\n                              db_scan, &candidates);\n\n  for (const auto& it : candidates) {\n    query->CheckAndAddToResult(it);\n  }\n}\n\ntemplate <typename dist_t>\nvoid PermutationPrefixIndex<dist_t>::Search(RangeQuery<dist_t>* query, IdType ) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t>\nvoid PermutationPrefixIndex<dist_t>::Search(KNNQuery<dist_t>* query, IdType ) const {\n  GenSearch(query, query->GetK());\n}\n\ntemplate class PermutationPrefixIndex<float>;\ntemplate class PermutationPrefixIndex<double>;\ntemplate class PermutationPrefixIndex<int>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/pivot_neighb_invindx.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2010--2013\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n#include <thread>\n#include <memory>\n#include <fstream>\n#include <thread>\n#include <unordered_map>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"incremental_quick_select.h\"\n#include \"method/pivot_neighb_invindx.h\"\n#include \"utils.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::pair;\nusing std::mutex;\n\ntemplate <typename dist_t>\nstruct IndexThreadParamsPNII {\n  PivotNeighbInvertedIndex<dist_t>&           index_;\n  size_t                                      chunk_qty_;\n  size_t                                      index_every_;\n  size_t                                      out_of_;\n  ProgressDisplay*                            progress_bar_;\n  mutex&                                      display_mutex_;\n\n  IndexThreadParamsPNII(\n                     PivotNeighbInvertedIndex<dist_t>&  index,\n                     size_t                             chunk_qty,\n                     size_t                             index_every,\n                     size_t                             out_of,\n                     ProgressDisplay*                   progress_bar,\n                     mutex&                             display_mutex\n                      ) :\n                     index_(index),\n                     chunk_qty_(chunk_qty),\n                     index_every_(index_every),\n                     out_of_(out_of),\n                     progress_bar_(progress_bar),\n                     display_mutex_(display_mutex)\n                     { }\n};\n\ntemplate <typename dist_t>\nstruct IndexThreadPNII {\n  void operator()(IndexThreadParamsPNII<dist_t>& prm) {\n    for (size_t i = 0; i < prm.chunk_qty_; ++i) {\n      if (prm.index_every_ == i % prm.out_of_) {\n        prm.index_.IndexChunk(i, prm.progress_bar_, prm.display_mutex_);\n      }\n    }\n  }\n};\n\ntemplate <typename dist_t>\nPivotNeighbInvertedIndex<dist_t>::PivotNeighbInvertedIndex(\n    bool  PrintProgress,\n    const Space<dist_t>& space,\n    const ObjectVector& data) \n      : data_(data),  \n        space_(space), \n        PrintProgress_(PrintProgress),\n        recreate_points_(false)  {\n}\n\n\ntemplate <typename dist_t>\nvoid PivotNeighbInvertedIndex<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n\n  pmgr.GetParamOptional(\"numPivot\", num_pivot_, 512);\n\n  if (pmgr.hasParam(\"numPivotIndex\") && pmgr.hasParam(\"numPrefix\")) {\n    throw runtime_error(\"One shouldn't specify both parameters numPrefix and numPivotIndex, b/c they are synonyms!\");\n  }\n  pmgr.GetParamOptional(\"numPivotIndex\", num_prefix_, 32);\n  pmgr.GetParamOptional(\"numPrefix\",     num_prefix_, num_prefix_);\n\n  pmgr.GetParamOptional(\"chunkIndexSize\", chunk_index_size_, 65536);\n\n  pmgr.GetParamOptional(\"indexThreadQty\", index_thread_qty_,  thread::hardware_concurrency());\n  pmgr.GetParamOptional(\"recreatePoints\", recreate_points_,  false);\n\n  if (num_prefix_ > num_pivot_) {\n    PREPARE_RUNTIME_ERR(err) << METH_PIVOT_NEIGHB_INVINDEX << \" requires that numPrefix (\" << num_prefix_ << \") \"\n                             << \"should be less than or equal to numPivot (\" << num_pivot_ << \")\";\n    THROW_RUNTIME_ERR(err);\n  }\n\n  CHECK(num_prefix_ <= num_pivot_);\n\n  pmgr.GetParamOptional(\"pivotFile\", pivot_file_, \"\");\n  \n  size_t indexQty = (data_.size() + chunk_index_size_ - 1) / chunk_index_size_;\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n  LOG(LIB_INFO) << \"# of entries in an index chunk  = \" << chunk_index_size_;\n  LOG(LIB_INFO) << \"# of index chunks             = \" << indexQty;\n  LOG(LIB_INFO) << \"# of indexing thread          = \" << index_thread_qty_;\n  LOG(LIB_INFO) << \"# pivotFile                   = \" << pivot_file_;\n  LOG(LIB_INFO) << \"# pivots                      = \" << num_pivot_;\n  LOG(LIB_INFO) << \"# pivots to index (numPrefix) = \" << num_prefix_;\n  LOG(LIB_INFO) << \"Do we recreate points during indexing when computing distances to pivots?  = \" << recreate_points_;\n\n  if (pivot_file_.empty())\n    GetPermutationPivot(data_, space_, num_pivot_, &pivot_, &pivot_pos_);\n  else {\n    vector<string> vExternIds;\n    space_.ReadDataset(pivot_, vExternIds, pivot_file_, num_pivot_);\n    if (pivot_.size() < num_pivot_) {\n      throw runtime_error(\"Not enough pivots in the file '\" + pivot_file_ + \"'\");\n    }\n    genPivot_ = pivot_;\n  }\n\n  posting_lists_.resize(indexQty);\n\n  /*\n   * After we allocated a pointer to each index chunks' vector,\n   * it is thread-safe to index each chunk separately.\n   */\n  for (size_t chunkId = 0; chunkId < indexQty; ++chunkId) {\n    posting_lists_[chunkId] = shared_ptr<vector<PostingListInt>>(new vector<PostingListInt>());\n  }\n\n  // Don't need more thread than you have chunks\n  index_thread_qty_ = min(index_thread_qty_, indexQty);\n\n  mutex                                               progressBarMutex;\n\n  if (index_thread_qty_ <= 1) {\n    unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n    for (size_t chunkId = 0; chunkId < indexQty; ++chunkId) {\n      IndexChunk(chunkId, progress_bar.get(), progressBarMutex);\n    }\n\n    if (progress_bar) {\n      (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n    }\n  } else {\n    vector<thread>                                      threads(index_thread_qty_);\n    vector<shared_ptr<IndexThreadParamsPNII<dist_t>>>   threadParams;\n\n    LOG(LIB_INFO) << \"Will create \" << index_thread_qty_ << \" indexing threads\";;\n\n    unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n    for (size_t i = 0; i < index_thread_qty_; ++i) {\n      threadParams.push_back(shared_ptr<IndexThreadParamsPNII<dist_t>>(\n                              new IndexThreadParamsPNII<dist_t>(*this, indexQty, i, index_thread_qty_,\n                                                               progress_bar.get(), progressBarMutex)));\n    }\n\n    for (size_t i = 0; i < index_thread_qty_; ++i) {\n      threads[i] = thread(IndexThreadPNII<dist_t>(), ref(*threadParams[i]));\n    }\n\n    for (size_t i = 0; i < index_thread_qty_; ++i) {\n      threads[i].join();\n    }\n\n    if (progress_bar) {\n      (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nPivotNeighbInvertedIndex<dist_t>::IndexChunk(size_t chunkId, ProgressDisplay* progress_bar, mutex& display_mutex) {\n  size_t minId = chunkId * chunk_index_size_;\n  size_t maxId = min(data_.size(), minId + chunk_index_size_);\n\n\n  auto & chunkPostLists = *posting_lists_[chunkId];\n  chunkPostLists.resize(num_pivot_);\n  string externId;\n\n  for (size_t id = 0; id < maxId - minId; ++id) {\n    Permutation perm;\n    const Object* pObj = data_[minId + id];\n\n    unique_ptr<Object> extObj;\n    if (recreate_points_) {\n      extObj=space_.CreateObjFromStr(-1, -1, space_.CreateStrFromObj(pObj, externId), NULL);\n      pObj=extObj.get();\n    }\n\n    GetPermutationPPIndex(pivot_, space_, pObj, &perm);\n    for (size_t j = 0; j < num_prefix_; ++j) {\n      chunkPostLists[perm[j]].push_back(id);\n    }\n        \n    if (id % 1000) {\n      unique_lock<mutex> lock(display_mutex);\n      if (progress_bar) ++(*progress_bar);\n    }\n  }\n\n  // Sorting is essential for merging algos\n  for (auto & p:chunkPostLists) {\n    sort(p.begin(), p.end());\n  }\n}\n    \n\n    \n    \ntemplate <typename dist_t>\nvoid \nPivotNeighbInvertedIndex<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  string inv_proc_alg;\n  \n  pmgr.GetParamOptional(\"skipChecking\", skip_checking_, false);\n  pmgr.GetParamOptional(\"useSort\",      use_sort_,      false);\n  pmgr.GetParamOptional(\"invProcAlg\",   inv_proc_alg,   PERM_PROC_FAST_SCAN);\n\n  if (pmgr.hasParam(\"minTimes\") && pmgr.hasParam(\"numPivotSearch\")) {\n    throw runtime_error(\"One shouldn't specify both parameters minTimes and numPivotSearch, b/c they are synonyms!\");\n  }\n\n  pmgr.GetParamOptional(\"minTimes\",        min_times_, 2);\n  pmgr.GetParamOptional(\"numPivotSearch\",  min_times_, 2);\n  \n  if (inv_proc_alg == PERM_PROC_FAST_SCAN) {\n    inv_proc_alg_ = kScan; \n  } else if (inv_proc_alg == PERM_PROC_MAP) {\n    inv_proc_alg_ = kMap; \n  } else if (inv_proc_alg == PERM_PROC_MERGE) {\n    inv_proc_alg_ = kMerge; \n  } else {\n    stringstream err;\n    err << \"Unknown value of parameter for the inverted file processing algorithm: \" << inv_proc_alg_;\n    throw runtime_error(err.str());\n  } \n    \n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n\n  // It is important to use a non-zero default here, otherwise the code\n  // will through an exception when a) useSort=1 and b) the parameter dbScanFrac is not specified explicitly\n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_,  0.05);\n  CHECK_MSG(db_scan_frac_ >=0 && db_scan_frac_ <=1, \"dbScanFrac should be >=0 and <= 1\");\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,       0);\n\n  pmgr.CheckUnused();\n  \n  LOG(LIB_INFO) << \"Set query-time parameters for PivotNeighbInvertedIndex:\";\n  LOG(LIB_INFO) << \"# pivots to search (minTimes) = \" << min_times_;\n  LOG(LIB_INFO) << \"# dbScanFrac                  = \" << db_scan_frac_;\n  LOG(LIB_INFO) << \"# knnAmp                      = \" << knn_amp_;\n  LOG(LIB_INFO) << \"# useSort                     = \" << use_sort_;\n  LOG(LIB_INFO) << \"invProcAlg (code)             = \" << inv_proc_alg_ << \"(\" << toString(inv_proc_alg_) << \")\";\n  LOG(LIB_INFO) << \"# skipChecking                = \" << skip_checking_;\n}\n\ntemplate <typename dist_t>\nPivotNeighbInvertedIndex<dist_t>::~PivotNeighbInvertedIndex() {\n  for (const Object* o: genPivot_) delete o;\n}\n\ntemplate <typename dist_t>\nconst string PivotNeighbInvertedIndex<dist_t>::StrDesc() const {\n  stringstream str;\n  str <<  \"permutation (inverted index over neighboring pivots)\";\n  return str.str();\n}\n\ntemplate <typename dist_t>\nvoid PivotNeighbInvertedIndex<dist_t>::SaveIndex(const string &location) {\n  ofstream outFile(location);\n  CHECK_MSG(outFile, \"Cannot open file '\" + location + \"' for writing\");\n  outFile.exceptions(std::ios::badbit);\n\n  size_t lineNum = 0;\n  // Save main parameters\n  WriteField(outFile, METHOD_DESC, StrDesc()); lineNum++;\n  WriteField(outFile, \"numPivot\", num_pivot_); lineNum++;\n  WriteField(outFile, \"numPivotIndex\", num_prefix_); lineNum++;\n  WriteField(outFile, \"chunkIndexSize\", chunk_index_size_); lineNum++;\n  WriteField(outFile, \"indexQty\", posting_lists_.size()); lineNum++;\n  WriteField(outFile, \"pivotFile\", pivot_file_); lineNum++;\n\n  if (pivot_file_.empty()) {\n    // Save pivots positions\n    outFile << MergeIntoStr(pivot_pos_, ' ') << endl;\n    lineNum++;\n    vector<IdType> oIDs;\n    for (const Object *pObj: pivot_)\n      oIDs.push_back(pObj->id());\n    // Save pivot IDs\n    outFile << MergeIntoStr(oIDs, ' ') << endl;\n    lineNum++;\n  }\n\n  for(size_t i = 0; i < posting_lists_.size(); ++i) {\n    WriteField(outFile, \"chunkId\", i); lineNum++;\n    CHECK(posting_lists_[i]->size() == num_pivot_);\n    for (size_t pivotId = 0; pivotId < num_pivot_; ++pivotId) {\n      outFile << MergeIntoStr((*posting_lists_[i])[pivotId], ' ') << endl; lineNum++;\n    }\n  }\n\n  WriteField(outFile, LINE_QTY, lineNum + 1 /* including this line */);\n  outFile.close();\n}\n\ntemplate <typename dist_t>\nvoid PivotNeighbInvertedIndex<dist_t>::LoadIndex(const string &location) {\n  ifstream inFile(location);\n  CHECK_MSG(inFile, \"Cannot open file '\" + location + \"' for reading\");\n  inFile.exceptions(std::ios::badbit);\n\n  size_t lineNum = 1;\n  string methDesc;\n  ReadField(inFile, METHOD_DESC, methDesc); lineNum++;\n  CHECK_MSG(methDesc == StrDesc(),\n            \"Looks like you try to use an index created by a different method: \" + methDesc);\n  ReadField(inFile, \"numPivot\", num_pivot_); lineNum++;\n  ReadField(inFile, \"numPivotIndex\", num_prefix_); lineNum++;\n  ReadField(inFile, \"chunkIndexSize\", chunk_index_size_); lineNum++;\n  size_t indexQty;\n  ReadField(inFile, \"indexQty\", indexQty);  lineNum++;\n  ReadField(inFile, \"pivotFile\", pivot_file_); lineNum++;\n\n  string line;\n  if (pivot_file_.empty()) {\n    // Read pivot positions\n    CHECK_MSG(getline(inFile, line),\n              \"Failed to read line #\" + ConvertToString(lineNum) + \" from \" + location);\n    pivot_pos_.clear();\n    CHECK_MSG(SplitStr(line, pivot_pos_, ' '),\n              \"Failed to extract pivot indices from line #\" + ConvertToString(lineNum) + \" from \" + location);\n    CHECK_MSG(pivot_pos_.size() == num_pivot_,\n              \"# of extracted pivots indices from line #\" + ConvertToString(lineNum) + \" (\" +\n              ConvertToString(pivot_pos_.size()) + \")\"\n                  \" doesn't match the number of pivots (\" + ConvertToString(num_pivot_) +\n              \" from the header (location  \" + location + \")\");\n    pivot_.resize(num_pivot_);\n    for (size_t i = 0; i < pivot_pos_.size(); ++i) {\n      CHECK_MSG(pivot_pos_[i] < data_.size(),\n                DATA_MUTATION_ERROR_MSG + \" (detected an object index >= #of data points\");\n      pivot_[i] = data_[pivot_pos_[i]];\n    }\n    ++lineNum;\n    // Read pivot object IDs\n    vector<IdType> oIDs;\n    CHECK_MSG(getline(inFile, line),\n              \"Failed to read line #\" + ConvertToString(lineNum) + \" from \" + location);\n    CHECK_MSG(SplitStr(line, oIDs, ' '),\n              \"Failed to extract pivot IDs from line #\" + ConvertToString(lineNum) + \" from \" + location);\n    CHECK_MSG(oIDs.size() == num_pivot_,\n              \"# of extracted pivots IDs from line #\" + ConvertToString(lineNum) + \" (\" +\n              ConvertToString(pivot_pos_.size()) + \")\"\n                  \" doesn't match the number of pivots (\" + ConvertToString(num_pivot_) +\n              \" from the header (location  \" + location + \")\");\n    /*\n     * Now let's make a quick sanity-check to see if the pivot IDs match what was saved previously.\n     * If the user used a different data set, or a different test split (and a different gold-standard file),\n     * we cannot re-use the index\n     */\n    for (size_t i = 0; i < num_pivot_; ++i) {\n      if (oIDs[i] != pivot_[i]->id()) {\n        PREPARE_RUNTIME_ERR(err) << DATA_MUTATION_ERROR_MSG <<\n                                 \" (different pivot IDs detected, old: \" << oIDs[i] << \" new: \" << pivot_[i]->id() <<\n                                 \" pivot index: \" << i << \")\";\n        THROW_RUNTIME_ERR(err);\n      }\n    }\n    ++lineNum;\n  } else {\n    vector<string> vExternIds;\n    space_.ReadDataset(pivot_, vExternIds, pivot_file_, num_pivot_);\n    if (pivot_.size() < num_pivot_) {\n      throw runtime_error(\"Not enough pivots in the file '\" + pivot_file_+ \"'\");\n    }\n    genPivot_ = pivot_;\n  }\n\n\n  posting_lists_.resize(indexQty);\n\n  for (size_t chunkId = 0; chunkId < indexQty; ++chunkId) {\n    size_t tmp;\n    ReadField(inFile, \"chunkId\", tmp);\n    CHECK_MSG(tmp == chunkId, \"The chunkId (\" + ConvertToString(tmp) + \" read from line \" + ConvertToString(lineNum) +\n              \" doesn't match the expected chunk ID \" + ConvertToString(chunkId));\n    ++lineNum;\n    posting_lists_[chunkId] = shared_ptr<vector<PostingListInt>>(new vector<PostingListInt>());\n    (*posting_lists_[chunkId]).resize(num_pivot_);\n    for (size_t pivotId = 0; pivotId < num_pivot_; ++pivotId) {\n      CHECK_MSG(getline(inFile, line),\n                \"Failed to read line #\" + ConvertToString(lineNum) + \" from \" + location);\n      CHECK_MSG(SplitStr(line, (*posting_lists_[chunkId])[pivotId], ' '),\n                \"Failed to extract object IDs from line #\" + ConvertToString(lineNum) +\n                \" chunkId \" + ConvertToString(chunkId) + \" location: \" + location);\n      ++lineNum;\n    }\n  }\n  size_t ExpLineNum;\n  ReadField(inFile, LINE_QTY, ExpLineNum);\n  CHECK_MSG(lineNum == ExpLineNum,\n            DATA_MUTATION_ERROR_MSG + \" (expected number of lines \" + ConvertToString(ExpLineNum) +\n            \" read so far doesn't match the number of read lines: \" + ConvertToString(lineNum));\n  inFile.close();\n}\n\ntemplate <typename dist_t>\ntemplate <typename QueryType>\nvoid PivotNeighbInvertedIndex<dist_t>::GenSearch(QueryType* query, size_t K) const {\n  // Let's make this check here. Otherwise, if you misspell dbScanFrac, you will get \n  // a strange error message that says: dbScanFrac should be in the range [0,1].\n  if (!knn_amp_) {\n    if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n      stringstream err;\n      err << METH_PIVOT_NEIGHB_INVINDEX << \" requires that dbScanFrac is in the range [0,1]\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  size_t db_scan = computeDbScan(K, posting_lists_.size());\n\n\n  Permutation perm_q;\n  GetPermutationPPIndex(pivot_, query, &perm_q);\n\n  vector<unsigned>          counter(chunk_index_size_);\n\n\n\n  for (size_t chunkId = 0; chunkId < posting_lists_.size(); ++chunkId) {\n    const auto & chunkPostLists = *posting_lists_[chunkId];\n    size_t minId = chunkId * chunk_index_size_;\n    size_t maxId = min(data_.size(), minId + chunk_index_size_);\n    size_t chunkQty = maxId - minId;\n\n    const auto data_start = &data_[0] + minId;\n\n    if (use_sort_) {\n      if (!db_scan) {\n        stringstream err;\n        err << \"Bug: either dbScanFrac or knnAmp are expected to be non-zero \" <<\n               \" currently, dbScanFrac=\" << db_scan_frac_ << \" knnAmp=\" << knn_amp_;\n        throw runtime_error(err.str());\n      }\n      vector<pair<int, size_t>> candidates;\n\n      if (inv_proc_alg_ == kMap) {\n        std::unordered_map<uint32_t, uint32_t> map_counter;\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          for (auto& p : chunkPostLists[perm_q[i]]) {\n            map_counter[p]++;\n          }\n        }\n\n        candidates.reserve(db_scan);\n\n        for (auto& it : map_counter) {\n          if (it.second >= min_times_) {\n            candidates.push_back(std::make_pair(-static_cast<int>(it.second), it.first));\n          }\n        }\n      } else if (inv_proc_alg_ == kScan) {\n        candidates.resize(chunkQty);\n\n        for (size_t i = 0; i < candidates.size(); ++i) {\n          candidates[i].second = i;\n        }\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          for (auto& p : chunkPostLists[perm_q[i]]) {\n            candidates[p].first--;\n          }\n        }\n      } else if (inv_proc_alg_ == kMerge) {\n        VectIdCount   tmpRes[2];\n        unsigned      prevRes = 0;\n\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          postListUnion(tmpRes[prevRes], chunkPostLists[perm_q[i]], tmpRes[1-prevRes]);\n          prevRes = 1 - prevRes;\n        }\n\n        candidates.reserve(db_scan);\n\n        for (const auto& it: tmpRes[1-prevRes]) {\n          if (it.qty >= min_times_) {\n            candidates.push_back(std::make_pair(-static_cast<int>(it.qty), it.id));\n          }\n        }\n      } else {\n        PREPARE_RUNTIME_ERR(err) << \"Bug, unknown inv_proc_alg_: \" << inv_proc_alg_;\n        THROW_RUNTIME_ERR(err);\n      }\n\n      IncrementalQuickSelect<IntInt> quick_select(candidates);\n\n      size_t scan_qty = min(db_scan, candidates.size());\n\n      for (size_t i = 0; i < scan_qty; ++i) {\n        auto z = quick_select.GetNext();\n        if (static_cast<size_t>(-z.first) >= min_times_) {\n          const size_t idx = z.second;\n          quick_select.Next();\n          if (!skip_checking_) query->CheckAndAddToResult(data_start[idx]);\n        } else {\n          break;\n        }\n      }\n    } else {\n      if (inv_proc_alg_ == kMap) {\n        std::unordered_map<uint32_t, uint32_t> map_counter;\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          for (auto& p : chunkPostLists[perm_q[i]]) {\n            map_counter[p]++;\n          }\n        }\n        for (auto& it : map_counter) {\n          if (it.second >= min_times_) {\n            const size_t idx = it.first;\n            if (!skip_checking_) query->CheckAndAddToResult(data_start[idx]);\n          }\n        }\n      } else if (inv_proc_alg_ == kScan) {\n        if (chunkId) {\n          memset(&counter[0], 0, sizeof(counter[0])*counter.size());\n        }\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          for (auto& p : chunkPostLists[perm_q[i]]) {\n            counter[p]++;\n          }\n        }\n        for (size_t i = 0; i < chunkQty; ++i) {\n          if (counter[i] >= min_times_) {\n            if (!skip_checking_) query->CheckAndAddToResult(data_start[i]);\n          }\n        }\n      } else if (inv_proc_alg_ == kMerge) {\n        VectIdCount   tmpRes[2];\n        unsigned      prevRes = 0;\n        for (size_t i = 0; i < num_prefix_; ++i) {\n          postListUnion(tmpRes[prevRes], chunkPostLists[perm_q[i]], tmpRes[1-prevRes]);\n          prevRes = 1 - prevRes;\n        }\n\n        for (const auto& it: tmpRes[1-prevRes]) {\n          if (it.qty >= min_times_) {\n            if (!skip_checking_) query->CheckAndAddToResult(data_start[it.id]);\n          }\n        }\n      } else {\n        PREPARE_RUNTIME_ERR(err) << \"Bug, unknown inv_proc_alg_: \" << inv_proc_alg_;\n        THROW_RUNTIME_ERR(err);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid PivotNeighbInvertedIndex<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t>\nvoid PivotNeighbInvertedIndex<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  GenSearch(query, query->GetK());\n}\n\ntemplate class PivotNeighbInvertedIndex<float>;\ntemplate class PivotNeighbInvertedIndex<double>;\ntemplate class PivotNeighbInvertedIndex<int>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/proj_vptree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <sstream>\n#include <memory>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"knnqueue.h\"\n#include \"method/proj_vptree.h\"\n#include \"utils.h\"\n#include \"distcomp.h\"\n#include \"projection.h\"\n#include \"spacefactory.h\"\n#include \"report_intr_dim.h\"\n\nnamespace similarity {\n\nusing std::unique_ptr;\n\ntemplate <typename dist_t>\nObject* ProjectionVPTree<dist_t>::ProjectOneVect(size_t targSpaceId,\n                                         const Query<dist_t>* pQuery,\n                                         const Object* pSrcObj) const {\n  vector<float> targVect(projDim_);\n\n  projObj_->compProj(pQuery, pSrcObj, &targVect[0]);\n\n  return VPTreeSpace_->CreateObjFromVect(targSpaceId, -1, targVect);\n}\n\ntemplate <typename dist_t>\nvoid ProjectionVPTree<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  CHECK_MSG(VPTreeIndex_ != NULL, \"Expecting non-null pointer for the VP-tree index in SetQueryTimeParams\");\n  AnyParamManager pmgr(QueryTimeParams);\n\n  AnyParams vptreeQueryParams = pmgr.ExtractParameters(VPTreeIndex_->getQueryTimeParams());\n  VPTreeIndex_->SetQueryTimeParams(vptreeQueryParams);\n\n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n  \n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_, 0);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,      0);\n\n  LOG(LIB_INFO) << \"Set query-time parameters for ProjectionVPTree:\";\n  LOG(LIB_INFO) << \"dbScanFrac=\" << db_scan_frac_;\n  LOG(LIB_INFO) << \"knnAmp=\"     << knn_amp_;\n}\n\ntemplate <typename dist_t>\nProjectionVPTree<dist_t>::ProjectionVPTree(\n    bool PrintProgress,\n    Space<dist_t>& space,\n    const ObjectVector& data) :\n      space_(space),\n      data_(data),  \n      PrintProgress_(PrintProgress),\n      K_(0),\n      knn_amp_(0),\n      db_scan_frac_(0)\n{\n}\n\n\ntemplate <typename dist_t>\nvoid ProjectionVPTree<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n  string          projSpaceType = \"l2\";\n\n  size_t        intermDim = 0;\n\n  size_t        binThreshold = 0;\n  string        projType;\n\n  pmgr.GetParamOptional(\"intermDim\", intermDim, 0);\n  pmgr.GetParamRequired(\"projDim\", projDim_);\n  pmgr.GetParamRequired(\"projType\", projType);\n  pmgr.GetParamOptional(\"binThreshold\", binThreshold, 0);\n  pmgr.GetParamOptional(\"projSpaceType\", projSpaceType, \"l2\");\n\n  AnyParams RemainParams;\n\n  RemainParams = pmgr.ExtractParametersExcept(\n                        {\n                         \"intermDim\",\n                         \"projDim\",\n                         \"projType\",\n                         \"binThreshold\",\n                         \"projSpaceType\"\n                        });\n\n  LOG(LIB_INFO) << \"projType     = \" << projType;\n  LOG(LIB_INFO) << \"projSpaceType= \" << projSpaceType;\n  LOG(LIB_INFO) << \"projDim      = \" << projDim_;\n  LOG(LIB_INFO) << \"intermDim    = \" << intermDim;\n  LOG(LIB_INFO) << \"binThreshold = \" << binThreshold;\n\n\n  /*\n   * Let's extract all parameters before doing\n   * any heavy lifting. If an exception fires for some reason,\n   * e.g., because the user specified a wrong projection\n   * type, the destructor of the AnyParams will check\n   * for unclaimed parameters. Currently, this destructor\n   * terminates the application and prints and apparently unrelated\n   * error message (e.g. a wrong value for the parameter projType)\n   */\n\n  projObj_.reset(Projection<dist_t>::createProjection(\n                    space_,\n                    data_,\n                    projType,\n                    intermDim,\n                    projDim_,\n                    binThreshold));\n\n  const string   projDescStr = projSpaceType;\n  vector<string> projSpaceDesc;\n\n  ParseSpaceArg(projDescStr, projSpaceType, projSpaceDesc);\n  unique_ptr<AnyParams> projSpaceParams =\n            unique_ptr<AnyParams>(new AnyParams(projSpaceDesc));\n\n  unique_ptr<Space<dist_t>> tmpSpace(SpaceFactoryRegistry<dist_t>::\n                     Instance().CreateSpace(projSpaceType, *projSpaceParams));\n\n  if (NULL == tmpSpace.get()) {\n    stringstream err;\n    err << \"Cannot create the projection space: '\" << projSpaceType\n                   << \"' (desc: '\" << projDescStr << \"')\";\n    throw runtime_error(err.str());\n  }\n\n  VectorSpaceSimpleStorage<float>*  ps =\n      dynamic_cast<VectorSpaceSimpleStorage<float>*>(tmpSpace.get());\n\n  if (NULL == ps) {\n    stringstream err;\n    err << \"The target projection space: '\" << projDescStr << \"' \"\n                   << \" should be a simple-storage dense vector space, e.g., l2\";\n    throw runtime_error(err.str());\n  }\n  VPTreeSpace_.reset(ps);\n  tmpSpace.release();\n\n\n\n  projData_.resize(data_.size());\n\n  for (size_t id = 0; id < data_.size(); ++id) {\n    projData_[id] = ProjectOneVect(id, NULL, data_[id]);\n  }\n\n  ReportIntrinsicDimensionality(\"Set of projections\" , *VPTreeSpace_, projData_);\n\n  VPTreeIndex_.reset(new VPTree<float, PolynomialPruner<float>>(\n                                          PrintProgress_,\n                                          *VPTreeSpace_,\n                                          projData_, true /* use random centers */));\n  VPTreeIndex_->CreateIndex(RemainParams);\n\n  // Reset parameters only after the VP-tree index is created!\n  this->ResetQueryTimeParams();\n}\n\ntemplate <typename dist_t>\nProjectionVPTree<dist_t>::~ProjectionVPTree() {\n  for (size_t i = 0; i < data_.size(); ++i) {\n    delete projData_[i];\n  }\n}\n\ntemplate <typename dist_t>\nconst std::string ProjectionVPTree<dist_t>::StrDesc() const {\n  std::stringstream str;\n  str <<  \"projection (vptree)\";\n  return str.str();\n}\n\ntemplate <typename dist_t>\nvoid ProjectionVPTree<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n    stringstream err;\n    err << METH_PROJ_VPTREE << \" requires that dbScanFrac is in the range [0,1]\";\n    throw runtime_error(err.str());\n  }\n  size_t db_scan_qty = computeDbScan(0);\n  if (!db_scan_qty) {\n    throw runtime_error(\"For the range search you need to specify a sufficiently large dbScanFrac!\");\n  }\n  unique_ptr<Object>            QueryObject(ProjectOneVect(0, query, query->QueryObject()));\n  unique_ptr<KNNQuery<float>>   VPTreeQuery(new KNNQuery<float>(*VPTreeSpace_,\n                                                                QueryObject.get(),\n                                                                db_scan_qty, 0.0));\n\n  VPTreeIndex_->Search(VPTreeQuery.get(), -1);\n\n  unique_ptr<KNNQueue<float>> ResQueue(VPTreeQuery->Result()->Clone());\n\n  while (!ResQueue->Empty()) {\n      size_t id = reinterpret_cast<const Object*>(ResQueue->TopObject())->id();\n      query->CheckAndAddToResult(data_[id]);\n      ResQueue->Pop();\n  }\n}\n\ntemplate <typename dist_t>\nvoid ProjectionVPTree<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  size_t db_scan_qty = computeDbScan(query->GetK());\n  if (!db_scan_qty) {\n    throw runtime_error(\"You need to specify knnAmp > 0 or a sufficiently large dbScanFrac!\");\n  }\n\n  unique_ptr<Object>            QueryObject(ProjectOneVect(0, query, query->QueryObject()));\n  unique_ptr<KNNQuery<float>>   VPTreeQuery(new KNNQuery<float>(*VPTreeSpace_,\n                                                                QueryObject.get(),\n                                                                db_scan_qty, 0.0));\n\n  VPTreeIndex_->Search(VPTreeQuery.get(), -1);\n\n  unique_ptr<KNNQueue<float>> ResQueue(VPTreeQuery->Result()->Clone());\n\n  while (!ResQueue->Empty()) {\n      size_t id = reinterpret_cast<const Object*>(ResQueue->TopObject())->id();\n      query->CheckAndAddToResult(data_[id]);\n      ResQueue->Pop();\n  }\n}\n\ntemplate class ProjectionVPTree<float>;\ntemplate class ProjectionVPTree<double>;\ntemplate class ProjectionVPTree<int>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/projection_index_incremental.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <map>\n#include <string>\n#include <sstream>\n#include <stdexcept>\n#include <limits>\n#include <queue>\n\n#include \"distcomp.h\"\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"knnquery.h\"\n#include \"incremental_quick_select.h\"\n#include \"method/projection_index_incremental.h\"\n#include \"utils.h\"\n\n#define METH_PROJ_INDEX_INCREMENTAL   \"proj_incr\"\n\nusing namespace std;\n\ntypedef pair<float,int> FloatInt; \n\nnamespace similarity {\n\ntemplate <typename dist_t>\nProjectionIndexIncremental<dist_t>::ProjectionIndexIncremental(\n    bool  PrintProgress,\n    const Space<dist_t>&  space,\n    const ObjectVector&   data) \n      :  space_(space), data_(data), PrintProgress_(PrintProgress),\n         K_(0) {\n}\n\ntemplate <typename dist_t>\nvoid ProjectionIndexIncremental<dist_t>::CreateIndex(const AnyParams&      IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  size_t        binThreshold;\n  string        projType;\n  string        projSpaceType;\n  size_t        intermDim;\n\n  pmgr.GetParamOptional(\"intermDim\",      intermDim,    0);\n  pmgr.GetParamRequired(\"projDim\",        proj_dim_);\n  pmgr.GetParamRequired(\"projType\",       proj_descr_);\n  pmgr.GetParamOptional(\"binThreshold\",   binThreshold, 0);\n\n  pmgr.CheckUnused();\n  this->ResetQueryTimeParams();\n\n\n  LOG(LIB_INFO) << \"projType     = \" << proj_descr_;\n  LOG(LIB_INFO) << \"projDim      = \" << proj_dim_;\n  LOG(LIB_INFO) << \"intermDim    = \" << intermDim;\n  LOG(LIB_INFO) << \"binThreshold = \" << binThreshold;\n\n  /*\n   * Let's extract all parameters before doing\n   * any heavy lifting. If an exception fires for some reason,\n   * e.g., because the user specified a wrong projection\n   * type, the destructor of the AnyParams will check\n   * for unclaimed parameters. Currently, this destructor\n   * terminates the application and prints and apparently unrelated\n   * error message (e.g. a wrong parameter name)\n   */\n\n  proj_obj_.reset(Projection<dist_t>::createProjection(\n                    space_,\n                    data_,\n                    proj_descr_,\n                    intermDim,\n                    proj_dim_,\n                    binThreshold));\n\n  const string   projDescStr = proj_descr_;\n  vector<string> projSpaceDesc;\n\n  ParseSpaceArg(projDescStr, projSpaceType, projSpaceDesc);\n  unique_ptr<AnyParams> projSpaceParams =\n            unique_ptr<AnyParams>(new AnyParams(projSpaceDesc));\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n#ifdef PROJ_CONTIGUOUS_STORAGE\n  proj_vects_.resize(data_.size() * proj_dim_);\n  vector<float> TmpVect(proj_dim_);\n\n  for (size_t i = 0, start = 0; i < data_.size(); ++i, start += proj_dim_) {\n    proj_obj_->compProj(NULL, data_[i], &TmpVect[0]);\n    memcpy(&proj_vects_[start], &TmpVect[0], sizeof(proj_vects_[0])*proj_dim_); \n    if (progress_bar) ++(*progress_bar);\n  }\n#else\n  proj_vects_.resize(data.size());\n  for (size_t i = 0; i < data.size(); ++i) {\n    proj_vects_[i].resize(proj_dim_);\n    proj_obj_->compProj(NULL, data_[i], &proj_vects_[i][0]);\n    if (progress_bar) ++(*progress_bar);\n  }\n#endif\n}\n    \ntemplate <typename dist_t>\nvoid \nProjectionIndexIncremental<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager   pmgr(QueryTimeParams);\n\n  pmgr.GetParamOptional(\"useQueue\", use_priority_queue_, false);\n  pmgr.GetParamOptional(\"maxProjDist\", max_proj_dist_, numeric_limits<float>::max());\n  pmgr.GetParamOptional(\"useCosine\",   use_cosine_,    false);\n    \n  if (pmgr.hasParam(\"dbScanFrac\") && pmgr.hasParam(\"knnAmp\")) {\n    throw runtime_error(\"One shouldn't specify both parameters dbScanFrac and knnAmp\");\n  }\n  \n  pmgr.GetParamOptional(\"dbScanFrac\",   db_scan_frac_,  0.05);\n  pmgr.GetParamOptional(\"knnAmp\",       knn_amp_,       0);\n  pmgr.CheckUnused();\n  LOG(LIB_INFO) << \"Set query-time parameters for ProjectionIndexIncremental:\";\n  LOG(LIB_INFO) << \"dbDscanFrac  = \" << db_scan_frac_;\n  LOG(LIB_INFO) << \"knnAmp       = \" << knn_amp_;\n  LOG(LIB_INFO) << \"maxProjDist  = \" << max_proj_dist_;\n  LOG(LIB_INFO) << \"useQueue     = \" << use_priority_queue_;\n  LOG(LIB_INFO) << \"useCosine    = \" << use_cosine_;\n}\n\ntemplate <typename dist_t>\nProjectionIndexIncremental<dist_t>::~ProjectionIndexIncremental() {\n}\n\ntemplate <typename dist_t>\nconst std::string ProjectionIndexIncremental<dist_t>::StrDesc() const {\n  std::stringstream str;\n  str <<  \"projection (\" << proj_descr_ << \") incr. sorting\";\n  return str.str();\n}\n\ntemplate <typename dist_t> \ntemplate <typename QueryType>\nvoid ProjectionIndexIncremental<dist_t>::GenSearch(QueryType* query, size_t K) const {\n  // Let's make this check here. Otherwise, if you misspell dbScanFrac, you will get \n  // a strange error message that says: dbScanFrac should be in the range [0,1].\n  if (!knn_amp_) {\n    if (db_scan_frac_ < 0.0 || db_scan_frac_ > 1.0) {\n      stringstream err;\n      err << METH_PROJECTION_INC_SORT << \" requires that dbScanFrac is in the range [0,1]\";\n      throw runtime_error(err.str());\n    }\n  }\n\n  size_t db_scan = computeDbScan(K);\n\n\n  vector<float>     QueryVect(proj_dim_);\n  proj_obj_->compProj(query, query->QueryObject(), &QueryVect[0]);\n\n  if (!use_priority_queue_) {\n    std::vector<FloatInt> proj_dists;\n    proj_dists.reserve(data_.size());\n\n#ifdef PROJ_CONTIGUOUS_STORAGE\n    for (size_t i = 0, start = 0; i < data_.size(); ++i, start += proj_dim_) {\n      float projDist = use_cosine_ ? \n                    CosineSimilarity(&proj_vects_[start], &QueryVect[0], proj_dim_)\n                    :\n                    L2NormSIMD(&proj_vects_[start], &QueryVect[0], proj_dim_)\n                    ;\n#else\n    for (size_t i = 0; i < proj_vects_.size(); ++i) {\n      float projDist = use_cosine_ ? \n                    CosineSimilarity(&proj_vects_[i][0], &QueryVect[0], proj_dim_)\n                    :\n                    L2SqrSIMD(&proj_vects_[i][0], &QueryVect[0], proj_dim_);\n#endif\n      if (projDist <= max_proj_dist_)\n        proj_dists.push_back(std::make_pair(projDist, i));\n    }\n\n    IncrementalQuickSelect<FloatInt> quick_select(proj_dists);\n\n    size_t scan_qty = min(db_scan, proj_dists.size());\n\n    for (size_t i = 0; i < scan_qty; ++i) {\n      const size_t idx = quick_select.GetNext().second;\n      quick_select.Next();\n      query->CheckAndAddToResult(data_[idx]);\n    }\n  } else {\n    priority_queue<FloatInt> filterQueue;\n\n#ifdef PROJ_CONTIGUOUS_STORAGE\n    for (size_t i = 0, start = 0; i < data_.size(); ++i, start += proj_dim_) {\n      float projDist = L2NormSIMD(&proj_vects_[start], &QueryVect[0], proj_dim_);\n#else\n    for (size_t i = 0; i < proj_vects_.size(); ++i) {\n      float projDist = L2NormSIMD(&proj_vects_[i][0], &QueryVect[0], proj_dim_);\n#endif\n      if (projDist <= max_proj_dist_) {\n        filterQueue.push(std::make_pair(projDist, i));\n        if (filterQueue.size() > db_scan) filterQueue.pop();\n      }\n    }\n\n    while (filterQueue.size() > db_scan) filterQueue.pop();\n    while (!filterQueue.empty()) {\n      const size_t idx = filterQueue.top().second;\n      query->CheckAndAddToResult(data_[idx]);\n      filterQueue.pop();\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid ProjectionIndexIncremental<dist_t>::Search(\n    RangeQuery<dist_t>* query, IdType) const {\n  GenSearch(query, 0);\n}\n\ntemplate <typename dist_t>\nvoid ProjectionIndexIncremental<dist_t>::Search(\n    KNNQuery<dist_t>* query, IdType) const {\n  GenSearch(query, query->GetK());\n}\n\n\ntemplate class ProjectionIndexIncremental<float>;\ntemplate class ProjectionIndexIncremental<double>;\ntemplate class ProjectionIndexIncremental<int>;\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/seqsearch.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <thread>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"knnqueue.h\"\n#include \"method/seqsearch.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t, typename QueryType>\nstruct SearchThreadParamSeqSearch {\n  const Space<dist_t>&      space_;\n  const ObjectVector&       data_;\n  IdTypeUnsign              threadId_;\n  QueryType&                query_;\n\n  SearchThreadParamSeqSearch(\n      const Space<dist_t>&             space,\n      const ObjectVector&              data,\n      IdTypeUnsign                     threadId,\n      QueryType&                       query\n  ) :\n      space_(space),\n      data_(data),\n      threadId_(threadId),\n      query_(query) {}\n};\n\ntemplate <typename dist_t, typename QueryType>\nstruct SearchThreadSeqSearch {\n  void operator()(SearchThreadParamSeqSearch<dist_t, QueryType> &prm) {\n    for (const Object* o: prm.data_) {\n      prm.query_.CheckAndAddToResult(o);\n    }\n  }\n};\n\n\ntemplate <typename dist_t>\nSeqSearch<dist_t>::SeqSearch(Space<dist_t>& space, const ObjectVector& origData) :\n                      space_(space), origData_(origData), cacheOptimizedBucket_(NULL), pData_(NULL) {\n}\n\ntemplate <typename dist_t>\nvoid SeqSearch<dist_t>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  bool bCopyMem;\n  pmgr.GetParamOptional(\"copyMem\", bCopyMem, false);\n  pmgr.GetParamOptional(\"multiThread\", multiThread_, false);\n  pmgr.GetParamOptional(\"threadQty\", threadQty_, thread::hardware_concurrency()/2);\n  if (threadQty_ < 2) multiThread_ = false;\n  pmgr.CheckUnused();\n\n  LOG(LIB_INFO) << \"copyMem       = \" << bCopyMem;\n  LOG(LIB_INFO) << \"multiThread   = \" << multiThread_;\n\n  if (multiThread_) {\n    CHECK(threadQty_ > 1);\n    const ObjectVector& data = getData();\n    vvThreadData.resize(threadQty_);\n    for (size_t i = 0; i < threadQty_; ++i)\n      vvThreadData.reserve((data.size() + threadQty_ - 1)/threadQty_);\n\n    size_t D = (data.size() + threadQty_ - 1)/threadQty_;\n\n    for (size_t i = 0; i < data.size(); ++i) {\n      //vvThreadData[i % threadQty_].push_back(data[i]);\n      vvThreadData[i / D].push_back(data[i]); // This version seems to be working much better\n    }\n    /*\n    for (size_t i = 0; i < threadQty_; ++i) {\n      cout << \"#######@@@\" << vvThreadData[i].size() << endl;\n    }\n     */\n    LOG(LIB_INFO) << \"threadQty     = \" << threadQty_;\n  }\n\n  SetQueryTimeParams(getEmptyParams());\n\n  if (bCopyMem) {\n    CreateCacheOptimizedBucket(origData_, cacheOptimizedBucket_, pData_);\n  }\n}\n\ntemplate <typename dist_t>\nSeqSearch<dist_t>::~SeqSearch() {\n  if (cacheOptimizedBucket_ != NULL) {\n    ClearBucket(cacheOptimizedBucket_, pData_);\n  }\n}\n\ntemplate <typename dist_t>\nvoid SeqSearch<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  const ObjectVector& data = getData();\n\n  if (!multiThread_) {\n    for (size_t i = 0; i < data.size(); ++i) {\n      query->CheckAndAddToResult(data[i]);\n    }\n  } else {\n    vector<unique_ptr<RangeQuery<dist_t>>>                    vQueries(threadQty_);\n    vector<thread>                                            vThreads(threadQty_);\n    vector<unique_ptr<SearchThreadParamSeqSearch<dist_t, RangeQuery<dist_t>>>>    vThreadParams(threadQty_);\n\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vQueries[i].reset(new RangeQuery<dist_t>(space_, query->QueryObject(), query->Radius()));\n      vThreadParams[i].reset(new SearchThreadParamSeqSearch<dist_t,RangeQuery<dist_t>>(space_, vvThreadData[i], i, *vQueries[i]));\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vThreads[i] = thread(SearchThreadSeqSearch<dist_t,RangeQuery<dist_t>>(), ref(*vThreadParams[i]));\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vThreads[i].join();\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      RangeQuery<dist_t>& threadQuery = vThreadParams[i]->query_;\n      const ObjectVector& res          = *threadQuery.Result();\n      const std::vector<dist_t>& dists = *threadQuery.ResultDists();\n      query->AddDistanceComputations(threadQuery.DistanceComputations());\n      for (size_t k = 0; k < res.size(); ++k) {\n        query->CheckAndAddToResult(dists[k], res[k]);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid SeqSearch<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  const ObjectVector& data = getData();\n\n  if (!multiThread_) {\n    for (size_t i = 0; i < data.size(); ++i) {\n      query->CheckAndAddToResult(data[i]);\n    }\n  } else {\n    vector<unique_ptr<KNNQuery<dist_t>>> vQueries(threadQty_);\n    vector<thread>                       vThreads(threadQty_);\n    vector<unique_ptr<SearchThreadParamSeqSearch<dist_t, KNNQuery<dist_t>>>>    vThreadParams(threadQty_);\n\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vQueries[i].reset(new KNNQuery<dist_t>(space_, query->QueryObject(), query->GetK(), query->GetEPS()));\n      vThreadParams[i].reset(new SearchThreadParamSeqSearch<dist_t,KNNQuery<dist_t>>(space_, vvThreadData[i], i, *vQueries[i]));\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vThreads[i] = thread(SearchThreadSeqSearch<dist_t,KNNQuery<dist_t>>(), ref(*vThreadParams[i]));\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      vThreads[i].join();\n    }\n    for (size_t i = 0; i < threadQty_; ++i) {\n      KNNQuery<dist_t>& threadQuery = vThreadParams[i]->query_;\n      unique_ptr<KNNQueue<dist_t>> ResQ(threadQuery.Result()->Clone());\n      query->AddDistanceComputations(threadQuery.DistanceComputations());\n      while(!ResQ->Empty()) {\n        const Object *pObj = reinterpret_cast<const Object *>(ResQ->TopObject());\n        query->CheckAndAddToResult(ResQ->TopDistance(), pObj);\n        ResQ->Pop();\n      }\n    }\n  }\n}\n\ntemplate class SeqSearch<float>;\ntemplate class SeqSearch<double>;\ntemplate class SeqSearch<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/small_world_rand.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <cmath>\n#include <memory>\n#include <iostream>\n#include <mmintrin.h>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/small_world_rand.h\"\n#include \"sort_arr_bi.h\"\n\n#include <vector>\n#include <set>\n#include <map>\n#include <sstream>\n#include <typeinfo>\n\n//#define START_WITH_E0\n#define START_WITH_E0_AT_QUERY_TIME\n\n#define USE_BITSET_FOR_INDEXING 1\n//#define USE_ALTERNATIVE_FOR_INDEXING \n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nstruct IndexThreadParamsSW {\n  const Space<dist_t>&                        space_;\n  SmallWorldRand<dist_t>&                     index_;\n  const ObjectVector&                         data_;\n  size_t                                      index_every_;\n  size_t                                      out_of_;\n  ProgressDisplay*                            progress_bar_;\n  mutex&                                      display_mutex_;\n  size_t                                      progress_update_qty_;\n  \n  IndexThreadParamsSW(\n                     const Space<dist_t>&             space,\n                     SmallWorldRand<dist_t>&          index, \n                     const ObjectVector&              data,\n                     size_t                           index_every,\n                     size_t                           out_of,\n                     ProgressDisplay*                 progress_bar,\n                     mutex&                           display_mutex,\n                     size_t                           progress_update_qty\n                      ) : \n                     space_(space),\n                     index_(index), \n                     data_(data),\n                     index_every_(index_every),\n                     out_of_(out_of),\n                     progress_bar_(progress_bar),\n                     display_mutex_(display_mutex),\n                     progress_update_qty_(progress_update_qty)\n                     { }\n};\n\ntemplate <typename dist_t>\nstruct IndexThreadSW {\n  void operator()(IndexThreadParamsSW<dist_t>& prm) {\n    ProgressDisplay*  progress_bar = prm.progress_bar_;\n    mutex&            display_mutex(prm.display_mutex_); \n    /* \n     * Skip the first element, it was added already\n     */\n    size_t nextQty = prm.progress_update_qty_;\n    for (size_t id = 1; id < prm.data_.size(); ++id) {\n      if (prm.index_every_ == id % prm.out_of_) {\n        MSWNode* node = new MSWNode(prm.data_[id], id);\n        prm.index_.add(node);\n      \n        if ((id + 1 >= min(prm.data_.size(), nextQty)) && progress_bar) {\n          unique_lock<mutex> lock(display_mutex);\n          (*progress_bar) += (nextQty - progress_bar->count());\n          nextQty += prm.progress_update_qty_;\n        }\n      }\n    }\n    if (progress_bar) {\n      unique_lock<mutex> lock(display_mutex);\n      (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n    }\n  }\n};\n\ntemplate <typename dist_t>\nSmallWorldRand<dist_t>::SmallWorldRand(bool PrintProgress,\n                                       const Space<dist_t>& space,\n                                       const ObjectVector& data) : \n                                       space_(space), data_(data), PrintProgress_(PrintProgress) {}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::CreateIndex(const AnyParams& IndexParams) \n{\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"NN\",                 NN_,                  10);\n  pmgr.GetParamOptional(\"efConstruction\",     efConstruction_,      NN_);\n  efSearch_ = NN_;\n  pmgr.GetParamOptional(\"initIndexAttempts\",  initIndexAttempts_,   1);\n  pmgr.GetParamOptional(\"indexThreadQty\",     indexThreadQty_,      thread::hardware_concurrency());\n\n  LOG(LIB_INFO) << \"NN                  = \" << NN_;\n  LOG(LIB_INFO) << \"efConstruction_     = \" << efConstruction_;\n  LOG(LIB_INFO) << \"initIndexAttempts   = \" << initIndexAttempts_;\n  LOG(LIB_INFO) << \"indexThreadQty      = \" << indexThreadQty_;\n\n  pmgr.CheckUnused();\n\n  SetQueryTimeParams(getEmptyParams());\n\n  if (data_.empty()) return;\n\n  // 2) One entry should be added before all the threads are started, or else add() will not work properly\n  addCriticalSection(new MSWNode(data_[0], 0 /* id == 0 */));\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n  if (indexThreadQty_ <= 1) {\n    // Skip the first element, one element is already added\n    if (progress_bar) ++(*progress_bar);\n    for (size_t id = 1; id < data_.size(); ++id) {\n      MSWNode* node = new MSWNode(data_[id], id);\n      add(node);\n      if (progress_bar) ++(*progress_bar);\n    }\n  } else {\n    vector<thread>                                    threads(indexThreadQty_);\n    vector<shared_ptr<IndexThreadParamsSW<dist_t>>>   threadParams; \n    mutex                                             progressBarMutex;\n\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threadParams.push_back(shared_ptr<IndexThreadParamsSW<dist_t>>(\n                              new IndexThreadParamsSW<dist_t>(space_, *this, data_, i, indexThreadQty_,\n                                                              progress_bar.get(), progressBarMutex, 200)));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i] = thread(IndexThreadSW<dist_t>(), ref(*threadParams[i]));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i].join();\n    }\n    if (ElList_.size() != data_.size()) {\n      stringstream err;\n      err << \"Bug: ElList_.size() (\" << ElList_.size() << \") isn't equal to data_.size() (\" << data_.size() << \")\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    LOG(LIB_INFO) << indexThreadQty_ << \" indexing threads have finished\";\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRand<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  pmgr.GetParamOptional(\"initSearchAttempts\", initSearchAttempts_,  1);\n  pmgr.GetParamOptional(\"efSearch\", efSearch_, NN_);\n  string tmp;\n  pmgr.GetParamOptional(\"algoType\", tmp, \"v1merge\"); \n  ToLower(tmp);\n  if (tmp == \"v1merge\") searchAlgoType_ = kV1Merge;\n  else if (tmp == \"old\") searchAlgoType_ = kOld;\n  else {\n    throw runtime_error(\"algoType should be one of the following: old, v1merge\");\n  }\n  pmgr.CheckUnused();\n  LOG(LIB_INFO) << \"Set SmallWorldRand query-time parameters:\";\n  LOG(LIB_INFO) << \"initSearchAttempts =\" << initSearchAttempts_;\n  LOG(LIB_INFO) << \"efSearch           =\" << efSearch_;\n}\n\ntemplate <typename dist_t>\nconst std::string SmallWorldRand<dist_t>::StrDesc() const {\n  return METH_SMALL_WORLD_RAND;\n}\n\ntemplate <typename dist_t>\nSmallWorldRand<dist_t>::~SmallWorldRand() {\n}\n\ntemplate <typename dist_t>\nMSWNode* SmallWorldRand<dist_t>::getRandomEntryPointLocked() const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  MSWNode* res = getRandomEntryPoint();\n  return res;\n}\n\ntemplate <typename dist_t>\nsize_t SmallWorldRand<dist_t>::getEntryQtyLocked() const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  size_t res = ElList_.size();\n  return res;\n}\n\ntemplate <typename dist_t>\nMSWNode* SmallWorldRand<dist_t>::getRandomEntryPoint() const {\n  size_t size = ElList_.size();\n\n  if(!ElList_.size()) {\n    return NULL;\n  } else {\n    size_t num = RandomInt()%size;\n    return ElList_[num];\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRand<dist_t>::searchForIndexing(const Object *queryObj,\n                                          priority_queue<EvaluatedMSWNodeDirect<dist_t>> &resultSet) const\n{\n#if USE_BITSET_FOR_INDEXING\n/*\n * The trick of using large dense bitsets instead of unordered_set was \n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(data_.size()); // seems to be working fine even in a multi-threaded mode.\n#else\n  unordered_set<MSWNode*>             visited;\n#endif\n\n  vector<MSWNode*> neighborCopy;\n\n  for (size_t i=0; i < initIndexAttempts_; i++){\n\n    /**\n     * Search for the k most closest elements to the query.\n     */\n#ifdef START_WITH_E0\n    MSWNode* provider = i ? getRandomEntryPointLocked() : ElList_[0];\n#else\n    MSWNode* provider = getRandomEntryPointLocked();\n#endif\n\n    priority_queue <dist_t>                     closestDistQueue;                      \n    priority_queue <EvaluatedMSWNodeReverse<dist_t>>   candidateSet; \n\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n    dist_t d = space_.ProxyDistance(queryObj, provider->getData());\n    #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n    dist_t d = space_.IndexTimeDistance(queryObj, provider->getData());\n#endif\n    EvaluatedMSWNodeReverse<dist_t> ev(d, provider);\n\n    candidateSet.push(ev);\n    closestDistQueue.push(d);\n\n    if (closestDistQueue.size() > efConstruction_) {\n      closestDistQueue.pop();\n    }\n \n#if USE_BITSET_FOR_INDEXING\n    size_t nodeId = provider->getId();\n    if (nodeId >= data_.size()) {\n      stringstream err;\n      err << \"Bug: nodeId > data_size()\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    visitedBitset[nodeId] = true;\n#else\n    visited.insert(provider);\n#endif\n    resultSet.emplace(d, provider);\n        \n    if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n      resultSet.pop();\n    }        \n\n    while (!candidateSet.empty()) {\n      const EvaluatedMSWNodeReverse<dist_t>& currEv = candidateSet.top();\n      dist_t lowerBound = closestDistQueue.top();\n\n      /*\n       * Check if we reached a local minimum.\n       */\n      if (currEv.getDistance() > lowerBound) {\n        break;\n      }\n      MSWNode* currNode = currEv.getMSWNode();\n\n      /*\n       * This lock protects currNode from being modified\n       * while we are accessing elements of currNode.\n       */\n      size_t neighborQty = 0;\n      {\n        unique_lock<mutex> lock(currNode->accessGuard_);\n\n        //const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        neighborQty = neighbor.size();\n        if (neighborQty > neighborCopy.size()) neighborCopy.resize(neighborQty);\n        for (size_t k = 0; k < neighborQty; ++k)\n          neighborCopy[k]=neighbor[k];\n      }\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateSet.pop();\n\n      // calculate distance to each neighbor\n      for (size_t neighborId = 0; neighborId < neighborQty; ++neighborId) {\n        MSWNode* pNeighbor = neighborCopy[neighborId];\n#if USE_BITSET_FOR_INDEXING\n        size_t nodeId = pNeighbor->getId();\n        if (nodeId >= data_.size()) {\n          stringstream err;\n          err << \"Bug: nodeId > data_size()\";\n          LOG(LIB_INFO) << err.str();\n          throw runtime_error(err.str());\n        }\n        if (!visitedBitset[nodeId]) {\n          visitedBitset[nodeId] = true;\n#else\n        if (visited.find(pNeighbor) == visited.end()) {\n          visited.insert(pNeighbor);\n#endif\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n          d = space_.ProxyDistance(queryObj, pNeighbor->getData());\n          #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n          d = space_.IndexTimeDistance(queryObj, pNeighbor->getData());\n#endif\n\n          if (closestDistQueue.size() < efConstruction_ || d < closestDistQueue.top()) {\n            closestDistQueue.push(d);\n            if (closestDistQueue.size() > efConstruction_) {\n              closestDistQueue.pop();\n            }\n            candidateSet.emplace(d, pNeighbor);\n          }\n\n          if (resultSet.size() < NN_ || resultSet.top().getDistance() > d) {\n            resultSet.emplace(d, pNeighbor);\n            if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n              resultSet.pop();\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::add(MSWNode *newElement){\n  newElement->removeAllFriends(); \n\n  bool isEmpty = false;\n\n  {\n    unique_lock<mutex> lock(ElListGuard_);\n    isEmpty = ElList_.empty();\n  }\n\n  if(isEmpty){\n  // Before add() is called, the first node should be created!\n    LOG(LIB_INFO) << \"Bug: the list of nodes shouldn't be empty!\";\n    throw runtime_error(\"Bug: the list of nodes shouldn't be empty!\");\n  }\n\n  {\n    priority_queue<EvaluatedMSWNodeDirect<dist_t>> resultSet;\n\n    searchForIndexing(newElement->getData(), resultSet);\n\n    // TODO actually we might need to add elements in the reverse order in the future.\n    // For the current implementation, however, the order doesn't seem to matter\n    while (!resultSet.empty()) {\n      link(resultSet.top().getMSWNode(), newElement);\n      resultSet.pop();\n    }\n  }\n\n  addCriticalSection(newElement);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::addCriticalSection(MSWNode *newElement){\n  unique_lock<mutex> lock(ElListGuard_);\n\n  ElList_.push_back(newElement);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search is not supported!\");\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  if (searchAlgoType_ == kV1Merge) SearchV1Merge(query);\n  else SearchOld(query);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SearchV1Merge(KNNQuery<dist_t>* query) const {\n  if (ElList_.empty()) return;\n  CHECK_MSG(efSearch_ > 0, \"efSearch should be > 0\");\n/*\n * The trick of using large dense bitsets instead of unordered_set was\n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(ElList_.size());\n  int checks=0;\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n    /**\n     * Search of most k-closest elements to the query.\n     */\n#ifdef START_WITH_E0_AT_QUERY_TIME\n    MSWNode* currNode = i ? getRandomEntryPoint(): ElList_[0];\n#else\n    MSWNode* currNode = getRandomEntryPoint();\n#endif\n    SortArrBI<dist_t,MSWNode*> sortedArr(efSearch_);\n\n    const Object* currObj = currNode->getData();\n    dist_t d = query->DistanceObjLeft(currObj);\n\tchecks++;\n    sortedArr.push_unsorted_grow(d, currNode); // It won't grow\n\n    size_t nodeId = currNode->getId();\n    // data_.size() is guaranteed to be equal to ElList_.size()\n    CHECK(nodeId < data_.size());\n\n    visitedBitset[nodeId] = true;\n\n    int_fast32_t  currElem = 0;\n\n    typedef typename SortArrBI<dist_t,MSWNode*>::Item  QueueItem;\n\n    vector<QueueItem>& queueData = sortedArr.get_data();\n    vector<QueueItem>  itemBuff(8*NN_);\n\n    //LOG(LIB_INFO) << \"@@@ start size = \" << queueData.size();\n    while(currElem < sortedArr.size()){\n      auto& e = queueData[currElem];\n      CHECK(!e.used);\n      e.used = true;\n      currNode = e.data;\n      ++currElem;\n/*\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        _mm_prefetch(reinterpret_cast<const char*>(const_cast<const Object*>(neighbor->getData())), _MM_HINT_T0);\n      }\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        _mm_prefetch(const_cast<const char*>(neighbor->getData()->data()), _MM_HINT_T0);\n      }*/\n\n      if (currNode->getAllFriends().size() > itemBuff.size())\n        itemBuff.resize(currNode->getAllFriends().size());\n\n      size_t itemQty = 0;\n      dist_t topKey = sortedArr.top_key();\n      //calculate distance to each neighbor\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        nodeId = neighbor->getId();\n        // data_.size() is guaranteed to be equal to ElList_.size()\n        CHECK(nodeId < data_.size());\n\n        if (!visitedBitset[nodeId]) {\n          currObj = neighbor->getData();\n          d = query->DistanceObjLeft(currObj);\n\t\t  checks ++ ;\n          visitedBitset[nodeId] = true;\n          if (d < topKey) {\n            itemBuff[itemQty++]=QueueItem(d, neighbor);\n          }\n        }\n      }\n\n      if (itemQty) {\n        //_mm_prefetch(const_cast<const char*>(reinterpret_cast<char*>(&itemBuff[0])), _MM_HINT_T0);\n        std::sort(itemBuff.begin(), itemBuff.begin() + itemQty);\n        size_t insIndex = sortedArr.merge_with_sorted_items(&itemBuff[0], itemQty);\n\n        if (insIndex < currElem) {\n          //LOG(LIB_INFO) << \"@@@ \" << currElem << \" -> \" << insIndex;\n          currElem = insIndex;\n        }\n      }\n\n      //LOG(LIB_INFO) << \"@@@ \" << itemQty << \" out of \" << currNode->getAllFriends().size() << \" queue size: \" << sortedArr.size();\n\n      // To ensure that we either reach the end of the unexplored queue or currElem points to the first unused element\n      while (currElem < sortedArr.size() && queueData[currElem].used == true)\n        ++currElem;\n    }\n\n    for (int_fast32_t i = 0; i < query->GetK() && i < sortedArr.size(); ++i) {\n      query->CheckAndAddToResult(queueData[i].key, queueData[i].data->getData());\n    }\n  }\n\t//cout << checks <<endl;\n  \t\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SearchOld(KNNQuery<dist_t>* query) const {\n  if (ElList_.empty()) return;\n  CHECK_MSG(efSearch_ > 0, \"efSearch should be > 0\");\n/*\n * The trick of using large dense bitsets instead of unordered_set was\n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(ElList_.size());\n\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n    /**\n     * Search of most k-closest elements to the query.\n     */\n#ifdef START_WITH_E0_AT_QUERY_TIME\n    MSWNode* provider = i ? getRandomEntryPoint(): ElList_[0];\n#else\n    MSWNode* provider = getRandomEntryPoint();\n#endif\n    //MSWNode* provider = getRandomEntryPoint();\n\n    priority_queue <dist_t>                          closestDistQueue; //The set of all elements which distance was calculated\n    priority_queue <EvaluatedMSWNodeReverse<dist_t>> candidateQueue; //the set of elements which we can use to evaluate\n\n    const Object* currObj = provider->getData();\n    dist_t d = query->DistanceObjLeft(currObj);\n    query->CheckAndAddToResult(d, currObj); // This should be done before the object goes to the queue: otherwise it will not be compared to the query at all!\n\n    EvaluatedMSWNodeReverse<dist_t> ev(d, provider);\n    candidateQueue.push(ev);\n    closestDistQueue.emplace(d);\n\n    size_t nodeId = provider->getId();\n    // data_.size() is guaranteed to be equal to ElList_.size()\n    if (nodeId >= data_.size()) {\n      stringstream err;\n      err << \"Bug: nodeId > data_size()\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    visitedBitset[nodeId] = true;\n\n    while(!candidateQueue.empty()){\n\n      auto iter = candidateQueue.top(); // This one was already compared to the query\n      const EvaluatedMSWNodeReverse<dist_t>& currEv = iter;\n\n      // Did we reach a local minimum?\n      if (currEv.getDistance() > closestDistQueue.top()) {\n        break;\n      }\n\n      for (MSWNode* neighbor : (currEv.getMSWNode())->getAllFriends()) {\n        _mm_prefetch(reinterpret_cast<const char*>(const_cast<const Object*>(neighbor->getData())), _MM_HINT_T0);\n      }\n      for (MSWNode* neighbor : (currEv.getMSWNode())->getAllFriends()) {\n        _mm_prefetch(const_cast<const char*>(neighbor->getData()->data()), _MM_HINT_T0);\n      }\n\n      const vector<MSWNode*>& neighbor = (currEv.getMSWNode())->getAllFriends();\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateQueue.pop();\n\n      //calculate distance to each neighbor\n      for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter){\n        nodeId = (*iter)->getId();\n        // data_.size() is guaranteed to be equal to ElList_.size()\n        if (nodeId >= data_.size()) {\n          stringstream err;\n          err << \"Bug: nodeId > data_size()\";\n          LOG(LIB_INFO) << err.str();\n          throw runtime_error(err.str());\n        }\n        if (!visitedBitset[nodeId]) {\n          currObj = (*iter)->getData();\n          d = query->DistanceObjLeft(currObj);\n          visitedBitset[nodeId] = true;\n\n          if (closestDistQueue.size() < efSearch_ || d < closestDistQueue.top()) {\n            closestDistQueue.emplace(d);\n            if (closestDistQueue.size() > efSearch_) {\n              closestDistQueue.pop();\n            }\n            candidateQueue.emplace(d, *iter);\n          }\n\n          query->CheckAndAddToResult(d, currObj);\n        }\n      }\n    }\n  }\n\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SaveIndex(const string &location) {\n  ofstream outFile(location);\n  CHECK_MSG(outFile, \"Cannot open file '\" + location + \"' for writing\");\n  outFile.exceptions(std::ios::badbit);\n  size_t lineNum = 0;\n\n  WriteField(outFile, METHOD_DESC, StrDesc()); lineNum++;\n  WriteField(outFile, \"NN\", NN_); lineNum++;\n\n  for (const MSWNode* pNode: ElList_) {\n    IdType nodeID = pNode->getId();\n    CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n              \"Bug: unexpected node ID \" + ConvertToString(nodeID) +\n              \" for object ID \" + ConvertToString(pNode->getData()->id()) +\n              \"data_.size() = \" + ConvertToString(data_.size()));\n    outFile << nodeID << \":\" << pNode->getData()->id() << \":\";\n    for (const MSWNode* pNodeFriend: pNode->getAllFriends()) {\n      IdType nodeFriendID = pNodeFriend->getId();\n      CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                \" for object ID \" + ConvertToString(pNodeFriend->getData()->id()) +\n                \"data_.size() = \" + ConvertToString(data_.size()));\n      outFile << ' ' << nodeFriendID;\n    }\n    outFile << endl; lineNum++;\n  }\n  outFile << endl; lineNum++; // The empty line indicates the end of data entries\n  WriteField(outFile, LINE_QTY, lineNum + 1 /* including this line */);\n  outFile.close();\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::LoadIndex(const string &location) {\n  vector<MSWNode *> ptrMapper(data_.size());\n\n  for (unsigned pass = 0; pass < 2; ++ pass) {\n    ifstream inFile(location);\n    CHECK_MSG(inFile, \"Cannot open file '\" + location + \"' for reading\");\n    inFile.exceptions(std::ios::badbit);\n\n    size_t lineNum = 1;\n    string methDesc;\n    ReadField(inFile, METHOD_DESC, methDesc);\n    lineNum++;\n    CHECK_MSG(methDesc == StrDesc(),\n              \"Looks like you try to use an index created by a different method: \" + methDesc);\n    ReadField(inFile, \"NN\", NN_);\n    lineNum++;\n\n    string line;\n    while (getline(inFile, line)) {\n      if (line.empty()) {\n        lineNum++; break;\n      }\n      stringstream str(line);\n      str.exceptions(std::ios::badbit);\n      char c1, c2;\n      IdType nodeID, objID;\n      CHECK_MSG((str >> nodeID) && (str >> c1) && (str >> objID) && (str >> c2),\n                \"Bug or inconsitent data, wrong format, line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(c1 == ':' && c2 == ':',\n                string(\"Bug or inconsitent data, wrong format, c1=\") + c1 + \",c2=\" + c2 +\n                \" line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n                DATA_MUTATION_ERROR_MSG + \" (unexpected node ID \" + ConvertToString(nodeID) +\n                \" for object ID \" + ConvertToString(objID) +\n                \" data_.size() = \" + ConvertToString(data_.size()) + \")\");\n      CHECK_MSG(data_[nodeID]->id() == objID,\n                DATA_MUTATION_ERROR_MSG + \" (unexpected object ID \" + ConvertToString(data_[nodeID]->id()) +\n                \" for data element with ID \" + ConvertToString(nodeID) +\n                \" expected object ID: \" + ConvertToString(objID) + \")\"\n      );\n      if (pass == 0) {\n        unique_ptr<MSWNode> node(new MSWNode(data_[nodeID], nodeID));\n        ptrMapper[nodeID] = node.get();\n        ElList_.push_back(node.release());\n      } else {\n        MSWNode *pNode = ptrMapper[nodeID];\n        CHECK_MSG(pNode != NULL,\n                  \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeID));\n        IdType nodeFriendID;\n        while (str >> nodeFriendID) {\n          CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                    \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                    \"data_.size() = \" + ConvertToString(data_.size()));\n          MSWNode *pFriendNode = ptrMapper[nodeFriendID];\n          CHECK_MSG(pFriendNode != NULL,\n                    \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeFriendID));\n          pNode->addFriend(pFriendNode, false /* don't check for duplicates */);\n        }\n        CHECK_MSG(str.eof(),\n                  \"It looks like there is some extract erroneous stuff in the end of the line \" +\n                  ConvertToString(lineNum));\n      }\n      ++lineNum;\n    }\n\n    size_t ExpLineNum;\n    ReadField(inFile, LINE_QTY, ExpLineNum);\n    CHECK_MSG(lineNum == ExpLineNum,\n              DATA_MUTATION_ERROR_MSG + \" (expected number of lines \" + ConvertToString(ExpLineNum) +\n              \" read so far doesn't match the number of read lines: \" + ConvertToString(lineNum) + \")\");\n    inFile.close();\n  }\n}\n\ntemplate class SmallWorldRand<float>;\ntemplate class SmallWorldRand<double>;\ntemplate class SmallWorldRand<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/small_world_rand.cc~",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <cmath>\n#include <memory>\n#include <iostream>\n#include <mmintrin.h>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/small_world_rand.h\"\n#include \"sort_arr_bi.h\"\n\n#include <vector>\n#include <set>\n#include <map>\n#include <sstream>\n#include <typeinfo>\n\n//#define START_WITH_E0\n#define START_WITH_E0_AT_QUERY_TIME\n\n#define USE_BITSET_FOR_INDEXING 1\n//#define USE_ALTERNATIVE_FOR_INDEXING \n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nstruct IndexThreadParamsSW {\n  const Space<dist_t>&                        space_;\n  SmallWorldRand<dist_t>&                     index_;\n  const ObjectVector&                         data_;\n  size_t                                      index_every_;\n  size_t                                      out_of_;\n  ProgressDisplay*                            progress_bar_;\n  mutex&                                      display_mutex_;\n  size_t                                      progress_update_qty_;\n  \n  IndexThreadParamsSW(\n                     const Space<dist_t>&             space,\n                     SmallWorldRand<dist_t>&          index, \n                     const ObjectVector&              data,\n                     size_t                           index_every,\n                     size_t                           out_of,\n                     ProgressDisplay*                 progress_bar,\n                     mutex&                           display_mutex,\n                     size_t                           progress_update_qty\n                      ) : \n                     space_(space),\n                     index_(index), \n                     data_(data),\n                     index_every_(index_every),\n                     out_of_(out_of),\n                     progress_bar_(progress_bar),\n                     display_mutex_(display_mutex),\n                     progress_update_qty_(progress_update_qty)\n                     { }\n};\n\ntemplate <typename dist_t>\nstruct IndexThreadSW {\n  void operator()(IndexThreadParamsSW<dist_t>& prm) {\n    ProgressDisplay*  progress_bar = prm.progress_bar_;\n    mutex&            display_mutex(prm.display_mutex_); \n    /* \n     * Skip the first element, it was added already\n     */\n    size_t nextQty = prm.progress_update_qty_;\n    for (size_t id = 1; id < prm.data_.size(); ++id) {\n      if (prm.index_every_ == id % prm.out_of_) {\n        MSWNode* node = new MSWNode(prm.data_[id], id);\n        prm.index_.add(node);\n      \n        if ((id + 1 >= min(prm.data_.size(), nextQty)) && progress_bar) {\n          unique_lock<mutex> lock(display_mutex);\n          (*progress_bar) += (nextQty - progress_bar->count());\n          nextQty += prm.progress_update_qty_;\n        }\n      }\n    }\n    if (progress_bar) {\n      unique_lock<mutex> lock(display_mutex);\n      (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n    }\n  }\n};\n\ntemplate <typename dist_t>\nSmallWorldRand<dist_t>::SmallWorldRand(bool PrintProgress,\n                                       const Space<dist_t>& space,\n                                       const ObjectVector& data) : \n                                       space_(space), data_(data), PrintProgress_(PrintProgress) {}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::CreateIndex(const AnyParams& IndexParams) \n{\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"NN\",                 NN_,                  10);\n  pmgr.GetParamOptional(\"efConstruction\",     efConstruction_,      NN_);\n  efSearch_ = NN_;\n  pmgr.GetParamOptional(\"initIndexAttempts\",  initIndexAttempts_,   1);\n  pmgr.GetParamOptional(\"indexThreadQty\",     indexThreadQty_,      thread::hardware_concurrency());\n\n  LOG(LIB_INFO) << \"NN                  = \" << NN_;\n  LOG(LIB_INFO) << \"efConstruction_     = \" << efConstruction_;\n  LOG(LIB_INFO) << \"initIndexAttempts   = \" << initIndexAttempts_;\n  LOG(LIB_INFO) << \"indexThreadQty      = \" << indexThreadQty_;\n\n  pmgr.CheckUnused();\n\n  SetQueryTimeParams(getEmptyParams());\n\n  if (data_.empty()) return;\n\n  // 2) One entry should be added before all the threads are started, or else add() will not work properly\n  addCriticalSection(new MSWNode(data_[0], 0 /* id == 0 */));\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n  if (indexThreadQty_ <= 1) {\n    // Skip the first element, one element is already added\n    if (progress_bar) ++(*progress_bar);\n    for (size_t id = 1; id < data_.size(); ++id) {\n      MSWNode* node = new MSWNode(data_[id], id);\n      add(node);\n      if (progress_bar) ++(*progress_bar);\n    }\n  } else {\n    vector<thread>                                    threads(indexThreadQty_);\n    vector<shared_ptr<IndexThreadParamsSW<dist_t>>>   threadParams; \n    mutex                                             progressBarMutex;\n\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threadParams.push_back(shared_ptr<IndexThreadParamsSW<dist_t>>(\n                              new IndexThreadParamsSW<dist_t>(space_, *this, data_, i, indexThreadQty_,\n                                                              progress_bar.get(), progressBarMutex, 200)));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i] = thread(IndexThreadSW<dist_t>(), ref(*threadParams[i]));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i].join();\n    }\n    if (ElList_.size() != data_.size()) {\n      stringstream err;\n      err << \"Bug: ElList_.size() (\" << ElList_.size() << \") isn't equal to data_.size() (\" << data_.size() << \")\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    LOG(LIB_INFO) << indexThreadQty_ << \" indexing threads have finished\";\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRand<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  pmgr.GetParamOptional(\"initSearchAttempts\", initSearchAttempts_,  1);\n  pmgr.GetParamOptional(\"efSearch\", efSearch_, NN_);\n  string tmp;\n  pmgr.GetParamOptional(\"algoType\", tmp, \"v1merge\"); \n  ToLower(tmp);\n  if (tmp == \"v1merge\") searchAlgoType_ = kV1Merge;\n  else if (tmp == \"old\") searchAlgoType_ = kOld;\n  else {\n    throw runtime_error(\"algoType should be one of the following: old, v1merge\");\n  }\n  pmgr.CheckUnused();\n  LOG(LIB_INFO) << \"Set SmallWorldRand query-time parameters:\";\n  LOG(LIB_INFO) << \"initSearchAttempts =\" << initSearchAttempts_;\n  LOG(LIB_INFO) << \"efSearch           =\" << efSearch_;\n}\n\ntemplate <typename dist_t>\nconst std::string SmallWorldRand<dist_t>::StrDesc() const {\n  return METH_SMALL_WORLD_RAND;\n}\n\ntemplate <typename dist_t>\nSmallWorldRand<dist_t>::~SmallWorldRand() {\n}\n\ntemplate <typename dist_t>\nMSWNode* SmallWorldRand<dist_t>::getRandomEntryPointLocked() const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  MSWNode* res = getRandomEntryPoint();\n  return res;\n}\n\ntemplate <typename dist_t>\nsize_t SmallWorldRand<dist_t>::getEntryQtyLocked() const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  size_t res = ElList_.size();\n  return res;\n}\n\ntemplate <typename dist_t>\nMSWNode* SmallWorldRand<dist_t>::getRandomEntryPoint() const {\n  size_t size = ElList_.size();\n\n  if(!ElList_.size()) {\n    return NULL;\n  } else {\n    size_t num = RandomInt()%size;\n    return ElList_[num];\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRand<dist_t>::searchForIndexing(const Object *queryObj,\n                                          priority_queue<EvaluatedMSWNodeDirect<dist_t>> &resultSet) const\n{\n#if USE_BITSET_FOR_INDEXING\n/*\n * The trick of using large dense bitsets instead of unordered_set was \n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(data_.size()); // seems to be working fine even in a multi-threaded mode.\n#else\n  unordered_set<MSWNode*>             visited;\n#endif\n\n  vector<MSWNode*> neighborCopy;\n\n  for (size_t i=0; i < initIndexAttempts_; i++){\n\n    /**\n     * Search for the k most closest elements to the query.\n     */\n#ifdef START_WITH_E0\n    MSWNode* provider = i ? getRandomEntryPointLocked() : ElList_[0];\n#else\n    MSWNode* provider = getRandomEntryPointLocked();\n#endif\n\n    priority_queue <dist_t>                     closestDistQueue;                      \n    priority_queue <EvaluatedMSWNodeReverse<dist_t>>   candidateSet; \n\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n    dist_t d = space_.ProxyDistance(queryObj, provider->getData());\n    #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n    dist_t d = space_.IndexTimeDistance(queryObj, provider->getData());\n#endif\n    EvaluatedMSWNodeReverse<dist_t> ev(d, provider);\n\n    candidateSet.push(ev);\n    closestDistQueue.push(d);\n\n    if (closestDistQueue.size() > efConstruction_) {\n      closestDistQueue.pop();\n    }\n \n#if USE_BITSET_FOR_INDEXING\n    size_t nodeId = provider->getId();\n    if (nodeId >= data_.size()) {\n      stringstream err;\n      err << \"Bug: nodeId > data_size()\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    visitedBitset[nodeId] = true;\n#else\n    visited.insert(provider);\n#endif\n    resultSet.emplace(d, provider);\n        \n    if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n      resultSet.pop();\n    }        \n\n    while (!candidateSet.empty()) {\n      const EvaluatedMSWNodeReverse<dist_t>& currEv = candidateSet.top();\n      dist_t lowerBound = closestDistQueue.top();\n\n      /*\n       * Check if we reached a local minimum.\n       */\n      if (currEv.getDistance() > lowerBound) {\n        break;\n      }\n      MSWNode* currNode = currEv.getMSWNode();\n\n      /*\n       * This lock protects currNode from being modified\n       * while we are accessing elements of currNode.\n       */\n      size_t neighborQty = 0;\n      {\n        unique_lock<mutex> lock(currNode->accessGuard_);\n\n        //const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        neighborQty = neighbor.size();\n        if (neighborQty > neighborCopy.size()) neighborCopy.resize(neighborQty);\n        for (size_t k = 0; k < neighborQty; ++k)\n          neighborCopy[k]=neighbor[k];\n      }\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateSet.pop();\n\n      // calculate distance to each neighbor\n      for (size_t neighborId = 0; neighborId < neighborQty; ++neighborId) {\n        MSWNode* pNeighbor = neighborCopy[neighborId];\n#if USE_BITSET_FOR_INDEXING\n        size_t nodeId = pNeighbor->getId();\n        if (nodeId >= data_.size()) {\n          stringstream err;\n          err << \"Bug: nodeId > data_size()\";\n          LOG(LIB_INFO) << err.str();\n          throw runtime_error(err.str());\n        }\n        if (!visitedBitset[nodeId]) {\n          visitedBitset[nodeId] = true;\n#else\n        if (visited.find(pNeighbor) == visited.end()) {\n          visited.insert(pNeighbor);\n#endif\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n          d = space_.ProxyDistance(queryObj, pNeighbor->getData());\n          #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n          d = space_.IndexTimeDistance(queryObj, pNeighbor->getData());\n#endif\n\n          if (closestDistQueue.size() < efConstruction_ || d < closestDistQueue.top()) {\n            closestDistQueue.push(d);\n            if (closestDistQueue.size() > efConstruction_) {\n              closestDistQueue.pop();\n            }\n            candidateSet.emplace(d, pNeighbor);\n          }\n\n          if (resultSet.size() < NN_ || resultSet.top().getDistance() > d) {\n            resultSet.emplace(d, pNeighbor);\n            if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n              resultSet.pop();\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::add(MSWNode *newElement){\n  newElement->removeAllFriends(); \n\n  bool isEmpty = false;\n\n  {\n    unique_lock<mutex> lock(ElListGuard_);\n    isEmpty = ElList_.empty();\n  }\n\n  if(isEmpty){\n  // Before add() is called, the first node should be created!\n    LOG(LIB_INFO) << \"Bug: the list of nodes shouldn't be empty!\";\n    throw runtime_error(\"Bug: the list of nodes shouldn't be empty!\");\n  }\n\n  {\n    priority_queue<EvaluatedMSWNodeDirect<dist_t>> resultSet;\n\n    searchForIndexing(newElement->getData(), resultSet);\n\n    // TODO actually we might need to add elements in the reverse order in the future.\n    // For the current implementation, however, the order doesn't seem to matter\n    while (!resultSet.empty()) {\n      link(resultSet.top().getMSWNode(), newElement);\n      resultSet.pop();\n    }\n  }\n\n  addCriticalSection(newElement);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::addCriticalSection(MSWNode *newElement){\n  unique_lock<mutex> lock(ElListGuard_);\n\n  ElList_.push_back(newElement);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search is not supported!\");\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  if (searchAlgoType_ == kV1Merge) SearchV1Merge(query);\n  else SearchOld(query);\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SearchV1Merge(KNNQuery<dist_t>* query) const {\n  if (ElList_.empty()) return;\n  CHECK_MSG(efSearch_ > 0, \"efSearch should be > 0\");\n/*\n * The trick of using large dense bitsets instead of unordered_set was\n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(ElList_.size());\n  int checks=0;\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n    /**\n     * Search of most k-closest elements to the query.\n     */\n#ifdef START_WITH_E0_AT_QUERY_TIME\n    MSWNode* currNode = i ? getRandomEntryPoint(): ElList_[0];\n#else\n    MSWNode* currNode = getRandomEntryPoint();\n#endif\n    SortArrBI<dist_t,MSWNode*> sortedArr(efSearch_);\n\n    const Object* currObj = currNode->getData();\n    dist_t d = query->DistanceObjLeft(currObj);\n\tchecks++;\n    sortedArr.push_unsorted_grow(d, currNode); // It won't grow\n\n    size_t nodeId = currNode->getId();\n    // data_.size() is guaranteed to be equal to ElList_.size()\n    CHECK(nodeId < data_.size());\n\n    visitedBitset[nodeId] = true;\n\n    int_fast32_t  currElem = 0;\n\n    typedef typename SortArrBI<dist_t,MSWNode*>::Item  QueueItem;\n\n    vector<QueueItem>& queueData = sortedArr.get_data();\n    vector<QueueItem>  itemBuff(8*NN_);\n\n    //LOG(LIB_INFO) << \"@@@ start size = \" << queueData.size();\n    while(currElem < sortedArr.size()){\n      auto& e = queueData[currElem];\n      CHECK(!e.used);\n      e.used = true;\n      currNode = e.data;\n      ++currElem;\n\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        _mm_prefetch(reinterpret_cast<const char*>(const_cast<const Object*>(neighbor->getData())), _MM_HINT_T0);\n      }\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        _mm_prefetch(const_cast<const char*>(neighbor->getData()->data()), _MM_HINT_T0);\n      }\n\n      if (currNode->getAllFriends().size() > itemBuff.size())\n        itemBuff.resize(currNode->getAllFriends().size());\n\n      size_t itemQty = 0;\n      dist_t topKey = sortedArr.top_key();\n      //calculate distance to each neighbor\n      for (MSWNode* neighbor : currNode->getAllFriends()) {\n        nodeId = neighbor->getId();\n        // data_.size() is guaranteed to be equal to ElList_.size()\n        CHECK(nodeId < data_.size());\n\n        if (!visitedBitset[nodeId]) {\n          currObj = neighbor->getData();\n          d = query->DistanceObjLeft(currObj);\n\t\t  checks ++ ;\n          visitedBitset[nodeId] = true;\n          if (d < topKey) {\n            itemBuff[itemQty++]=QueueItem(d, neighbor);\n          }\n        }\n      }\n\n      if (itemQty) {\n        _mm_prefetch(const_cast<const char*>(reinterpret_cast<char*>(&itemBuff[0])), _MM_HINT_T0);\n        std::sort(itemBuff.begin(), itemBuff.begin() + itemQty);\n        size_t insIndex = sortedArr.merge_with_sorted_items(&itemBuff[0], itemQty);\n\n        if (insIndex < currElem) {\n          //LOG(LIB_INFO) << \"@@@ \" << currElem << \" -> \" << insIndex;\n          currElem = insIndex;\n        }\n      }\n\n      //LOG(LIB_INFO) << \"@@@ \" << itemQty << \" out of \" << currNode->getAllFriends().size() << \" queue size: \" << sortedArr.size();\n\n      // To ensure that we either reach the end of the unexplored queue or currElem points to the first unused element\n      while (currElem < sortedArr.size() && queueData[currElem].used == true)\n        ++currElem;\n    }\n\n    for (int_fast32_t i = 0; i < query->GetK() && i < sortedArr.size(); ++i) {\n      query->CheckAndAddToResult(queueData[i].key, queueData[i].data->getData());\n    }\n  }\n\tcout << checks <<endl;\n  \t\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SearchOld(KNNQuery<dist_t>* query) const {\n  if (ElList_.empty()) return;\n  CHECK_MSG(efSearch_ > 0, \"efSearch should be > 0\");\n/*\n * The trick of using large dense bitsets instead of unordered_set was\n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(ElList_.size());\n\n  for (size_t i=0; i < initSearchAttempts_; i++) {\n    /**\n     * Search of most k-closest elements to the query.\n     */\n#ifdef START_WITH_E0_AT_QUERY_TIME\n    MSWNode* provider = i ? getRandomEntryPoint(): ElList_[0];\n#else\n    MSWNode* provider = getRandomEntryPoint();\n#endif\n    //MSWNode* provider = getRandomEntryPoint();\n\n    priority_queue <dist_t>                          closestDistQueue; //The set of all elements which distance was calculated\n    priority_queue <EvaluatedMSWNodeReverse<dist_t>> candidateQueue; //the set of elements which we can use to evaluate\n\n    const Object* currObj = provider->getData();\n    dist_t d = query->DistanceObjLeft(currObj);\n    query->CheckAndAddToResult(d, currObj); // This should be done before the object goes to the queue: otherwise it will not be compared to the query at all!\n\n    EvaluatedMSWNodeReverse<dist_t> ev(d, provider);\n    candidateQueue.push(ev);\n    closestDistQueue.emplace(d);\n\n    size_t nodeId = provider->getId();\n    // data_.size() is guaranteed to be equal to ElList_.size()\n    if (nodeId >= data_.size()) {\n      stringstream err;\n      err << \"Bug: nodeId > data_size()\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n    visitedBitset[nodeId] = true;\n\n    while(!candidateQueue.empty()){\n\n      auto iter = candidateQueue.top(); // This one was already compared to the query\n      const EvaluatedMSWNodeReverse<dist_t>& currEv = iter;\n\n      // Did we reach a local minimum?\n      if (currEv.getDistance() > closestDistQueue.top()) {\n        break;\n      }\n\n      for (MSWNode* neighbor : (currEv.getMSWNode())->getAllFriends()) {\n        _mm_prefetch(reinterpret_cast<const char*>(const_cast<const Object*>(neighbor->getData())), _MM_HINT_T0);\n      }\n      for (MSWNode* neighbor : (currEv.getMSWNode())->getAllFriends()) {\n        _mm_prefetch(const_cast<const char*>(neighbor->getData()->data()), _MM_HINT_T0);\n      }\n\n      const vector<MSWNode*>& neighbor = (currEv.getMSWNode())->getAllFriends();\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateQueue.pop();\n\n      //calculate distance to each neighbor\n      for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter){\n        nodeId = (*iter)->getId();\n        // data_.size() is guaranteed to be equal to ElList_.size()\n        if (nodeId >= data_.size()) {\n          stringstream err;\n          err << \"Bug: nodeId > data_size()\";\n          LOG(LIB_INFO) << err.str();\n          throw runtime_error(err.str());\n        }\n        if (!visitedBitset[nodeId]) {\n          currObj = (*iter)->getData();\n          d = query->DistanceObjLeft(currObj);\n          visitedBitset[nodeId] = true;\n\n          if (closestDistQueue.size() < efSearch_ || d < closestDistQueue.top()) {\n            closestDistQueue.emplace(d);\n            if (closestDistQueue.size() > efSearch_) {\n              closestDistQueue.pop();\n            }\n            candidateQueue.emplace(d, *iter);\n          }\n\n          query->CheckAndAddToResult(d, currObj);\n        }\n      }\n    }\n  }\n\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::SaveIndex(const string &location) {\n  ofstream outFile(location);\n  CHECK_MSG(outFile, \"Cannot open file '\" + location + \"' for writing\");\n  outFile.exceptions(std::ios::badbit);\n  size_t lineNum = 0;\n\n  WriteField(outFile, METHOD_DESC, StrDesc()); lineNum++;\n  WriteField(outFile, \"NN\", NN_); lineNum++;\n\n  for (const MSWNode* pNode: ElList_) {\n    IdType nodeID = pNode->getId();\n    CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n              \"Bug: unexpected node ID \" + ConvertToString(nodeID) +\n              \" for object ID \" + ConvertToString(pNode->getData()->id()) +\n              \"data_.size() = \" + ConvertToString(data_.size()));\n    outFile << nodeID << \":\" << pNode->getData()->id() << \":\";\n    for (const MSWNode* pNodeFriend: pNode->getAllFriends()) {\n      IdType nodeFriendID = pNodeFriend->getId();\n      CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                \" for object ID \" + ConvertToString(pNodeFriend->getData()->id()) +\n                \"data_.size() = \" + ConvertToString(data_.size()));\n      outFile << ' ' << nodeFriendID;\n    }\n    outFile << endl; lineNum++;\n  }\n  outFile << endl; lineNum++; // The empty line indicates the end of data entries\n  WriteField(outFile, LINE_QTY, lineNum + 1 /* including this line */);\n  outFile.close();\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRand<dist_t>::LoadIndex(const string &location) {\n  vector<MSWNode *> ptrMapper(data_.size());\n\n  for (unsigned pass = 0; pass < 2; ++ pass) {\n    ifstream inFile(location);\n    CHECK_MSG(inFile, \"Cannot open file '\" + location + \"' for reading\");\n    inFile.exceptions(std::ios::badbit);\n\n    size_t lineNum = 1;\n    string methDesc;\n    ReadField(inFile, METHOD_DESC, methDesc);\n    lineNum++;\n    CHECK_MSG(methDesc == StrDesc(),\n              \"Looks like you try to use an index created by a different method: \" + methDesc);\n    ReadField(inFile, \"NN\", NN_);\n    lineNum++;\n\n    string line;\n    while (getline(inFile, line)) {\n      if (line.empty()) {\n        lineNum++; break;\n      }\n      stringstream str(line);\n      str.exceptions(std::ios::badbit);\n      char c1, c2;\n      IdType nodeID, objID;\n      CHECK_MSG((str >> nodeID) && (str >> c1) && (str >> objID) && (str >> c2),\n                \"Bug or inconsitent data, wrong format, line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(c1 == ':' && c2 == ':',\n                string(\"Bug or inconsitent data, wrong format, c1=\") + c1 + \",c2=\" + c2 +\n                \" line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n                DATA_MUTATION_ERROR_MSG + \" (unexpected node ID \" + ConvertToString(nodeID) +\n                \" for object ID \" + ConvertToString(objID) +\n                \" data_.size() = \" + ConvertToString(data_.size()) + \")\");\n      CHECK_MSG(data_[nodeID]->id() == objID,\n                DATA_MUTATION_ERROR_MSG + \" (unexpected object ID \" + ConvertToString(data_[nodeID]->id()) +\n                \" for data element with ID \" + ConvertToString(nodeID) +\n                \" expected object ID: \" + ConvertToString(objID) + \")\"\n      );\n      if (pass == 0) {\n        unique_ptr<MSWNode> node(new MSWNode(data_[nodeID], nodeID));\n        ptrMapper[nodeID] = node.get();\n        ElList_.push_back(node.release());\n      } else {\n        MSWNode *pNode = ptrMapper[nodeID];\n        CHECK_MSG(pNode != NULL,\n                  \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeID));\n        IdType nodeFriendID;\n        while (str >> nodeFriendID) {\n          CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                    \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                    \"data_.size() = \" + ConvertToString(data_.size()));\n          MSWNode *pFriendNode = ptrMapper[nodeFriendID];\n          CHECK_MSG(pFriendNode != NULL,\n                    \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeFriendID));\n          pNode->addFriend(pFriendNode, false /* don't check for duplicates */);\n        }\n        CHECK_MSG(str.eof(),\n                  \"It looks like there is some extract erroneous stuff in the end of the line \" +\n                  ConvertToString(lineNum));\n      }\n      ++lineNum;\n    }\n\n    size_t ExpLineNum;\n    ReadField(inFile, LINE_QTY, ExpLineNum);\n    CHECK_MSG(lineNum == ExpLineNum,\n              DATA_MUTATION_ERROR_MSG + \" (expected number of lines \" + ConvertToString(ExpLineNum) +\n              \" read so far doesn't match the number of read lines: \" + ConvertToString(lineNum) + \")\");\n    inFile.close();\n  }\n}\n\ntemplate class SmallWorldRand<float>;\ntemplate class SmallWorldRand<double>;\ntemplate class SmallWorldRand<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/small_world_rand_split.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <cmath>\n#include <memory>\n#include <iostream>\n\n#include \"space.h\"\n#include \"knnquery.h\"\n#include \"rangequery.h\"\n#include \"ported_boost_progress.h\"\n#include \"method/small_world_rand_split.h\"\n\n#include <vector>\n#include <set>\n#include <map>\n#include <sstream>\n#include <typeinfo>\n\n//#define START_WITH_E0\n#define START_WITH_E0_AT_QUERY_TIME\n\n//#define USE_ALTERNATIVE_FOR_INDEXING\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nstruct IndexThreadParamsSplitSW {\n  const Space<dist_t>&                        space_;\n  SmallWorldRandSplit<dist_t>&                index_;\n  const ObjectVector&                         data_;\n  size_t                                      index_every_;\n  size_t                                      out_of_;\n  size_t                                      start_;\n  size_t                                      end_;\n  ProgressDisplay*                            progress_bar_;\n  mutex&                                      display_mutex_;\n  size_t                                      progress_update_qty_;\n  vector<bool>                                visitedBitset_;\n\n  IndexThreadParamsSplitSW(\n                     const Space<dist_t>&             space,\n                     SmallWorldRandSplit<dist_t>&     index, \n                     const ObjectVector&              data,\n                     size_t                           index_every,\n                     size_t                           out_of,\n                     size_t                           start,\n                     size_t                           end,\n                     ProgressDisplay*                 progress_bar,\n                     mutex&                           display_mutex,\n                     size_t                           progress_update_qty\n                      ) : \n                     space_(space),\n                     index_(index), \n                     data_(data),\n                     index_every_(index_every),\n                     out_of_(out_of),\n                     start_(start),\n                     end_(end),\n                     progress_bar_(progress_bar),\n                     display_mutex_(display_mutex),\n                     progress_update_qty_(progress_update_qty),\n                     visitedBitset_(end - start)\n                     { }\n};\n\ntemplate <typename dist_t>\nstruct IndexThreadSplitSW {\n  void operator()(IndexThreadParamsSplitSW<dist_t>& prm) {\n    ProgressDisplay*  progress_bar = prm.progress_bar_;\n    mutex&            display_mutex(prm.display_mutex_); \n\n    size_t nextQty = prm.progress_update_qty_;\n    for (size_t id = prm.start_; id < prm.end_; ++id) {\n      if (prm.index_every_ == id % prm.out_of_) {\n        typename SmallWorldRandSplit<dist_t>::MSWNode* node = new typename SmallWorldRandSplit<dist_t>::MSWNode(prm.data_[id], id);\n        prm.index_.add(node, prm.start_, prm.end_, prm.visitedBitset_);\n      \n        if ((id + 1 >= min(prm.data_.size(), nextQty)) && progress_bar) {\n          unique_lock<mutex> lock(display_mutex);\n          (*progress_bar) += (nextQty - progress_bar->count());\n          nextQty += prm.progress_update_qty_;\n        }\n      }\n    }\n  }\n};\n\ntemplate <typename dist_t>\nSmallWorldRandSplit<dist_t>::SmallWorldRandSplit(bool PrintProgress,\n                                       const Space<dist_t>& space,\n                                       const ObjectVector& data) : \n                                       space_(space), data_(data), PrintProgress_(PrintProgress) {}\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::CreateIndex(const AnyParams& IndexParams) \n{\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"NN\",                 NN_,                  10);\n  pmgr.GetParamOptional(\"efConstruction\",     efConstruction_,      NN_);\n  pmgr.GetParamOptional(\"chunkIndexSize\",     chunkIndexSize_,      data_.size());\n  CHECK_MSG(chunkIndexSize_ > 0, \"chunkIndexSize should be > 0\");\n\n  chunkIndexSize_ = min(chunkIndexSize_, data_.size());\n  efSearch_ = NN_;\n  pmgr.GetParamOptional(\"initIndexAttempts\",  initIndexAttempts_,   2);\n  pmgr.GetParamOptional(\"indexThreadQty\",     indexThreadQty_,      thread::hardware_concurrency());\n  if (indexThreadQty_ <=0) indexThreadQty_ = 1;\n\n  LOG(LIB_INFO) << \"NN                  = \" << NN_;\n  LOG(LIB_INFO) << \"efConstruction      = \" << efConstruction_;\n  LOG(LIB_INFO) << \"chunkIndexSize      = \" << chunkIndexSize_;\n  LOG(LIB_INFO) << \"initIndexAttempts   = \" << initIndexAttempts_;\n  LOG(LIB_INFO) << \"indexThreadQty      = \" << indexThreadQty_;\n\n  pmgr.CheckUnused();\n\n  SetQueryTimeParams(getEmptyParams());\n\n  if (data_.empty()) return;\n\n  unique_ptr<ProgressDisplay> progress_bar(PrintProgress_ ?\n                                new ProgressDisplay(data_.size(), cerr)\n                                :NULL);\n\n  for (size_t start = 0, chunkNum = 0; start < data_.size(); start += chunkIndexSize_, ++chunkNum) {\n    size_t end = min(data_.size(), start + chunkIndexSize_);\n    CHECK(end > start);\n\n    vector<thread>                                          threads(indexThreadQty_);\n    vector<shared_ptr<IndexThreadParamsSplitSW<dist_t>>>    threadParams;\n    mutex                                                   progressBarMutex;\n\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threadParams.push_back(shared_ptr<IndexThreadParamsSplitSW<dist_t>>(\n          new IndexThreadParamsSplitSW<dist_t>(space_, *this, data_,\n                                          i, indexThreadQty_,\n                                          start, end,\n                                          progress_bar.get(), progressBarMutex, 200)));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i] = thread(IndexThreadSplitSW<dist_t>(), ref(*threadParams[i]));\n    }\n    for (size_t i = 0; i < indexThreadQty_; ++i) {\n      threads[i].join();\n    }\n  }\n\n  if (progress_bar) {\n    (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n  }\n\n  if (ElList_.size() != data_.size()) {\n    stringstream err;\n    err << \"Bug: Indexing seems to be incomplete ElList_.size() (\" << ElList_.size() << \") isn't equal to data_.size() (\" << data_.size() << \")\";\n    LOG(LIB_INFO) << err.str();\n    throw runtime_error(err.str());\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRandSplit<dist_t>::SetQueryTimeParams(const AnyParams& QueryTimeParams) {\n  AnyParamManager pmgr(QueryTimeParams);\n  pmgr.GetParamOptional(\"initSearchAttempts\", initSearchAttempts_,  3);\n  pmgr.GetParamOptional(\"efSearch\", efSearch_, NN_);\n  pmgr.CheckUnused();\n  LOG(LIB_INFO) << \"Set SmallWorldRandSplit query-time parameters:\";\n  LOG(LIB_INFO) << \"initSearchAttempts =\" << initSearchAttempts_;\n  LOG(LIB_INFO) << \"efSearch           =\" << efSearch_;\n}\n\ntemplate <typename dist_t>\nconst std::string SmallWorldRandSplit<dist_t>::StrDesc() const {\n  return METH_SMALL_WORLD_RAND_SPLIT;\n}\n\ntemplate <typename dist_t>\nSmallWorldRandSplit<dist_t>::~SmallWorldRandSplit() {\n}\n\ntemplate <typename dist_t>\ntypename SmallWorldRandSplit<dist_t>::MSWNode* SmallWorldRandSplit<dist_t>::getRandomEntryPointLocked(size_t start, size_t end) const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  MSWNode* res = getRandomEntryPoint(start, end);\n  return res;\n}\n\ntemplate <typename dist_t>\nsize_t SmallWorldRandSplit<dist_t>::getEntryQtyLocked() const\n{\n  unique_lock<mutex> lock(ElListGuard_);\n  size_t res = ElList_.size();\n  return res;\n}\n\ntemplate <typename dist_t>\ntypename SmallWorldRandSplit<dist_t>::MSWNode* SmallWorldRandSplit<dist_t>::getRandomEntryPoint(size_t start, size_t end) const {\n  if(end <= start) {\n    return NULL;\n  } else {\n    size_t num = RandomInt()% (end - start);\n    return ElList_[start + num];\n  }\n}\n\ntemplate <typename dist_t>\nvoid \nSmallWorldRandSplit<dist_t>::searchForIndexing(const Object *queryObj,\n                                          size_t chunkStart, size_t chunkEnd, size_t randomEntryPointEnd,\n                                          vector<bool>& visitedBitset,\n                                          priority_queue<EvaluatedMSWNodeDirect> &resultSet) const\n{\n/*\n * The trick of using large dense bitsets instead of unordered_set was \n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  visitedBitset.assign(visitedBitset.size(), false); // clear the bitset\n\n  vector<MSWNode*> neighborCopy;\n\n  for (size_t i=0; i < initIndexAttempts_; i++){\n    /**\n     * Search for the k most closest elements to the query.\n     */\n\n    MSWNode* provider = NULL;\n\n    // Some entries will hold NULLs temporarily\n    for (int att = 0; ((provider = getRandomEntryPointLocked(chunkStart, randomEntryPointEnd)) == NULL) && att < 100; ++att);\n\n    if (provider == NULL) {\n      unique_lock<mutex> lock(ElListGuard_);\n      provider = ElList_[chunkStart];\n    }\n\n    priority_queue <dist_t>                    closestDistQueue;\n    priority_queue <EvaluatedMSWNodeReverse>   candidateSet;\n\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n    dist_t d = space_.ProxyDistance(queryObj, provider->getData());\n    #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n    dist_t d = space_.IndexTimeDistance(queryObj, provider->getData());\n#endif\n    EvaluatedMSWNodeReverse ev(d, provider);\n\n    candidateSet.push(ev);\n    closestDistQueue.push(d);\n\n    if (closestDistQueue.size() > efConstruction_) {\n      closestDistQueue.pop();\n    }\n\n    size_t nodeId = provider->getId();\n    CHECK_MSG(nodeId >= chunkStart && nodeId < chunkEnd,\n              \"Bug, expecting node ID in the semi-open interval [\" + ConvertToString(chunkStart) + \",\" + ConvertToString(chunkEnd) + \")\");\n\n    visitedBitset[nodeId - chunkStart] = true;\n\n    resultSet.emplace(d, provider);\n        \n    if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n      resultSet.pop();\n    }        \n\n    while (!candidateSet.empty()) {\n      const EvaluatedMSWNodeReverse& currEv = candidateSet.top();\n      dist_t lowerBound = closestDistQueue.top();\n\n      /*\n       * Check if we reached a local minimum.\n       */\n      if (currEv.getDistance() > lowerBound) {\n        break;\n      }\n      MSWNode* currNode = currEv.getMSWNode();\n\n      /*\n       * This lock protects currNode from being modified\n       * while we are accessing elements of currNode.\n       */\n      size_t neighborQty = 0;\n      {\n        unique_lock<mutex> lock(currNode->accessGuard_);\n\n        //const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        const vector<MSWNode*>& neighbor = currNode->getAllFriends();\n        neighborQty = neighbor.size();\n        if (neighborQty > neighborCopy.size()) neighborCopy.resize(neighborQty);\n        for (size_t k = 0; k < neighborQty; ++k)\n          neighborCopy[k]=neighbor[k];\n      }\n\n      // Can't access curEv anymore! The reference would become invalid\n      candidateSet.pop();\n\n      // calculate distance to each neighbor\n      for (size_t neighborId = 0; neighborId < neighborQty; ++neighborId) {\n        MSWNode* pNeighbor = neighborCopy[neighborId];\n\n        size_t nodeId = pNeighbor->getId();\n        CHECK_MSG(nodeId >= chunkStart && nodeId < chunkEnd,\n                  \"Bug, expecting node ID in the semi-open interval [\" + ConvertToString(chunkStart) + \",\" + ConvertToString(chunkEnd) + \")\");\n\n        if (!visitedBitset[nodeId - chunkStart]) {\n          visitedBitset[nodeId - chunkStart] = true;\n\n#ifdef USE_ALTERNATIVE_FOR_INDEXING\n          d = space_.ProxyDistance(queryObj, pNeighbor->getData());\n          #pragma message \"Using an alternative/proxy function for indexing, not the original one!\"          \n#else\n          d = space_.IndexTimeDistance(queryObj, pNeighbor->getData());\n#endif\n\n          if (closestDistQueue.size() < efConstruction_ || d < closestDistQueue.top()) {\n            closestDistQueue.push(d);\n            if (closestDistQueue.size() > efConstruction_) {\n              closestDistQueue.pop();\n            }\n            candidateSet.emplace(d, pNeighbor);\n          }\n\n          if (resultSet.size() < NN_ || resultSet.top().getDistance() > d) {\n            resultSet.emplace(d, pNeighbor);\n            if (resultSet.size() > NN_) { // TODO check somewhere that NN > 0\n              resultSet.pop();\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::add(MSWNode *newElement,\n                                 const size_t chunkStart, const size_t chunkEnd,\n                                 vector<bool>& visitedBitset){\n  newElement->removeAllFriends();\n\n  size_t randomEntryPointEnd = 0;\n\n  size_t insertIndex = 0;\n  {\n    unique_lock<mutex> lock(ElListGuard_);\n    CHECK_MSG(chunkIndexSize_ > 0, \"chunkIndexSize should be > 0\");\n    CHECK(ElList_.size() >= chunkStart && ElList_.size() < chunkEnd);\n    size_t chunkIndexId = ElList_.size() % chunkIndexSize_ ;\n    if (0 == chunkIndexId) {\n      // If we start a new chunk, don't connect chunk elements to previously inserted entries!\n      ElList_.push_back(newElement);\n      return;\n    }\n\n    CHECK(chunkIndexSize_ <= data_.size());\n#ifdef START_WITH_E0\n    randomEntryPointEnd = chunkStart + 1;\n#else\n    // don't think that we can ever have a data set so large that this summation would cause an overflow,\n    // also we ensure that chunkIndexSize_ <= data_.size()\n    randomEntryPointEnd = min(ElList_.size(), chunkStart + chunkIndexSize_);\n#endif\n    insertIndex = ElList_.size();\n    /*\n     * We need to claim the element space, otherwise we will get overlapping partitions in the multi-threaded mode.\n     * NULL shouldn't cause problems during indexing, because NULLed entries do not appear as neighbors,\n     * they can only be retrieved via a getRandomEntryPointLocked(). However, the function searchForIndexing\n     * calls getRandomEntryPointLocked() until a non-NULL entry is returned.\n     * After several failed attempts, we will use the first entry in the chunk as the starting point,\n     * as this entry is guranteed to be non-NULL.\n     */\n    ElList_.push_back(NULL);\n  }\n\n  CHECK(randomEntryPointEnd > chunkStart);\n\n  {\n    priority_queue<EvaluatedMSWNodeDirect> resultSet;\n\n    searchForIndexing(newElement->getData(), chunkStart, chunkEnd, randomEntryPointEnd, visitedBitset, resultSet);\n\n    // TODO actually we might need to add elements in the reverse order in the future.\n    // For the current implementation, however, the order doesn't seem to matter\n    while (!resultSet.empty()) {\n      link(resultSet.top().getMSWNode(), newElement);\n      resultSet.pop();\n    }\n  }\n\n  {\n    unique_lock<mutex> lock(ElListGuard_);\n    CHECK(NULL == ElList_[insertIndex]);\n    ElList_[insertIndex] = newElement;\n  }\n\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  throw runtime_error(\"Range search is not supported!\");\n}\n\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::Search(KNNQuery<dist_t>* query, IdType) const {\n  if (ElList_.empty()) return;\n/*\n * The trick of using large dense bitsets instead of unordered_set was \n * borrowed from Wei Dong's kgraph: https://github.com/aaalgo/kgraph\n *\n * This trick works really well even in a multi-threaded mode. Indeed, the amount\n * of allocated memory is small. For example, if one has 8M entries, the size of\n * the bitmap is merely 1 MB. Furthermore, setting 1MB of entries to zero via memset would take only\n * a fraction of millisecond.\n */\n  vector<bool>                        visitedBitset(chunkIndexSize_);\n\n  // don't think that we can every have a data set so this would cause an overflow, also\n  // we ensure that chunkIndexSize_ <= data_.size()\n  CHECK(chunkIndexSize_ <= data_.size());\n  for (size_t start = 0; start < ElList_.size(); start += chunkIndexSize_) {\n    size_t end = min(ElList_.size(), start + chunkIndexSize_);\n    CHECK(end > start);\n    if (start) visitedBitset.assign(visitedBitset.size(), false); // Clear the visited array when moving to another chunk\n    for (size_t attempId =0; attempId < initSearchAttempts_; attempId++) {\n      /**\n       * Search of most k-closest elements to the query.\n       */\n\n      priority_queue <dist_t>                  closestDistQueue; //The set of all elements which distance was calculated\n      priority_queue <EvaluatedMSWNodeReverse> candidateQueue; //the set of elements which we can use to evaluate\n\n#ifdef START_WITH_E0_AT_QUERY_TIME\n      size_t randomEntryPointEnd = start + 1;\n#else\n      size_t randomEntryPointEnd = end;\n#endif\n      MSWNode *provider = getRandomEntryPoint(start, randomEntryPointEnd);\n\n      const Object* currObj = provider->getData();\n      dist_t d = query->DistanceObjLeft(currObj);\n      query->CheckAndAddToResult(d, currObj); // This should be done before the object goes to the queue: otherwise it will not be compared to the query at all!\n\n      EvaluatedMSWNodeReverse ev(d, provider);\n      candidateQueue.push(ev);\n      closestDistQueue.emplace(d);\n\n      size_t nodeId = provider->getId();\n      CHECK_MSG(nodeId >= start && nodeId < end,\n                \"Bug, expecting node ID in the semi-open interval [\" + ConvertToString(start) + \",\" + ConvertToString(end) + \")\");\n      visitedBitset[nodeId-start] = true;\n\n      while(!candidateQueue.empty()) {\n        auto iter = candidateQueue.top(); // This one was already compared to the query\n        const EvaluatedMSWNodeReverse& currEv = iter;\n\n        dist_t lowerBound = closestDistQueue.top();\n\n        // Did we reach a local minimum?\n        if (currEv.getDistance() > lowerBound) {\n          break;\n        }\n\n        const vector<MSWNode*>& neighbor = (currEv.getMSWNode())->getAllFriends();\n\n        // Can't access curEv anymore! The reference would become invalid\n        candidateQueue.pop();\n\n        //calculate distance to each neighbor\n        for (auto iter = neighbor.begin(); iter != neighbor.end(); ++iter){\n          size_t nodeId = (*iter)->getId();\n          CHECK_MSG(nodeId >= start && nodeId < end,\n                    \"Bug, expecting node ID in the semi-open interval [\" + ConvertToString(start) + \",\" + ConvertToString(end) + \")\");\n\n          size_t nodeIdDiff = nodeId - start;\n          if (!visitedBitset[nodeIdDiff]) {\n            const Object* currObj = (*iter)->getData();\n            dist_t d = query->DistanceObjLeft(currObj);\n\n            visitedBitset[nodeIdDiff] = true;\n\n            if (closestDistQueue.size() < efSearch_ || d < closestDistQueue.top()) {\n              closestDistQueue.emplace(d);\n              if (closestDistQueue.size() > efSearch_) {\n                  closestDistQueue.pop(); \n              }\n              candidateQueue.emplace(d, *iter);\n            }\n\n            query->CheckAndAddToResult(d, currObj);\n          }\n        }\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::SaveIndex(const string &location) {\n  ofstream outFile(location);\n  CHECK_MSG(outFile, \"Cannot open file '\" + location + \"' for writing\");\n  outFile.exceptions(std::ios::badbit);\n  size_t lineNum = 0;\n\n  WriteField(outFile, METHOD_DESC, StrDesc()); lineNum++;\n  WriteField(outFile, \"NN\", NN_); lineNum++;\n  WriteField(outFile, \"chunkIndexSize\", chunkIndexSize_); lineNum++;\n\n  for (const MSWNode* pNode: ElList_) {\n    IdType nodeID = pNode->getId();\n    CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n              \"Bug: unexpected node ID \" + ConvertToString(nodeID) +\n              \" for object ID \" + ConvertToString(pNode->getData()->id()) +\n              \"data_.size() = \" + ConvertToString(data_.size()));\n    outFile << nodeID << \":\" << pNode->getData()->id() << \":\";\n    for (const MSWNode* pNodeFriend: pNode->getAllFriends()) {\n      IdType nodeFriendID = pNodeFriend->getId();\n      CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                \" for object ID \" + ConvertToString(pNodeFriend->getData()->id()) +\n                \"data_.size() = \" + ConvertToString(data_.size()));\n      outFile << ' ' << nodeFriendID;\n    }\n    outFile << endl; lineNum++;\n  }\n  outFile << endl; lineNum++; // The empty line indicates the end of data entries\n  WriteField(outFile, LINE_QTY, lineNum + 1 /* including this line */);\n  outFile.close();\n}\n\ntemplate <typename dist_t>\nvoid SmallWorldRandSplit<dist_t>::LoadIndex(const string &location) {\n  vector<MSWNode *> ptrMapper(data_.size());\n\n  for (unsigned pass = 0; pass < 2; ++ pass) {\n    ifstream inFile(location);\n    CHECK_MSG(inFile, \"Cannot open file '\" + location + \"' for reading\");\n    inFile.exceptions(std::ios::badbit);\n\n    size_t lineNum = 1;\n    string methDesc;\n    ReadField(inFile, METHOD_DESC, methDesc);\n    lineNum++;\n    CHECK_MSG(methDesc == StrDesc(),\n              \"Looks like you try to use an index created by a different method: \" + methDesc);\n    ReadField(inFile, \"NN\", NN_);\n    lineNum++;\n\n    ReadField(inFile, \"chunkIndexSize\", chunkIndexSize_);\n    CHECK_MSG(chunkIndexSize_ <= data_.size(), \"chunkIndexSize is larger than the # of data points, did you create this index for a larger data set?\");\n    lineNum++;\n\n    string line;\n    while (getline(inFile, line)) {\n      if (line.empty()) {\n        lineNum++; break;\n      }\n      stringstream str(line);\n      str.exceptions(std::ios::badbit);\n      char c1, c2;\n      IdType nodeID, objID;\n      CHECK_MSG((str >> nodeID) && (str >> c1) && (str >> objID) && (str >> c2),\n                \"Bug or inconsitent data, wrong format, line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(c1 == ':' && c2 == ':',\n                string(\"Bug or inconsitent data, wrong format, c1=\") + c1 + \",c2=\" + c2 +\n                \" line: \" + ConvertToString(lineNum)\n      );\n      CHECK_MSG(nodeID >= 0 && nodeID < data_.size(),\n                DATA_MUTATION_ERROR_MSG + \" (unexpected node ID \" + ConvertToString(nodeID) +\n                \" for object ID \" + ConvertToString(objID) +\n                \" data_.size() = \" + ConvertToString(data_.size()) + \")\");\n      CHECK_MSG(data_[nodeID]->id() == objID,\n                DATA_MUTATION_ERROR_MSG + \" (unexpected object ID \" + ConvertToString(data_[nodeID]->id()) +\n                \" for data element with ID \" + ConvertToString(nodeID) +\n                \" expected object ID: \" + ConvertToString(objID) + \")\"\n      );\n      if (pass == 0) {\n        unique_ptr<MSWNode> node(new MSWNode(data_[nodeID], nodeID));\n        ptrMapper[nodeID] = node.get();\n        ElList_.push_back(node.release());\n      } else {\n        MSWNode *pNode = ptrMapper[nodeID];\n        CHECK_MSG(pNode != NULL,\n                  \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeID));\n        IdType nodeFriendID;\n        while (str >> nodeFriendID) {\n          CHECK_MSG(nodeFriendID >= 0 && nodeFriendID < data_.size(),\n                    \"Bug: unexpected node ID \" + ConvertToString(nodeFriendID) +\n                    \"data_.size() = \" + ConvertToString(data_.size()));\n          MSWNode *pFriendNode = ptrMapper[nodeFriendID];\n          CHECK_MSG(pFriendNode != NULL,\n                    \"Bug, got NULL pointer in the second pass for nodeID \" + ConvertToString(nodeFriendID));\n          pNode->addFriend(pFriendNode, false /* don't check for duplicates */);\n        }\n        CHECK_MSG(str.eof(),\n                  \"It looks like there is some extract erroneous stuff in the end of the line \" +\n                  ConvertToString(lineNum));\n      }\n      ++lineNum;\n    }\n\n    size_t ExpLineNum;\n    ReadField(inFile, LINE_QTY, ExpLineNum);\n    CHECK_MSG(lineNum == ExpLineNum,\n              DATA_MUTATION_ERROR_MSG + \" (expected number of lines \" + ConvertToString(ExpLineNum) +\n              \" read so far doesn't match the number of read lines: \" + ConvertToString(lineNum) + \")\");\n    inFile.close();\n  }\n}\n\ntemplate class SmallWorldRandSplit<float>;\ntemplate class SmallWorldRandSplit<double>;\ntemplate class SmallWorldRandSplit<int>;\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/spatial_approx_tree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <algorithm>\n#include <tuple>\n#include <queue>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"method/spatial_approx_tree.h\"\n\nusing namespace std;\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nstruct SpatialApproxTree<dist_t>::SATKnn {\n  dist_t lbound;     // lower bound\n  dist_t mind;\n  dist_t dist_qp;\n  typename SpatialApproxTree<dist_t>::SATNode* node;\n\n  SATKnn() : lbound(0), mind(0), dist_qp(0), node(NULL) {}\n  SATKnn(dist_t lbound, dist_t mind, dist_t dist_qp, SATNode* node)\n      : lbound(lbound), mind(mind), dist_qp(dist_qp), node(node) {}\n\n  bool operator<(const SATKnn& other) const {\n    return lbound > other.lbound;\n  }\n};\n\ntemplate <typename dist_t>\nclass SpatialApproxTree<dist_t>::SATNode {\n public:\n  SATNode(const Space<dist_t>* space,\n          const Object* pivot,\n          const DistObjectPairVector<dist_t>& dp);\n\n  ~SATNode();\n\n  void Search(RangeQuery<dist_t>* query,\n              dist_t dist_qp,\n              dist_t mind) const;\n\n private:\n  const Object*                           pivot_;\n  dist_t                                  covering_radius_;\n  vector<pair<const Object*, SATNode*>>   neighbors_;\n\n  friend class SpatialApproxTree<dist_t>;\n};\n\ntemplate <typename dist_t>\nSpatialApproxTree<dist_t>::SATNode::SATNode(\n    const Space<dist_t>*          space,\n    const Object*                 pivot,\n    const DistObjectPairVector<dist_t>& dp)\n  : pivot_(pivot), covering_radius_(0) {\n  if (dp.empty()) {    // leaf node\n    return;\n  }\n\n  // dp is already sorted in ascending order\n  covering_radius_ = dp.back().first;\n  vector<tuple<const Object*, size_t, dist_t>> non_neighbors;\n\n  for (size_t i = 0; i < dp.size(); ++i) {\n    dist_t dist_p = dp[i].first;\n    const Object* v = dp[i].second;\n\n    dist_t min_dist = dist_p;\n    size_t min_idx = 0;\n    bool found = false;\n    for (size_t j = 0; j < neighbors_.size(); ++j) {\n      dist_t d = space->IndexTimeDistance(v, neighbors_[j].first);\n      if (min_dist > d) {\n        min_dist = d;\n        min_idx = j;\n        found = true;\n      }\n    }\n\n    if (found) {\n      non_neighbors.push_back(make_tuple(v, min_idx, min_dist));\n    } else {\n      neighbors_.push_back(make_pair(v, nullptr));\n    }\n  }\n\n  vector<DistObjectPairVector<dist_t>> buckets(neighbors_.size());\n\n  for (size_t i = 0; i < non_neighbors.size(); ++i) {\n    const Object* v = get<0>(non_neighbors[i]);\n    size_t min_idx  = get<1>(non_neighbors[i]);\n    dist_t min_dist = get<2>(non_neighbors[i]);\n    for (size_t j = min_idx + 1; j < neighbors_.size(); ++j) {\n      dist_t d = space->IndexTimeDistance(v, neighbors_[j].first);\n      if (min_dist > d) {\n        min_dist = d;\n        min_idx = j;\n      }\n    }\n    buckets[min_idx].push_back(make_pair(min_dist, v));\n  }\n\n  for (size_t i = 0; i < neighbors_.size(); ++i) {\n    sort(buckets[i].begin(), buckets[i].end(),\n              DistObjectPairAscComparator<dist_t>());\n    neighbors_[i].second =\n        new SATNode(space, neighbors_[i].first, buckets[i]);\n  }\n}\n\ntemplate <typename dist_t>\nSpatialApproxTree<dist_t>::SATNode::~SATNode() {\n  for (auto& n : neighbors_) {\n    delete n.second;\n  }\n}\n\ntemplate <typename dist_t>\nvoid SpatialApproxTree<dist_t>::SATNode::Search (\n    RangeQuery<dist_t>* query,\n    dist_t dist_qp,\n    dist_t mind) const {\n  if (dist_qp <= covering_radius_ + query->Radius()) {\n    query->CheckAndAddToResult(dist_qp, pivot_);\n\n    vector<dist_t> d(neighbors_.size());\n    for (size_t i = 0; i < neighbors_.size(); ++i) {\n      d[i] = query->DistanceObjLeft(neighbors_[i].first);\n      if (mind > d[i]) {\n        mind = d[i];\n      }\n    }\n\n    for (size_t i = 0; i < neighbors_.size(); ++i) {\n      if ((d[i] - mind) / 2 <= query->Radius()) {\n        neighbors_[i].second->Search(query, d[i], mind);\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nSpatialApproxTree<dist_t>::SpatialApproxTree(\n    const Space<dist_t>& space,\n    const ObjectVector& data) : space_(space), data_(data) {\n}\n\ntemplate <typename dist_t>\nvoid SpatialApproxTree<dist_t>::CreateIndex(const AnyParams& ) {\n  size_t index = RandomInt() % data_.size();\n  const Object* pivot = data_[index];\n\n  DistObjectPairVector<dist_t> dp;\n  for (size_t i = 0; i < data_.size(); ++i) {\n    if (i != index) {\n      dp.push_back(\n          make_pair(space_.IndexTimeDistance(data_[i], pivot), data_[i]));\n    }\n  }\n\n  sort(dp.begin(), dp.end(), DistObjectPairAscComparator<dist_t>());\n  root_.reset(new SATNode(&space_, pivot, dp));\n}\n\ntemplate <typename dist_t>\nSpatialApproxTree<dist_t>::~SpatialApproxTree() {\n}\n\ntemplate <typename dist_t>\nconst string SpatialApproxTree<dist_t>::StrDesc() const {\n  return \"satree\";\n}\n\ntemplate <typename dist_t>\nvoid SpatialApproxTree<dist_t>::Search(KNNQuery<dist_t>* query, IdType const)  const {\n  static dist_t kZERO = static_cast<dist_t>(0);\n  priority_queue<SATKnn> heap;\n  dist_t dist_qp = query->DistanceObjLeft(root_->pivot_);\n  heap.push(SATKnn((max(kZERO, dist_qp - root_->covering_radius_)),\n                   dist_qp, dist_qp, root_.get()));\n\n  while (!heap.empty()) {\n    SATKnn top = heap.top();\n    dist_t lbound = (top.lbound);\n    dist_t mind = top.mind;\n    dist_t dist_qp = top.dist_qp;\n\n    SATNode* node = top.node;\n\n    heap.pop();\n//cout << \" bnd \" << lbound << \" -> \" << query->Radius() << endl;\n    if (lbound > query->Radius()) break;\n\n    query->CheckAndAddToResult(dist_qp, node->pivot_);\n\n\n    vector<dist_t> d(node->neighbors_.size());\n    for (size_t i = 0; i < node->neighbors_.size(); ++i) {\n      d[i] = query->DistanceObjLeft(node->neighbors_[i].first);\n      mind = min(mind, d[i]);\n    }\n\n    for (size_t i = 0; i < node->neighbors_.size(); ++i) {\n      /* \n       * In the original VLDB journal paper Fig. 7\n       * The new lbound is computed as: max(lbound, mind/2, d(q,v)-R(v))\n       *\n       * This is most likely to be an error, because it contradicts to what\n       * is written in section 4.3, in the discussion on lower bounds.\n       *\n       * The correct version, which seems to be the one in the Metric Spaces Library,\n       * replaces the second MAX argument with:\n       * (d(q,v)-mind)/2\n       */\n      dist_t new_lbound = std::max(std::max(lbound, (d[i] - mind)/2),\n                                   (d[i] - node->neighbors_[i].second->covering_radius_));\n\n      if (new_lbound < query->Radius()) {\n        heap.push(SATKnn(new_lbound, mind, d[i], node->neighbors_[i].second));\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid SpatialApproxTree<dist_t>::Search(RangeQuery<dist_t>* query, IdType) const {\n  dist_t dist_qp = query->DistanceObjLeft(root_->pivot_);\n  root_->Search(query, dist_qp, dist_qp);\n}\n\ntemplate class SpatialApproxTree<double>;\ntemplate class SpatialApproxTree<float>;\ntemplate class SpatialApproxTree<int>;\n\n}    // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/method/vptree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <algorithm>\n#include <iostream>\n#include <fstream>\n#include <sstream>\n#include <string>\n#include <cmath>\n\n#include \"space.h\"\n#include \"rangequery.h\"\n#include \"knnquery.h\"\n#include \"searchoracle.h\"\n#include \"method/vptree.h\"\n#include \"method/vptree_utils.h\"\n#include \"methodfactory.h\"\n\nnamespace similarity {\n\nusing std::string;\nusing std::stringstream;\nusing std::endl;\nusing std::cout;\nusing std::cerr;\n    \ntemplate <typename dist_t, typename SearchOracle>\nVPTree<dist_t, SearchOracle>::VPTree(\n                       bool  PrintProgress,\n                       Space<dist_t>& space,\n                       const ObjectVector& data,\n                       bool use_random_center) : \n                              space_(space),\n                              data_(data),\n                              PrintProgress_(PrintProgress),\n                              use_random_center_(use_random_center),\n                              oracle_(space, data, PrintProgress),\n                              QueryTimeParams_(oracle_.GetQueryTimeParamNames()) { \n                                QueryTimeParams_.push_back(\"maxLeavesToVisit\");\n                              }\n\ntemplate <typename dist_t, typename SearchOracle>\nvoid VPTree<dist_t, SearchOracle>::CreateIndex(const AnyParams& IndexParams) {\n  AnyParamManager pmgr(IndexParams);\n\n  pmgr.GetParamOptional(\"bucketSize\", BucketSize_, 50);\n  pmgr.GetParamOptional(\"chunkBucket\", ChunkBucket_, true);\n\n  LOG(LIB_INFO) << \"bucketSize  = \" << BucketSize_;\n  LOG(LIB_INFO) << \"chunkBucket = \" << ChunkBucket_;\n\n  // Call this function *ONLY AFTER* the bucket size is obtained!\n  oracle_.SetIndexTimeParams(pmgr);\n  oracle_.LogParams();\n\n  pmgr.CheckUnused();\n\n  this->ResetQueryTimeParams(); // reset query-time parameters\n\n  unique_ptr<ProgressDisplay>   progress_bar(PrintProgress_ ? \n                                              new ProgressDisplay(data_.size(), cerr):\n                                              NULL);\n\n  root_.reset(new VPNode(0,\n                     progress_bar.get(), \n                     oracle_, \n                     space_, data_,\n                     BucketSize_, ChunkBucket_,\n                     use_random_center_ /* use random center */));\n\n  if (progress_bar) { // make it 100%\n    (*progress_bar) += (progress_bar->expected_count() - progress_bar->count());\n  }\n}\n\ntemplate <typename dist_t,typename SearchOracle>\nVPTree<dist_t, SearchOracle>::~VPTree() {\n}\n\ntemplate <typename dist_t,typename SearchOracle>\nconst std::string VPTree<dist_t, SearchOracle>::StrDesc() const {\n  return \"vptree: \" + SearchOracle::GetName();\n}\n\ntemplate <typename dist_t, typename SearchOracle>\nvoid VPTree<dist_t, SearchOracle>::Search(RangeQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  root_->GenericSearch(query, mx);\n}\n\ntemplate <typename dist_t, typename SearchOracle>\nvoid VPTree<dist_t, SearchOracle>::Search(KNNQuery<dist_t>* query, IdType) const {\n  int mx = MaxLeavesToVisit_;\n  root_->GenericSearch(query, mx);\n}\n\ntemplate <typename dist_t, typename SearchOracle>\nvoid VPTree<dist_t, SearchOracle>::VPNode::CreateBucket(bool ChunkBucket, \n                                                        const ObjectVector& data, \n                                                        ProgressDisplay* progress_bar) {\n    if (ChunkBucket) {\n      CreateCacheOptimizedBucket(data, CacheOptimizedBucket_, bucket_);\n    } else {\n      bucket_ = new ObjectVector(data);\n    }\n    if (progress_bar) (*progress_bar) += data.size();\n}\n\ntemplate <typename dist_t, typename SearchOracle>\nVPTree<dist_t, SearchOracle>::VPNode::VPNode(\n                               unsigned level,\n                               ProgressDisplay* progress_bar,\n                               const SearchOracle& oracle,\n                               const Space<dist_t>& space, const ObjectVector& data,\n                               size_t BucketSize, bool ChunkBucket,\n                               bool use_random_center)\n    : oracle_(oracle),\n      pivot_(NULL), mediandist_(0),\n      left_child_(NULL), right_child_(NULL),\n      bucket_(NULL), CacheOptimizedBucket_(NULL) \n{\n  CHECK(!data.empty());\n\n  if (!data.empty() && data.size() <= BucketSize) {\n    CreateBucket(ChunkBucket, data, progress_bar);\n    return;\n  }\n\n  const size_t index = SelectVantagePoint(data, use_random_center);\n  pivot_ = data[index];\n\n  if (data.size() >= 2) {\n    DistObjectPairVector<dist_t> dp;\n    for (size_t i = 0; i < data.size(); ++i) {\n      if (i == index) {\n        continue;\n      }\n      // Distance can be asymmetric, the pivot is always on the left side!\n      dp.push_back(std::make_pair(space.IndexTimeDistance(pivot_, data[i]), data[i]));\n    }\n\n    std::sort(dp.begin(), dp.end(), DistObjectPairAscComparator<dist_t>());\n    DistObjectPair<dist_t>  medianDistObj = GetMedian(dp);\n    mediandist_ = medianDistObj.first; \n\n    ObjectVector left;\n    ObjectVector right;\n\n    for (auto it = dp.begin(); it != dp.end(); ++it) {\n      const Object* v = it->second;\n\n      /* \n       * Note that here we compare a pair (distance, pointer)\n       * If distances are equal, pointers are compared.\n       * Thus, we would get a balanced split, even if the median\n       * occurs many times in the array dp[].\n       */\n      if (*it < medianDistObj) {\n        left.push_back(v);\n      } else {\n        right.push_back(v);\n      }\n    }\n\n    /*\n     * Sometimes, e.g.., for integer-valued distances,\n     * mediandist_ will be non-discriminative. In this case\n     * it is more efficient to put everything into a single bucket.\n     */\n    size_t LeastSize = dp.size() / BalanceConst;\n\n    if (left.size() < LeastSize || right.size() < LeastSize) {\n        CreateBucket(ChunkBucket, data, progress_bar);\n        return;\n    }\n\n    if (!left.empty()) {\n      left_child_ = new VPNode(level + 1, progress_bar, oracle_, space, left, BucketSize, ChunkBucket, use_random_center);\n    }\n\n    if (!right.empty()) {\n      right_child_ = new VPNode(level + 1, progress_bar, oracle_, space, right, BucketSize, ChunkBucket, use_random_center);\n    }\n  }\n}\n\ntemplate <typename dist_t, typename SearchOracle>\nVPTree<dist_t, SearchOracle>::VPNode::~VPNode() {\n  delete left_child_;\n  delete right_child_;\n  ClearBucket(CacheOptimizedBucket_, bucket_);\n}\n\ntemplate <typename dist_t, typename SearchOracle>\ntemplate <typename QueryType>\nvoid VPTree<dist_t, SearchOracle>::VPNode::GenericSearch(QueryType* query,\n                                                         int& MaxLeavesToVisit) const {\n  if (MaxLeavesToVisit <= 0) return; // early termination\n  if (bucket_) {\n    --MaxLeavesToVisit;\n\n    for (unsigned i = 0; i < bucket_->size(); ++i) {\n      const Object* Obj = (*bucket_)[i];\n      dist_t distQC = query->DistanceObjLeft(Obj);\n      query->CheckAndAddToResult(distQC, Obj);\n    }\n    return;\n  }\n\n  // Distance can be asymmetric, the pivot is always the left argument (see the function that creates the node)!\n  dist_t distQC = query->DistanceObjLeft(pivot_);\n  query->CheckAndAddToResult(distQC, pivot_);\n\n  if (distQC < mediandist_) {      // the query is inside\n    // then first check inside\n    if (left_child_ != NULL && oracle_.Classify(distQC, query->Radius(), mediandist_) != kVisitRight)\n       left_child_->GenericSearch(query, MaxLeavesToVisit);\n\n    /* \n     * After potentially visiting the left child, we need to reclassify the node,\n     * because the query radius might have decreased.\n     */\n\n\n    // after that outside\n    if (right_child_ != NULL && oracle_.Classify(distQC, query->Radius(), mediandist_) != kVisitLeft)\n       right_child_->GenericSearch(query, MaxLeavesToVisit);\n  } else {                         // the query is outside\n    // then first check outside\n    if (right_child_ != NULL && oracle_.Classify(distQC, query->Radius(), mediandist_) != kVisitLeft)\n       right_child_->GenericSearch(query, MaxLeavesToVisit);\n\n    /* \n     * After potentially visiting the left child, we need to reclassify the node,\n     * because the query radius might have decreased.\n     */\n\n    // after that inside\n    if (left_child_ != NULL && oracle_.Classify(distQC, query->Radius(), mediandist_) != kVisitRight)\n      left_child_->GenericSearch(query, MaxLeavesToVisit);\n  }\n}\n\ntemplate class VPTree<float, PolynomialPruner<float> >;\ntemplate class VPTree<double, PolynomialPruner<double> >;\ntemplate class VPTree<int, PolynomialPruner<int> >;\n\n}   // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/params.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <cstring>\n#include <map>\n#include <limits>\n#include <iostream>\n#include <stdexcept>\n\n#include \"utils.h\"\n#include \"params.h\"\n#include \"logging.h\"\n#include \"space.h\"\n\n#include <cmath>\n\nusing namespace std;\n\nnamespace similarity {\n\nusing std::multimap;\nusing std::string;\n\nvoid ParseSpaceArg(const string& descStr, string& SpaceType, vector<string>& SpaceDesc) {\n  vector<string> tmp;\n  if (!SplitStr(descStr, tmp, ':') || tmp.size() > 2  || !tmp.size()) {\n    throw runtime_error(\"Wrong format of the space argument: '\" + descStr + \"'\");\n  }\n\n  SpaceType = tmp[0];\n  SpaceDesc.clear();\n\n  if (tmp.size() == 2) {\n    if (!SplitStr(tmp[1], SpaceDesc, ',')) {\n      throw runtime_error(\"Cannot split space arguments in: '\" + tmp[1] + \"'\");\n    }\n  }\n}\n\nvoid ParseArg(const string& descStr, vector<string>& vDesc) {\n  vDesc.clear();\n\n  if (descStr.empty()) return;\n\n  if (!SplitStr(descStr, vDesc, ',')) {\n    throw runtime_error(\"Cannot split arguments in: '\" + descStr + \"'\");\n  }\n}\n\n\n};\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/params_cmdline.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <cstring>\n#include <map>\n#include <limits>\n#include <iostream>\n#include <stdexcept>\n\n#include \"utils.h\"\n#include \"params_cmdline.h\"\n#include \"params_def.h\"\n#include \"logging.h\"\n#include \"space.h\"\n\n#include <cmath>\n#include <boost/program_options.hpp>\n\nusing namespace std;\n\nnamespace similarity {\n\nusing std::multimap;\nusing std::string;\n\nnamespace po = boost::program_options;\n\nstatic void Usage(const char *prog,\n                  const po::options_description& desc) {\n    std::cout << prog << std::endl\n              << desc << std::endl;\n}\n\nvoid ParseCommandLine(int argc, char* argv[], bool& bPrintProgress,\n                      string&                 LogFile,\n                      string&                 LoadIndexLoc,\n                      string&                 SaveIndexLoc,\n                      string&                 DistType,\n                      string&                 SpaceType,\n                      shared_ptr<AnyParams>&  SpaceParams,\n                      unsigned&               ThreadTestQty,\n                      bool&                   AppendToResFile,\n                      string&                 ResFilePrefix,\n                      unsigned&               TestSetQty,\n                      string&                 DataFile,\n                      string&                 QueryFile,\n                      string&                 CacheGSFilePrefix,\n                      float&                  maxCacheGSRelativeQty,\n                      unsigned&               MaxNumData,\n                      unsigned&               MaxNumQuery,\n                      vector<unsigned>&       knn,\n                      float&                  eps,\n                      string&                 RangeArg,\n                      string&                 MethodName,\n                      shared_ptr<AnyParams>&          IndexTimeParams,\n                      vector<shared_ptr<AnyParams>>&  QueryTimeParams) {\n  knn.clear();\n  RangeArg.clear();\n  QueryTimeParams.clear();\n\n  string          indexTimeParamStr;\n  vector<string>  vQueryTimeParamStr;\n  string          spaceParamStr;\n  string          knnArg;\n  // Conversion to double is due to an Intel's bug with __builtin_signbit being undefined for float\n  double          epsTmp;\n\n  bPrintProgress  = true;\n\n  bool bSuppressPrintProgress;\n\n  po::options_description ProgOptDesc(\"Allowed options\");\n  ProgOptDesc.add_options()\n    (HELP_PARAM_OPT,          HELP_PARAM_MSG)\n    (SPACE_TYPE_PARAM_OPT,    po::value<string>(&spaceParamStr)->required(),                SPACE_TYPE_PARAM_MSG)\n    (DIST_TYPE_PARAM_OPT,     po::value<string>(&DistType)->default_value(DIST_TYPE_FLOAT), DIST_TYPE_PARAM_MSG)\n    (DATA_FILE_PARAM_OPT,     po::value<string>(&DataFile)->required(),                     DATA_FILE_PARAM_MSG)\n    (MAX_NUM_DATA_PARAM_OPT,  po::value<unsigned>(&MaxNumData)->default_value(MAX_NUM_DATA_PARAM_DEFAULT), MAX_NUM_DATA_PARAM_MSG)\n    (QUERY_FILE_PARAM_OPT,    po::value<string>(&QueryFile)->default_value(QUERY_FILE_PARAM_DEFAULT),  QUERY_FILE_PARAM_MSG)\n    (LOAD_INDEX_PARAM_OPT,    po::value<string>(&LoadIndexLoc)->default_value(LOAD_INDEX_PARAM_DEFAULT),   LOAD_INDEX_PARAM_MSG)\n    (SAVE_INDEX_PARAM_OPT,    po::value<string>(&SaveIndexLoc)->default_value(SAVE_INDEX_PARAM_DEFAULT),   SAVE_INDEX_PARAM_MSG)\n    (CACHE_PREFIX_GS_PARAM_OPT,  po::value<string>(&CacheGSFilePrefix)->default_value(CACHE_PREFIX_GS_PARAM_DEFAULT),  CACHE_PREFIX_GS_PARAM_MSG)\n    (MAX_CACHE_GS_QTY_PARAM_OPT, po::value<float>(&maxCacheGSRelativeQty)->default_value(MAX_CACHE_GS_QTY_PARAM_DEFAULT),    MAX_CACHE_GS_QTY_PARAM_MSG)\n    (LOG_FILE_PARAM_OPT,      po::value<string>(&LogFile)->default_value(LOG_FILE_PARAM_DEFAULT),          LOG_FILE_PARAM_MSG)\n    (MAX_NUM_QUERY_PARAM_OPT, po::value<unsigned>(&MaxNumQuery)->default_value(MAX_NUM_QUERY_PARAM_DEFAULT), MAX_NUM_QUERY_PARAM_MSG)\n    (TEST_SET_QTY_PARAM_OPT,  po::value<unsigned>(&TestSetQty)->default_value(TEST_SET_QTY_PARAM_DEFAULT),   TEST_SET_QTY_PARAM_MSG)\n    (KNN_PARAM_OPT,           po::value< string>(&knnArg),                                  KNN_PARAM_MSG)\n    (RANGE_PARAM_OPT,         po::value<string>(&RangeArg),                                 RANGE_PARAM_MSG)\n    (EPS_PARAM_OPT,           po::value<double>(&epsTmp)->default_value(EPS_PARAM_DEFAULT), EPS_PARAM_MSG)\n    (QUERY_TIME_PARAMS_PARAM_OPT, po::value< vector<string> >(&vQueryTimeParamStr)->multitoken()->zero_tokens(), QUERY_TIME_PARAMS_PARAM_MSG)\n    (INDEX_TIME_PARAMS_PARAM_OPT, po::value<string>(&indexTimeParamStr)->default_value(\"\"), INDEX_TIME_PARAMS_PARAM_MSG)\n    (METHOD_PARAM_OPT,        po::value<string>(&MethodName)->default_value(METHOD_PARAM_DEFAULT), METHOD_PARAM_MSG)\n    (THREAD_TEST_QTY_PARAM_OPT,po::value<unsigned>(&ThreadTestQty)->default_value(THREAD_TEST_QTY_PARAM_DEFAULT), THREAD_TEST_QTY_PARAM_MSG)\n    (OUT_FILE_PREFIX_PARAM_OPT, po::value<string>(&ResFilePrefix)->default_value(OUT_FILE_PREFIX_PARAM_DEFAULT), OUT_FILE_PREFIX_PARAM_MSG)\n    (APPEND_TO_RES_FILE_PARAM_OPT, po::bool_switch(&AppendToResFile), APPEND_TO_RES_FILE_PARAM_MSG)\n    (NO_PROGRESS_PARAM_OPT,   po::bool_switch(&bSuppressPrintProgress), NO_PROGRESS_PARAM_MSG)\n    ;\n\n  po::variables_map vm;\n  try {\n    po::store(po::parse_command_line(argc, argv, ProgOptDesc), vm);\n    po::notify(vm);\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << e.what();\n  }\n\n  bPrintProgress = !bSuppressPrintProgress;\n\n  eps = epsTmp;\n\n  if (vm.count(\"help\")  ) {\n    Usage(argv[0], ProgOptDesc);\n    exit(0);\n  }\n\n  ToLower(DistType);\n  ToLower(spaceParamStr);\n  ToLower(MethodName);\n  \n  try {\n    {\n      vector<string>     desc;\n      ParseSpaceArg(spaceParamStr, SpaceType, desc);\n      SpaceParams = shared_ptr<AnyParams>(new AnyParams(desc));\n    }\n\n\n    {\n      vector<string>     desc;\n      ParseArg(indexTimeParamStr, desc);\n      IndexTimeParams = shared_ptr<AnyParams>(new AnyParams(desc));\n    }\n\n    if (vQueryTimeParamStr.empty())\n      vQueryTimeParamStr.push_back(\"\");\n\n    for(const auto s: vQueryTimeParamStr) {\n      vector<string>  desc;\n\n      ParseArg(s, desc);\n      QueryTimeParams.push_back(shared_ptr<AnyParams>(new AnyParams(desc)));\n    }\n\n    if (vm.count(\"knn\")) {\n      if (!SplitStr(knnArg, knn, ',')) {\n        Usage(argv[0], ProgOptDesc);\n        LOG(LIB_FATAL) << \"Wrong format of the KNN argument: '\" << knnArg;\n      }\n    }\n\n    if (DataFile.empty()) {\n      LOG(LIB_FATAL) << \"data file is not specified!\";\n    }\n\n    if (!DoesFileExist(DataFile)) {\n      LOG(LIB_FATAL) << \"data file \" << DataFile << \" doesn't exist\";\n    }\n\n    if (!QueryFile.empty() && !DoesFileExist(QueryFile)) {\n      LOG(LIB_FATAL) << \"query file \" << QueryFile << \" doesn't exist\";\n    }\n\n    if (!MaxNumQuery && QueryFile.empty()) {\n      LOG(LIB_FATAL) << \"Set a positive # of queries or specify a query file!\"; \n    }\n\n    CHECK_MSG(MaxNumData < MAX_DATASET_QTY, \"The maximum number of points should not exceed\" + ConvertToString(MAX_DATASET_QTY));\n    CHECK_MSG(MaxNumQuery < MAX_DATASET_QTY, \"The maximum number of queries should not exceed\" + ConvertToString(MAX_DATASET_QTY));\n  } catch (const exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  }\n}\n\n};\n\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/projection.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <vector>\n#include <stdexcept>\n#include <limits>\n#include <cmath>\n\n#include \"utils.h\"\n#include \"projection.h\"\n\n#include \"randproj_util.h\"\n#include \"permutation_utils.h\"\n\n#include \"space/space_vector.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\n/*\n * Convert to a dense vector. If the space is already a dense-vector\n * space, this should be an identity transformation.\n */\n\ntemplate <class dist_t>\nclass ProjectionVectDense : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    if (NULL == pObj) pObj = pQuery->QueryObject();\n    vector<dist_t> intermBuffer(dstDim_);\n    Projection<dist_t>::fillIntermBuffer(space_,\n                                         pObj,\n                                         dstDim_,\n                                         intermBuffer);\n    for (size_t i = 0; i < dstDim_; ++i)\n      pDstVect[i] = static_cast<float>(intermBuffer[i]);\n  }\n\n  friend class Projection<dist_t>;\nprivate:\n  ProjectionVectDense(const Space<dist_t>& space, size_t nDstDim) :\n    space_(space), dstDim_(nDstDim) {\n  }\n\n  const Space<dist_t>& space_;\n  size_t dstDim_;\n\n};\n\n\n/*\n * Classic random projections.\n */\n\ntemplate <class dist_t>\nclass ProjectionRand : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    if (NULL == pObj) pObj = pQuery->QueryObject();\n    /*\n     * For dense vector spaces, we ignore the specified \"projection\"\n     * dimensionality and use an actual number of vector elements. \n     * For sparse vector spaces, we obtain an intermediate dense vector \n     * with projDim elements.\n     */\n    size_t nDim = space_.GetElemQty(pObj);\n    if (!nDim) nDim = projDim_;\n    vector<dist_t> intermBuffer(nDim);\n    Projection<dist_t>::fillIntermBuffer(space_,\n                                         pObj,\n                                         nDim,\n                                         intermBuffer);\n\n    vector<dist_t> dstBuffer(dstDim_);\n    compRandProj<dist_t>(_projMatr, &intermBuffer[0],\n                         nDim,\n                         &dstBuffer[0],\n                         dstDim_);\n    for (size_t i = 0; i < dstDim_; ++i)\n      pDstVect[i] = static_cast<float>(dstBuffer[i]);\n  }\n\n  friend class Projection<dist_t>;\nprivate:\n  ProjectionRand(const Space<dist_t>& space, const ObjectVector& data,\n                 size_t nProjDim, size_t nDstDim, bool bDoOrth) :\n    space_(space), projDim_(nProjDim), dstDim_(nDstDim) {\n    if (data.empty()) {\n      stringstream err;\n      err << \"Cannot initialize projection type '\" <<\n             PROJ_TYPE_RAND << \"'\" <<\n             \" without a single data point\";\n      throw runtime_error(err.str());\n    }\n    size_t nDim = space.GetElemQty(data[0]);\n    if (nDim == 0) {\n      if (!projDim_) {\n        throw runtime_error(\"Specify a non-zero value for the intermediate dimensionaity.\");\n      }\n      nDim = projDim_;\n    }\n\n    initRandProj(nDim, dstDim_, bDoOrth, _projMatr);\n  }\n\n  vector<vector<dist_t>>    _projMatr;\n  const Space<dist_t>& space_;\n  size_t projDim_;\n  size_t dstDim_;\n\n};\n\n/*\n * Distances to random reference points.\n */\ntemplate <class dist_t>\nclass ProjectionRandRefPoint : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    for (size_t i = 0; i < dstDim_; ++i) {\n      pDstVect[i] = static_cast<float>(\n          Projection<dist_t>::DistanceObjLeft(space_, pQuery,\n                                              ref_pts_[i], pObj));\n    }\n  }\n\n  friend class Projection<dist_t>;\nprivate:\n  ProjectionRandRefPoint(const Space<dist_t>& space,\n                         const ObjectVector& data,\n                         size_t nDstDim) :\n                         space_(space), data_(data),\n                         dstDim_(nDstDim) {\n\n\n    CHECK(data_.size() > dstDim_);\n\n    GetPermutationPivot(data_, space_, dstDim_, &ref_pts_);\n\n  }\n\n  const Space<dist_t>&  space_;\n  const ObjectVector&   data_;\n  ObjectVector          ref_pts_;\n  size_t dstDim_;\n\n};\n\n/*\n * Permutations.\n * See, Edgar Chávez et al., Effective Proximity Retrieval by Ordering Permutations.\n *                           IEEE Trans. Pattern Anal. Mach. Intell. (2008)\n *\n */\ntemplate <typename dist_t>\nclass ProjectionPermutation : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    Permutation perm;\n\n    if (NULL == pQuery) {\n      GetPermutation(ref_pts_, space_, pObj, &perm);\n    } else {\n      GetPermutation(ref_pts_, pQuery, &perm);\n    }\n\n    for (size_t i = 0; i < dstDim_; ++i) {\n      pDstVect[i] = static_cast<float>(perm[i]);\n    }\n\n  }\n\n  friend class Projection<dist_t>;\n\nprivate:\n  ProjectionPermutation(const Space<dist_t>& space,\n                         const ObjectVector& data,\n                         size_t nDstDim) : space_(space), data_(data),\n                                           dstDim_(nDstDim) {\n    GetPermutationPivot(data_, space_, nDstDim, &ref_pts_);\n  }\n  const Space<dist_t>&        space_;\n  const ObjectVector&         data_;\n  ObjectVector                ref_pts_;\n  size_t dstDim_;\n};\n\ntemplate <typename dist_t>\nclass ProjectionPermutationTrunc : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    Permutation perm;\n\n    if (NULL == pQuery) {\n      GetPermutation(ref_pts_, space_, pObj, &perm);\n    } else {\n      GetPermutation(ref_pts_, pQuery, &perm);\n    }\n\n    for (size_t i = 0; i < dstDim_; ++i) {\n      pDstVect[i] = perm[i] <= trunc_threshold_ ? static_cast<float>(perm[i]) : 0;\n    }\n\n  }\n\n  friend class Projection<dist_t>;\n\nprivate:\n  ProjectionPermutationTrunc(const Space<dist_t>& space,\n                             const ObjectVector& data,\n                             size_t nDstDim,\n                             unsigned trunc_threshold) : space_(space), data_(data),\n                                           dstDim_(nDstDim), \n                                           trunc_threshold_(trunc_threshold) {\n    GetPermutationPivot(data_, space_, nDstDim, &ref_pts_);\n  }\n  const Space<dist_t>&        space_;\n  const ObjectVector&         data_;\n  ObjectVector                ref_pts_;\n  size_t                      dstDim_;\n  unsigned                    trunc_threshold_;\n};\n\n// Binarized permutations\ntemplate <typename dist_t>\nclass ProjectionPermutationBin : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    Permutation perm;\n\n    if (NULL == pQuery) {\n      GetPermutation(ref_pts_, space_, pObj, &perm);\n    } else {\n      GetPermutation(ref_pts_, pQuery, &perm);\n    }\n\n    for (size_t i = 0; i < dstDim_; ++i) {\n      // See also the function binarize\n      pDstVect[i] = static_cast<float>(perm[i] >= binThreshold_ ? 1:0);\n    }\n\n  }\n\n  friend class Projection<dist_t>;\n\nprivate:\n  ProjectionPermutationBin(const Space<dist_t>& space,\n                         const ObjectVector& data,\n                         size_t nDstDim,\n                         unsigned binThreshold)\n                                          : space_(space), data_(data),\n                                           dstDim_(nDstDim),\n                                           binThreshold_(binThreshold) {\n    GetPermutationPivot(data_, space_, nDstDim, &ref_pts_);\n  }\n  const Space<dist_t>&        space_;\n  const ObjectVector&         data_;\n  ObjectVector                ref_pts_;\n  size_t dstDim_;\n  unsigned binThreshold_;\n};\n\n/*\n * FastMap, see.\n *\n * Christos Faloutsos & King-Ip (David) Lin.\n * FastMap: A Fast Algorithm for Indexing, Data-Mining and\n * Visualization of Traditional and Multimedia Datasets,\n *\n */\ntemplate <typename dist_t>\nclass ProjectionFastMap : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n\n\n    for (size_t i = 0; i < dstDim_; ++i) {\n      dist_t distAI = Projection<dist_t>::DistanceObjLeft(space_, pQuery,\n                                                          ref_pts_a_[i], pObj);\n      dist_t distBI = Projection<dist_t>::DistanceObjLeft(space_, pQuery,\n                                                          ref_pts_b_[i], pObj);\n      dist_t distAB = dist_ab_[i];\n      pDstVect[i] = static_cast<float>(\n                                  (\n                                  (distAI*distAI) - (distBI*distBI) + (distAB*distAB)\n                                  )/(distAB * dist_t(2))\n                                  );\n    }\n\n  }\n\n  friend class Projection<dist_t>;\n\nprivate:\n  ProjectionFastMap(const Space<dist_t>& space,\n                    const ObjectVector& data,\n                    size_t nDstDim) : space_(space), data_(data),\n                                      dstDim_(nDstDim) {\n    ref_pts_a_.resize(nDstDim);\n    ref_pts_b_.resize(nDstDim);\n    dist_ab_.resize(nDstDim);\n\n    dist_t eps = numeric_limits<dist_t>::epsilon() * 2; /* two is a bit ad-hoc */\n\n    for (size_t i = 0; i < nDstDim; ++i) {\n      std::unordered_set<int> pivot_idx;\n\n      for (size_t rep = 0; ; ++rep) {\n        if (rep > MAX_RAND_ITER_BEFORE_GIVE_UP) {\n          throw runtime_error(\"Cannot find the next pair of pivot, perhaps, the data set is too small.\");\n        }\n        int pa = RandomInt() % data.size(),\n            pb = RandomInt() % data.size();\n        dist_ab_[i] = space_.IndexTimeDistance(data[pa], data[pb]);\n        if (pivot_idx.count(pa) !=0 || pivot_idx.count(pb) !=0 ||\n            fabs((double)dist_ab_[i]) < eps) continue;\n        pivot_idx.insert(pa);\n        pivot_idx.insert(pb);\n        ref_pts_a_[i] = data_[pa];\n        ref_pts_b_[i] = data_[pb];\n        break;\n      }\n    }\n  }\n  const Space<dist_t>&        space_;\n  const ObjectVector&         data_;\n  ObjectVector                ref_pts_a_;\n  ObjectVector                ref_pts_b_;\n  vector<dist_t>              dist_ab_;\n  size_t dstDim_;\n};\n\ntemplate <class dist_t>\nclass ProjectionNone : public Projection<dist_t> {\npublic:\n  virtual void compProj(const Query<dist_t>* pQuery,\n                        const Object* pObj,\n                        float* pDstVect) const {\n    if (NULL == pObj) pObj = pQuery->QueryObject();\n    /*\n     * For dense vector spaces, we ignore the specified \"projection\"\n     * dimensionality and use an actual number of vector elements. \n     * For sparse vector spaces, we obtain an intermediate dense vector \n     * with projDim elements.\n     */\n    size_t nDim = space_.GetElemQty(pObj);\n    if (!nDim) nDim = projDim_;\n    vector<dist_t> intermBuffer(nDim);\n    Projection<dist_t>::fillIntermBuffer(space_,\n                                         pObj,\n                                         nDim,\n                                         intermBuffer);\n\n    CHECK(nDim == dstDim_);\n\n    for (size_t i = 0; i < dstDim_; ++i)\n      pDstVect[i] = static_cast<float>(intermBuffer[i]);\n  }\n\n  friend class Projection<dist_t>;\nprivate:\n  ProjectionNone(const Space<dist_t>& space, const ObjectVector& data,\n                 size_t nProjDim, size_t nDstDim) :\n    space_(space), projDim_(nProjDim), dstDim_(nDstDim) {\n    if (data.empty()) {\n      stringstream err;\n      err << \"Cannot initialize projection type '\" <<\n             PROJ_TYPE_RAND << \"'\" <<\n             \" without a single data point\";\n      throw runtime_error(err.str());\n    }\n    size_t nDim = space.GetElemQty(data[0]);\n    if (nDim == 0) {\n      if (!projDim_) {\n        throw runtime_error(\"Specify a non-zero value for the intermediate dimensionaity.\");\n      }\n      nDim = projDim_;\n    }\n    if (nDim != dstDim_) {\n      throw runtime_error(\"The dimensionality of the projected space should be equal to either source or to the intermediate dimensionality!\");\n    }\n  }\n\n  const Space<dist_t>& space_;\n  size_t projDim_;\n  size_t dstDim_;\n\n};\n\n\n/*\n * Projection factory function.\n */\n\ntemplate <class dist_t>\nProjection<dist_t>*\nProjection<dist_t>::createProjection(const Space<dist_t>& space,\n                                     const ObjectVector& data,\n                                     string projType,\n                                     size_t nProjDim,\n                                     size_t nDstDim,\n                                     unsigned binThreshold) {\n  ToLower(projType);\n\n  if (PROJ_TYPE_RAND == projType) {\n    return new ProjectionRand<dist_t>(space, data, nProjDim, nDstDim, true);\n  } else if (PROJ_TYPE_RAND_REF_POINT == projType) {\n    return new ProjectionRandRefPoint<dist_t>(space, data, nDstDim);\n  } else if (PROJ_TYPE_PERM == projType) {\n    return new ProjectionPermutation<dist_t>(space, data, nDstDim);\n  } else if (PROJ_TYPE_PERM_TRUNC == projType) {\n    return new ProjectionPermutationTrunc<dist_t>(space, data, nDstDim, binThreshold);\n  } else if (PROJ_TYPE_PERM_BIN == projType) {\n    return new ProjectionPermutationBin<dist_t>(space, data, nDstDim, binThreshold);\n  } else if (PROJ_TYPE_VECTOR_DENSE == projType) {\n    return new ProjectionVectDense<dist_t>(space, nDstDim);\n  } else if (PROJ_TYPE_FAST_MAP == projType) {\n    return new ProjectionFastMap<dist_t>(space, data, nDstDim);\n  } else if (PROJ_TYPE_NONE == projType) {\n    return new ProjectionNone<dist_t>(space, data, nProjDim, nDstDim);\n  }\n\n  throw runtime_error(\"Unknown projection type '\" + projType + \"'\");\n\n  return NULL;\n}\n\n\ntemplate class Projection<float>;\ntemplate class Projection<double>;\ntemplate class Projection<int>;\n\ntemplate class ProjectionRand<float>;\ntemplate class ProjectionRand<double>;\ntemplate class ProjectionRand<int>;\n\ntemplate class ProjectionRandRefPoint<float>;\ntemplate class ProjectionRandRefPoint<double>;\ntemplate class ProjectionRandRefPoint<int>;\n\ntemplate class ProjectionPermutation<float>;\ntemplate class ProjectionPermutation<double>;\ntemplate class ProjectionPermutation<int>;\n\ntemplate class ProjectionFastMap<float>;\ntemplate class ProjectionFastMap<double>;\ntemplate class ProjectionFastMap<int>;\n\ntemplate class ProjectionNone<float>;\ntemplate class ProjectionNone<double>;\ntemplate class ProjectionNone<int>;\n\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/query.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <stdio.h>\n#include <algorithm>\n\n#include \"space.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"query.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nQuery<dist_t>::Query(const Space<dist_t>& space, const Object* query_object)\n    : space_(space),\n      query_object_(query_object),\n      distance_computations_(0) {\n}\n\ntemplate <typename dist_t>\nQuery<dist_t>::~Query() {\n}\n\ntemplate <typename dist_t>\nconst Object* Query<dist_t>::QueryObject() const {\n  return query_object_;\n}\n\ntemplate <typename dist_t>\nuint64_t Query<dist_t>::DistanceComputations() const {\n  return distance_computations_;\n}\n\ntemplate <typename dist_t>\nvoid Query<dist_t>::ResetStats() {\n  distance_computations_ = 0;\n}\n\ntemplate <typename dist_t>\ndist_t Query<dist_t>::Distance(\n    const Object* object1,\n    const Object* object2) const {\n  ++distance_computations_;\n  return space_.HiddenDistance(object1, object2);\n}\n\ntemplate <typename dist_t>\ndist_t Query<dist_t>::DistanceObjLeft(const Object* object) const {\n  return Distance(object, query_object_);\n}\n\ntemplate <typename dist_t>\ndist_t Query<dist_t>::DistanceObjRight(const Object* object) const {\n  return Distance(query_object_, object);\n}\n\ntemplate class Query<float>;\ntemplate class Query<double>;\ntemplate class Query<int>;\ntemplate class Query<short int>;\n\n}    // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/randproj_util.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <random>\n#include <vector>\n#include <sstream>\n#include <stdexcept>\n\n#include \"randproj_util.h\"\n#include \"distcomp.h\"\n#include \"logging.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <class dist_t> void initRandProj(size_t nSrcDim, size_t nDstDim,\n                                         bool bDoOrth,\n                                         vector<vector<dist_t>>& projMatr) {\n  // Static is thread-safe in C++-11\n  static  std::random_device          rd;\n  static  std::mt19937                engine(rd());\n  static  std::normal_distribution<>  normGen(0.0f, 1.0f);\n\n  // 1. Create normally distributed vectors\n  projMatr.resize(nDstDim);\n  for (size_t i = 0; i < nDstDim; ++i) {\n    projMatr[i].resize(nSrcDim);\n    for (size_t j = 0; j < nSrcDim; ++j)\n      projMatr[i][j] = normGen(engine);\n  }\n  /* \n   * 2. If bDoOrth == true, normalize the basis using the numerically stable\n        variant of the Gram–Schmidt process (see Wikipedia for details \n        http://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process#Algorithm).\n   *    Otherwise, just divide each vector by its norm. \n   */\n  size_t maxNormDim = min(nDstDim, nSrcDim);\n\n  for (size_t i = 0; i < nDstDim; ++i) {\n    if (bDoOrth) {\n      // Normalize the outcome (in particular, to ensure the above mentioned invariant is true)\n      dist_t normCoeff = sqrt(ScalarProductSIMD(&projMatr[i][0], &projMatr[i][0], nSrcDim));\n      for (size_t n = 0; n < nSrcDim; ++n) projMatr[i][n] /= normCoeff;\n\n      for (size_t k = i + 1; k < maxNormDim; ++k) {\n        dist_t coeff = ScalarProductSIMD(&projMatr[i][0], &projMatr[k][0], nSrcDim);\n      /* \n       * Invariant the all previously processed vectors have been normalized.\n       * Therefore, we we subtract the projection to a previous vector u,\n       * we don't divide elements by the norm of the vector u\n       */\n        for (size_t n = 0; n < nSrcDim; ++n) projMatr[k][n] -= coeff * projMatr[i][n];\n      }\n    }\n  }\n}\n\ntemplate <> void  initRandProj<int>(size_t nSrcDim, size_t nDstDim,\n                                bool bDoOrth,\n                                vector<vector<int>>& projMatr) {\n  throw runtime_error(\"random projections are not supported for integer-valued distances!\");\n}\n\ntemplate void initRandProj<float>(size_t nSrcDim, size_t nDstDim,\n                                  bool bDoOrth,\n                                  vector<vector<float>>& projMatr);\ntemplate void initRandProj<double>(size_t nSrcDim, size_t nDstDim,\n                                  bool bDoOrth,\n                                  vector<vector<double>>& projMatr);\n\ntemplate <class dist_t> void compRandProj(const vector<vector<dist_t>>& projMatr, \n                                      const dist_t* pSrcVect, size_t nSrcDim,\n                                      dist_t* pDstVect, size_t nDstDim) {\n  if (projMatr.empty()) throw runtime_error(\"Bug: empty projection matrix\");\n  if (projMatr.size() != nDstDim) { \n    stringstream err;\n    err << \"Bug: the # of rows in the projection matrix (\" << projMatr.size() << \")\"\n               << \" isn't equal to the number of vector elements in the target space \"\n               << \"(\" << nDstDim << \")\";\n    throw runtime_error(err.str());\n  }\n\n  for (size_t i = 0; i < nDstDim; ++i) {\n    if (projMatr[i].size() != nSrcDim) {\n      stringstream err;\n      err << \"Bug: row index \" << i << \" the number of columns \"\n          << \"(\" << projMatr[i].size() << \")\"\n          << \" isn't equal to the number of vector elements in the source space \"\n          << \"(\" << nSrcDim << \")\";\n      throw runtime_error(err.str());\n    }\n    pDstVect[i] = ScalarProductSIMD(&projMatr[i][0], pSrcVect, nSrcDim);\n  }\n}\n\ntemplate <> void compRandProj<int>(const vector<vector<int>>& projMatr,\n                              const int* pSrcVect, size_t nSrcDim,\n                              int* pDstVect, size_t nDstQty) {\n  throw runtime_error(\"random projections are not supported for integer-valued distances!\");\n}\n\ntemplate void compRandProj<float>(const vector<vector<float>>& projMatr,\n                              const float* pSrcVect, size_t nSrcDim,\n                              float* pDstVect, size_t nDstQty);\ntemplate void compRandProj<double>(const vector<vector<double>>& projMatr,\n                              const double* pSrcVect, size_t nSrcDim,\n                              double* pDstVect, size_t nDstQty);\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/rangequery.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <iostream>\n#include <algorithm>\n#include <set>\n#include <iterator>\n\n#include \"space.h\"\n#include \"object.h\"\n#include \"utils.h\"\n#include \"rangequery.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nRangeQuery<dist_t>::RangeQuery(const Space<dist_t>& space,\n                               const Object* query_object,\n                               const dist_t radius)\n    : Query<dist_t>(space, query_object),\n      radius_(radius) {\n}\n\ntemplate <typename dist_t>\nconst ObjectVector* RangeQuery<dist_t>::Result() const {\n  return &result_;\n}\n\ntemplate <typename dist_t>\nstd::set<const Object*> RangeQuery<dist_t>::ResultSet() const {\n  std::set<const Object*> res;\n  for (auto it = result_.begin(); it != result_.end(); ++it) {\n    res.insert(*it);\n  }\n  return res;\n}\n\ntemplate <typename dist_t>\ndist_t RangeQuery<dist_t>::Radius() const {\n  return radius_;\n}\n\ntemplate <typename dist_t>\nunsigned RangeQuery<dist_t>::ResultSize() const {\n  return static_cast<unsigned>(result_.size());\n}\n\ntemplate <typename dist_t>\nvoid RangeQuery<dist_t>::Reset() {\n  this->ResetStats();\n  result_.clear();\n}\n\ntemplate <typename dist_t>\nbool RangeQuery<dist_t>::CheckAndAddToResult(const dist_t distance,\n                                             const Object* object) {\n  if (distance <= radius_) {\n    result_.push_back(object);\n    resultDists_.push_back(distance);\n    return true;\n  }\n  return false;\n}\n\ntemplate <typename dist_t>\nbool RangeQuery<dist_t>::CheckAndAddToResult(const Object* object) {\n  // Distance can be asymmetric, but query is on the left side here\n  return CheckAndAddToResult(this->DistanceObjLeft(object), object);\n}\n\ntemplate <typename dist_t>\nsize_t RangeQuery<dist_t>::CheckAndAddToResult(const ObjectVector& bucket) {\n  size_t res = 0;\n  for (size_t i = 0; i < bucket.size(); ++i) {\n    if (CheckAndAddToResult(bucket[i])) {\n      ++res;\n    }\n  }\n  return res;\n}\n\ntemplate <typename dist_t>\nbool RangeQuery<dist_t>::Equals(const RangeQuery<dist_t>* query) const {\n  std::set<const Object*> res1, res2;\n  copy(result_.begin(), result_.end(), inserter(res1, res1.end()));\n  copy(query->result_.begin(), query->result_.end(), inserter(res2, res2.end()));\n  return res1 == res2;\n}\n\ntemplate <typename dist_t>\nvoid RangeQuery<dist_t>::Print() const {\n  std::cerr << \"queryID = \" << this->QueryObject()->id()\n         << \"size = \" << ResultSize() << std::endl;\n  for (auto iter = result_.begin(); iter != result_.end(); ++iter) {\n    const Object* object = *iter;\n    std::cerr << object->id() << \"(\"\n        << this->space_.HiddenDistance(this->QueryObject(), object) << \") \";\n  }\n  std::cerr << std::endl;\n}\n\ntemplate class RangeQuery<float>;\ntemplate class RangeQuery<double>;\ntemplate class RangeQuery<int>;\ntemplate class RangeQuery<short int>;\n\n}    // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/searchoracle.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include \"searchoracle.h\"\n#include \"method/vptree_utils.h\"\n#include \"space.h\"\n#include \"method/vptree.h\"\n#include \"tune.h\"\n\n#include <vector>\n#include <iostream>\n#include <queue>\n#include <cmath>\n\nnamespace similarity {\n\nconst size_t TUNE_QTY_DEFAULT = 20000;\nconst size_t TUNE_QUERY_QTY   = 200;\nconst size_t TUNE_SPLIT_QTY   = 5;\nconst size_t TOTAL_QUERY_QTY  = TUNE_QUERY_QTY * TUNE_SPLIT_QTY;\nconst size_t MIN_TUNE_QTY     = TOTAL_QUERY_QTY; \n\nusing std::vector;\nusing std::round;\nusing std::endl;\nusing std::cout;\nusing std::pow;\nusing std::log;\n\ntemplate <typename dist_t>\nvoid PolynomialPruner<dist_t>::SetQueryTimeParams(AnyParamManager& pmgr) {\n  /* \n   * If no tunning was carried out previously, \n   * default values are for the classic triangle inequality.\n   * However, after tunning is done, we will use default values\n   * obtained after tunning.\n   */\n  pmgr.GetParamOptional(ALPHA_LEFT_PARAM,   alpha_left_,    alpha_left_default_);\n  pmgr.GetParamOptional(ALPHA_RIGHT_PARAM,  alpha_right_,   alpha_right_default_);\n  pmgr.GetParamOptional(EXP_LEFT_PARAM,     exp_left_,      exp_left_default_);\n  pmgr.GetParamOptional(EXP_RIGHT_PARAM,    exp_right_,     exp_right_default_);\n\n  LOG(LIB_INFO) << \"Set polynomial pruner query-time parameters:\";\n  LOG(LIB_INFO) << Dump();\n}\n\ntemplate <typename dist_t>\nvoid PolynomialPruner<dist_t>::SetIndexTimeParams(AnyParamManager& pmgr) {\n  if (pmgr.hasParam(TUNE_R_PARAM) && pmgr.hasParam(TUNE_K_PARAM)) {\n    stringstream err;\n\n    err << \"Specify only one parameter: \" << TUNE_R_PARAM << \" or \" << TUNE_K_PARAM;\n    LOG(LIB_INFO) << err.str();\n    throw runtime_error(err.str());\n  }\n\n  /*\n   * The tuning part is hardcoded to make only with the VP-tree.\n   */\n  if (pmgr.hasParam(TUNE_R_PARAM) || pmgr.hasParam(TUNE_K_PARAM)) {\n  // Obtain optimal parameters automatically\n    size_t fullBucketSize;\n    pmgr.GetParamRequired(\"bucketSize\", fullBucketSize);\n\n    if (data_.size() < TOTAL_QUERY_QTY) {\n      stringstream err;\n      err << \"The data size is too small: it should have \" << (TOTAL_QUERY_QTY - data_.size()) << \" MORE entries!\";\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n\n    size_t tuneQty;\n    pmgr.GetParamOptional(TUNE_QTY_PARAM, tuneQty, TUNE_QTY_DEFAULT);\n\n    if (tuneQty < MIN_TUNE_QTY) {\n      stringstream err;\n      err << \"The value of parameter \" <<  TUNE_QTY_PARAM << \" should be >= \" << MIN_TUNE_QTY;\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n\n    float desiredRecallRequested = 0;\n    pmgr.GetParamRequired(DESIRED_RECALL_PARAM, desiredRecallRequested);\n\n    float  desiredRecallAdjusted = desiredRecallRequested;\n    size_t bucketSizeAdjusted = fullBucketSize;\n\n    if (tuneQty >= data_.size()) {\n      tuneQty = data_.size(); // Perfect, nothing to do at this point\n    } else {\n      float treeHeightQty = float(data_.size())/ fullBucketSize; \n\n      if (treeHeightQty > tuneQty) {\n        bucketSizeAdjusted = 1;\n        // Because treeHeightQty > tuneQty > 0, logs are well defined.\n        // Furthermore, the ratio of logs should be < 1, so we increase the desired recall\n        desiredRecallAdjusted = pow(desiredRecallRequested, log(tuneQty)/log(treeHeightQty));\n        LOG(LIB_INFO) << \"Adjusting recall value from \" << desiredRecallRequested << \" to \" << desiredRecallAdjusted;\n      } else {\n        // in this conditional branch we expect treeHeightQty to be <= tuneQty so the adjusted bucket size should be > 0\n        bucketSizeAdjusted = tuneQty / treeHeightQty;\n      }\n    }\n\n    LOG(LIB_INFO) << \"Adjusted values for tuneQty: \" << tuneQty << \n                     \" bucket size: \" << bucketSizeAdjusted << \n                     \" recall: \" << desiredRecallAdjusted;\n\n    vector<string>                paramDesc;\n    stringstream                  methParamDesc;\n    string                        methName;\n\n    methParamDesc << \"bucketSize=\" << bucketSizeAdjusted;\n\n    ParseArg(methParamDesc.str(), paramDesc);\n\n    size_t minExp = 0, maxExp = 0;\n\n    pmgr.GetParamOptional(MIN_EXP_PARAM, minExp, MIN_EXP_DEFAULT);\n    pmgr.GetParamOptional(MAX_EXP_PARAM, maxExp, MAX_EXP_DEFAULT);\n\n    if (!maxExp) throw runtime_error(string(MIN_EXP_PARAM) + \" can't be zero!\");\n    if (maxExp < minExp) throw runtime_error(string(MAX_EXP_PARAM) + \" can't be < \" + string(MIN_EXP_PARAM));\n\n\n    string metricName;\n\n    pmgr.GetParamOptional(OPTIM_METRIC_PARAMETER, metricName, OPTIM_METRIC_DEFAULT);\n\n    OptimMetric metric = getOptimMetric(metricName);\n\n    if (IMPR_INVALID == metric) {\n      stringstream err;\n  \n      err << \"Invalid metric name: \" << metricName;\n      LOG(LIB_INFO) << err.str();\n      throw runtime_error(err.str());\n    }\n\n\n    unique_ptr<ExperimentConfig<dist_t>>  config;\n\n    dist_t eps = 0;\n\n    ObjectVector emptyQueries;\n\n    vector<unsigned>                  knn;\n    vector<dist_t>                    range;\n\n    if (pmgr.hasParam(TUNE_R_PARAM)) {\n      dist_t r;\n      pmgr.GetParamRequired(TUNE_R_PARAM, r);\n      range.push_back(r);\n      \n      config.reset(new ExperimentConfig<dist_t>(space_, \n                                      data_, emptyQueries, \n                                      TUNE_SPLIT_QTY,\n                                      tuneQty, TUNE_QUERY_QTY,\n                                      knn, eps, range));\n  \n    }\n\n    if (pmgr.hasParam(TUNE_K_PARAM)) {\n      size_t k;\n      pmgr.GetParamRequired(TUNE_K_PARAM, k);\n      knn.push_back(k);\n      \n      config.reset(new ExperimentConfig<dist_t>(space_, \n                                      data_, emptyQueries, \n                                      TUNE_SPLIT_QTY,\n                                      tuneQty, TUNE_QUERY_QTY,\n                                      knn, eps, range));\n  \n    }\n\n    CHECK(config.get());\n\n    config->ReadDataset();\n\n    size_t maxCacheGSQty;\n    pmgr.GetParamOptional(MAX_CACHE_GS_QTY_PARAM, maxCacheGSQty, MAX_CACHE_GS_QTY_DEFAULT);\n    size_t maxIter = 0;\n    pmgr.GetParamOptional(MAX_ITER_PARAM, maxIter, MAX_ITER_DEFAULT);\n    size_t maxRecDepth = 0;\n    pmgr.GetParamOptional(MAX_REC_DEPTH_PARAM, maxRecDepth, MAX_REC_DEPTH_DEFAULT);\n    size_t stepN = 0;\n    pmgr.GetParamOptional(STEP_N_PARAM, stepN, STEP_N_DEFAULT);\n    size_t addRestartQty = 0;\n    pmgr.GetParamOptional(ADD_RESTART_QTY_PARAM, addRestartQty, ADD_RESTART_QTY_DEFAULT);\n    float fullFactor = 0;\n    pmgr.GetParamOptional(FULL_FACTOR_PARAM, fullFactor, (float)FULL_FACTOR_DEFAULT);\n\n    float recall = 0, time_best = 0, impr_best = -1, alpha_left = 0, alpha_right = 0; \n    unsigned exp_left = 0, exp_right = 0;\n\n    static  std::random_device          rd;\n    static  std::mt19937                engine(rd());\n    static  std::normal_distribution<>  normGen(0.0f, log(fullFactor));\n\n\n    for (unsigned ce = minExp; ce <= maxExp; ++ce)\n    for (unsigned k = 0; k < 1 + addRestartQty; ++k) {\n      unsigned expLeft = ce, expRight = ce;\n      float recall_loc, time_best_loc, impr_best_loc, \n            alpha_left_loc = 1.0, alpha_right_loc = 1.0; // These are initial values\n\n      if (k > 0) {\n        // Let's do some random normal fun\n        alpha_left_loc = exp(normGen(engine));\n        alpha_right_loc = exp(normGen(engine));\n        LOG(LIB_INFO) << \" RANDOM STARTING POINTS: \" << alpha_left_loc << \" \" << alpha_right_loc;\n      } \n\n      string SpaceType; // VP-tree doesn't use the space type during creation.\n\n      GetOptimalAlphas(printProgress_,\n                     *config, \n                     metric, desiredRecallAdjusted,\n                     SpaceType, \n                     METH_VPTREE, \n                     AnyParams(paramDesc), getEmptyParams(),\n                     recall_loc, \n                     time_best_loc, impr_best_loc,\n                     alpha_left_loc, expLeft, alpha_right_loc, expRight,\n                     maxIter, maxRecDepth, stepN, fullFactor, maxCacheGSQty);\n\n      if (impr_best_loc > impr_best) {\n        recall = recall_loc; \n        time_best = time_best_loc; \n        impr_best = impr_best_loc;\n        alpha_left = alpha_left_loc; \n        alpha_right = alpha_right_loc;\n        exp_left = expLeft;\n        exp_right = expRight;\n      }\n    }\n\n    /*\n     * Note that the tunning procedure overrides the default values,\n     * to prevent the procedure SetQueryTimeParams from overriding them.\n     * If one calls SetQueryTimeParams with the set of empty parameters,\n     * all parameters are reset to default values. So, we want to this default\n     * values to be equal to the values obtained during tuning.\n     */\n    alpha_left_default_ = alpha_left_ = alpha_left;\n    alpha_right_default_ = alpha_right_ = alpha_right;\n    exp_left_default_ = exp_left_ = exp_left;\n    exp_right_default_ = exp_right_ = exp_right;\n\n    stringstream  bestParams;\n    bestParams << ALPHA_LEFT_PARAM << \"=\" << alpha_left_ << \",\" << ALPHA_RIGHT_PARAM << \"=\" << alpha_right_ << \",\"\n                 << EXP_LEFT_PARAM   << \"=\" << exp_left_   << \",\" << EXP_RIGHT_PARAM   << \"=\" << exp_right_;\n\n    if (printProgress_) {\n      cout << \"===============================================================\" << endl;\n      cout << \"|                      OPTIMIZATION RESULTS                   |\" << endl;\n      cout << \"===============================================================\" << endl;\n      if (!knn.empty()) {\n        cout << \"K: \"  << knn[0] << endl;\n      } else {\n        cout << \"Range: \"  << range[0] << endl;\n      }\n      cout << \"Recall: \" << recall << endl;\n      cout << \"Best time: \" << time_best << endl;\n      cout << \"Best impr. \" << impr_best << \" (\" << getOptimMetricName(metric) << \")\" << endl; \n      cout << \"alpha_left: \" << alpha_left << endl;\n      cout << \"exp_left: \" << exp_left << endl;\n      cout << \"alpha_right: \" << alpha_right << endl;\n      cout << \"exp_right: \" << exp_right << endl;\n      cout << \"optimal parameters: \" << bestParams.str() << endl;\n      cout << \"===============================================================\" << endl;\n    }\n\n    if (recall < desiredRecallAdjusted) {\n      LOG(LIB_INFO) << \"Failed to get the desired recall!\";\n      throw runtime_error(\"Failed to get the desired recall!\");\n    }\n \n  }\n}\n\ntemplate class PolynomialPruner<int>;\ntemplate class PolynomialPruner<float>;\ntemplate class PolynomialPruner<double>;\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_bit_hamming.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n#include <bitset>\n\n#include \"space/space_bit_hamming.h\"\n#include \"permutation_utils.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\nint SpaceBitHamming::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const uint32_t* x = reinterpret_cast<const uint32_t*>(obj1->data());\n  const uint32_t* y = reinterpret_cast<const uint32_t*>(obj2->data());\n  const size_t length = obj1->datalength() / sizeof(uint32_t)\n                        - 1; // the last integer is an original number of elements \n\n  return BitHamming(x, y, length);\n}\n\nvoid SpaceBitHamming::ReadBitMaskVect(std::string line, LabelType& label, std::vector<uint32_t>& binVect) const\n{\n  binVect.clear();\n\n  label = Object::extractLabel(line);\n\n  std::stringstream str(line);\n\n  str.exceptions(std::ios::badbit);\n\n  unsigned val;\n\n  ReplaceSomePunct(line); \n\n  vector<PivotIdType> v;\n\n  try {\n    while (str >> val) {\n      if (val != 0 && val != 1) {\n        throw runtime_error(\"Only zeros and ones are allowed\");\n      }\n      v.push_back(val);\n    }\n  } catch (const std::exception &e) {\n    LOG(LIB_ERROR) << \"Exception: \" << e.what() << std::endl;\n    PREPARE_RUNTIME_ERR(err) << \"Failed to parse the line: '\" << line << \"'\";\n    LOG(LIB_ERROR) << err.stream().str() << std::endl;\n    THROW_RUNTIME_ERR(err);\n  }\n  Binarize(v, 1, binVect);      // Create the binary vector\n  binVect.push_back(v.size());   // Put the number of elements in the end\n}\n\nObject* SpaceBitHamming::CreateObjFromBitMaskVect(IdType id, LabelType label, const std::vector<uint32_t>& bitMaskVect) const {\n  return new Object(id, label, bitMaskVect.size() * sizeof(uint32_t), &bitMaskVect[0]);\n};\n\n/** Standard functions to read/write/create objects */ \n\nunique_ptr<DataFileInputState> SpaceBitHamming::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateVec(inpFileName));\n}\n\nunique_ptr<DataFileOutputState> SpaceBitHamming::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                     const string& outFileName) const {\n  return unique_ptr<DataFileOutputState>(new DataFileOutputState(outFileName));\n}\n\nunique_ptr<Object> \nSpaceBitHamming::CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                            DataFileInputState* pInpStateBase) const {\n  DataFileInputStateVec*  pInpState = NULL;\n  if (pInpStateBase != NULL) {\n    pInpState = dynamic_cast<DataFileInputStateVec*>(pInpStateBase);\n    if (NULL == pInpState) {\n      PREPARE_RUNTIME_ERR(err) << \"Bug: unexpected pointer type\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n  vector<uint32_t>  vec;\n  ReadBitMaskVect(s, label, vec);\n  if (pInpState != NULL) {\n    size_t elemQty = vec[vec.size() - 1];\n    if (pInpState->dim_ == 0) pInpState->dim_ = elemQty;\n    else if (elemQty != pInpState->dim_) {\n      PREPARE_RUNTIME_ERR(err) << \"The # of bit-vector elements (\" << elemQty << \")\" <<\n                      \" doesn't match the # of elements in previous lines. (\" << pInpState->dim_ << \" )\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n  return unique_ptr<Object>(CreateObjFromVectInternal(id, label, vec));\n}\n\nObject* SpaceBitHamming::CreateObjFromVectInternal(IdType id, LabelType label, const std::vector<uint32_t>& InpVect) const {\n  return new Object(id, label, InpVect.size() * sizeof(uint32_t), &InpVect[0]);\n};\n\nbool SpaceBitHamming::ApproxEqual(const Object& obj1, const Object& obj2) const {\n  const uint32_t* p1 = reinterpret_cast<const uint32_t*>(obj1.data());\n  const uint32_t* p2 = reinterpret_cast<const uint32_t*>(obj2.data());\n  const size_t len1 = obj1.datalength() / sizeof(uint32_t)\n                        - 1; // the last integer is an original number of elements \n  const size_t len2 = obj2.datalength() / sizeof(uint32_t)\n                        - 1; // the last integer is an original number of elements \n  if (len1 != len2) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: comparing vectors of different lengths: \" << len1 << \" and \" << len2;\n    THROW_RUNTIME_ERR(err);\n  }\n  for (size_t i = 0; i < len1; ++i) {\n    uint32_t v1 =  ((p1[i/32] >> (i & 31)) & 1);\n    uint32_t v2 =  ((p2[i/32] >> (i & 31)) & 1);\n    if (v1 != v2) return false;\n  }\n\n  return true;\n}\n\n\nstring SpaceBitHamming::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  stringstream out;\n  const uint32_t* p = reinterpret_cast<const uint32_t*>(pObj->data());\n  const size_t length = pObj->datalength() / sizeof(uint32_t)\n                        - 1; // the last integer is an original number of elements \n  const size_t elemQty = p[length]; // last elem\n\n  for (size_t i = 0; i < elemQty; ++i) {\n    if (i) out << \" \";\n    out << ((p[i/32] >> (i & 31)) & 1);\n  }\n\n  return out.str();\n}\n\nbool SpaceBitHamming::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n  if (!pInpState->inp_file_) return false;\n  if (!getline(pInpState->inp_file_, strObj)) return false;\n  pInpState->line_num_++;\n  return true;\n}\n\n\n/** End of standard functions to read/write/create objects */ \n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_bregman.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_bregman.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nObject* BregmanDiv<dist_t>::Mean(const ObjectVector& data) const {\n  CHECK(!data.empty());\n\n  // the caller is responsible for releasing the pointer\n  Object* mean = Object::CreateNewEmptyObject(data[0]->datalength());\n\n  const size_t length = GetElemQty(data[0]);\n  dist_t* x = reinterpret_cast<dist_t*>(mean->data());\n\n  // init\n  for (size_t d = 0; d < length; ++d) {\n    x[d] = 0.0;\n  }\n\n  // sum\n  for (auto it = data.begin(); it != data.end(); ++it) {\n    const dist_t* y = reinterpret_cast<const dist_t*>((*it)->data());\n    for (size_t d = 0; d < length; ++d) {\n      x[d] += y[d];\n    }\n  }\n\n  // average\n  for (size_t d = 0; d < length; ++d) {\n    x[d] /= static_cast<double>(data.size());\n  }\n\n  return mean;\n}\n\n//=============================================================\n\ntemplate <typename dist_t>\ndist_t KLDivAbstract<dist_t>::Function(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  dist_t result = 0.0;\n  for (size_t i = 0; i < length; ++i) {\n    result += x[i] * log(x[i]);\n  }\n  return result;\n}\n\ntemplate <typename dist_t>\nObject* KLDivAbstract<dist_t>::GradientFunction(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  // the caller is responsible for releasing the pointer\n  Object* result = Object::CreateNewEmptyObject(object->datalength());\n  dist_t* y = reinterpret_cast<dist_t*>(result->data());\n  for (size_t i = 0; i < length; ++i) {\n    y[i] = log(x[i]) + 1.0;\n  }\n  return result;\n}\n\ntemplate <typename dist_t>\nObject* KLDivAbstract<dist_t>::InverseGradientFunction(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  // the caller is responsible for releasing the pointer\n  Object* result = Object::CreateNewEmptyObject(object->datalength());\n  dist_t* y = reinterpret_cast<dist_t*>(result->data());\n  for (size_t i = 0; i < length; ++i) {\n    y[i] = exp(x[i] - 1.0);\n  }\n  return result;\n}\n\n//=============================================================\n\ntemplate <typename dist_t>\nObject* KLDivGenFast<dist_t>::Mean(const ObjectVector& data) const {\n  CHECK(!data.empty());\n\n  // the caller is responsible for releasing the pointer\n  Object* mean = BregmanDiv<dist_t>::Mean(data);\n\n  const size_t length = GetElemQty(data[0]);\n  dist_t* x = reinterpret_cast<dist_t*>(mean->data());\n\n  PrecompLogarithms(x, length);\n\n  return mean;\n}\n\ntemplate <typename dist_t>\nObject* KLDivGenFast<dist_t>::InverseGradientFunction(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n\n  Object* result = KLDivAbstract<dist_t>::InverseGradientFunction(object);\n  dist_t* y = reinterpret_cast<dist_t*>(result->data());\n  const size_t length = GetElemQty(object);\n  PrecompLogarithms(y, length);\n  return result;\n}\n\ntemplate <typename dist_t>\ndist_t KLDivGenFast<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return KLGeneralPrecompSIMD(x, y, length);\n}\n\ntemplate <typename dist_t>\nObject* KLDivGenFast<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\n\n//=============================================================\n\ntemplate <typename dist_t>\nObject* ItakuraSaitoFast<dist_t>::Mean(const ObjectVector& data) const {\n  CHECK(!data.empty());\n\n  // the caller is responsible for releasing the pointer\n  Object* mean = BregmanDiv<dist_t>::Mean(data);\n\n  const size_t length = GetElemQty(data[0]);\n  dist_t* x = reinterpret_cast<dist_t*>(mean->data());\n\n  PrecompLogarithms(x, length);\n\n  return mean;\n}\n\ntemplate <typename dist_t>\ndist_t ItakuraSaitoFast<dist_t>::Function(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  dist_t result = 0.0;\n  for (size_t i = 0; i < length; ++i) {\n    result += - log(x[i]);\n  }\n  return result;\n}\n\ntemplate <typename dist_t>\nObject* ItakuraSaitoFast<dist_t>::GradientFunction(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  // the caller is responsible for releasing the pointer\n  Object* result = Object::CreateNewEmptyObject(object->datalength());\n  dist_t* y = reinterpret_cast<dist_t*>(result->data());\n  for (size_t i = 0; i < length; ++i) {\n    y[i] = -1/x[i];\n  }\n  return result;\n}\n\ntemplate <typename dist_t>\nObject* ItakuraSaitoFast<dist_t>::InverseGradientFunction(const Object* object) const {\n  DCHECK(object->datalength() > 0);\n  const dist_t* x = reinterpret_cast<const dist_t*>(object->data());\n  const size_t length = GetElemQty(object);\n\n  // the caller is responsible for releasing the pointer\n  Object* result = Object::CreateNewEmptyObject(object->datalength());\n  dist_t* y = reinterpret_cast<dist_t*>(result->data());\n  for (size_t i = 0; i < length; ++i) {\n    y[i] = -1/x[i];\n  }\n  return result;\n}\n\ntemplate <typename dist_t>\ndist_t ItakuraSaitoFast<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return ItakuraSaitoPrecompSIMD(x, y, length);\n}\n\ntemplate <typename dist_t>\nObject* ItakuraSaitoFast<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\n//=============================================================\n\ntemplate <typename dist_t>\ndist_t KLDivGenSlow<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return KLGeneralStandard(x, y, length);\n}\n\ntemplate <typename dist_t>\nObject* KLDivGenSlow<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  return new Object(id, label, InpVect.size() * sizeof(dist_t), &InpVect[0]);\n}\n\ntemplate <typename dist_t>\ndist_t KLDivGenFastRightQuery<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return KLGeneralPrecompSIMD(y, x, length);\n}\n\ntemplate <typename dist_t>\nObject* KLDivGenFastRightQuery<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\n//=============================================================\n\ntemplate <typename dist_t>\ndist_t KLDivFast<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return KLPrecompSIMD(x, y, length);\n}\n\ntemplate <typename dist_t>\nObject* KLDivFast<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\n//=============================================================\n\ntemplate <typename dist_t>\ndist_t KLDivFastRightQuery<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  DCHECK(obj1->datalength() > 0);\n  DCHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n   \n  const size_t length = GetElemQty(obj1);\n\n  return KLPrecompSIMD(y, x, length);\n}\n\ntemplate <typename dist_t>\nObject* KLDivFastRightQuery<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\ntemplate class BregmanDiv<float>;\ntemplate class BregmanDiv<double>;\ntemplate class KLDivAbstract<float>;\ntemplate class KLDivAbstract<double>;\ntemplate class KLDivGenSlow<float>;\ntemplate class KLDivGenSlow<double>;\ntemplate class KLDivGenFast<float>;\ntemplate class KLDivGenFast<double>;\ntemplate class ItakuraSaitoFast<float>;\ntemplate class ItakuraSaitoFast<double>;\ntemplate class KLDivGenFastRightQuery<float>;\ntemplate class KLDivGenFastRightQuery<double>;\ntemplate class KLDivFast<float>;\ntemplate class KLDivFast<double>;\ntemplate class KLDivFastRightQuery<float>;\ntemplate class KLDivFastRightQuery<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_dummy.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_dummy.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\ndist_t SpaceDummy<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  LOG(LIB_INFO) << \"Calculating the distance between objects: \" << obj1->id() << \" and \" << obj2->id() << endl;\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  /* \n   * Data in the object is accessed using functions:\n   * obj1->datalength()\n   * obj1->data();\n   * obj2->datalength()\n   * obj2->data();\n   */\n  return static_cast<dist_t>(0);\n\n} \n\n/** Sample standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> SpaceDummy<dist_t>::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateOneFile(inpFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<DataFileOutputState> SpaceDummy<dist_t>::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                        const string& outFileName) const {\n  return unique_ptr<DataFileOutputState>(new DataFileOutputState(outFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<Object> \nSpaceDummy<dist_t>::CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                            DataFileInputState* pInpStateBase) const {\n  // Object that stores the string\n  return unique_ptr<Object>(new Object(id, label, s.size(), s.data())); \n}\n\ntemplate <typename dist_t>\nstring SpaceDummy<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  // Return a string that is a copy of the Object buffer\n  return string(pObj->data(), pObj->datalength());\n}\n\ntemplate <typename dist_t>\nbool SpaceDummy<dist_t>::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n  if (!pInpState->inp_file_) return false;\n  // Read the next line\n  if (!getline(pInpState->inp_file_, strObj)) return false;\n  // Increase the line number counter\n  pInpState->line_num_++;\n  return true;\n}\n\ntemplate <typename dist_t>\nvoid SpaceDummy<dist_t>::WriteNextObj(const Object& obj, const string& externId, DataFileOutputState &outState) const {\n  string s = CreateStrFromObj(&obj, externId);\n  outState.out_file_ << s << endl;\n}\n/** End of standard functions to read/write/create objects */ \n\n \n\ntemplate class SpaceDummy<int>;\ntemplate class SpaceDummy<float>;\ntemplate class SpaceDummy<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_js.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_js.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nObject* SpaceJSBase<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<dist_t>& InpVect) const {\n  if (type_ == kJSSlow) {\n    return new Object(id, label, InpVect.size() * sizeof(dist_t), &InpVect[0]);\n  }\n  std::vector<dist_t>   temp(InpVect);\n\n  // Reserve space to store logarithms\n  temp.resize(2 * InpVect.size());\n  // Compute logarithms\n  PrecompLogarithms(&temp[0], InpVect.size());\n  return new Object(id, label, temp.size() * sizeof(dist_t), &temp[0]);\n}\n\n\ntemplate <typename dist_t>\ndist_t SpaceJSBase<dist_t>::JensenShannonFunc(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n\n  size_t length = obj1->datalength() / sizeof(dist_t);\n\n  if (type_ != kJSSlow) length /= 2;\n\n  dist_t val = 0;\n\n  switch (type_) {\n    case kJSSlow:               val = JSStandard(x, y, length); break;\n    case kJSFastPrecomp:        val = JSPrecomp(x, y, length); break;\n    case kJSFastPrecompApprox:  val = JSPrecompSIMDApproxLog(x, y, length); break;\n    default: {\n               PREPARE_RUNTIME_ERR(err) << \"Unknown JS function type code: \" << type_;\n               THROW_RUNTIME_ERR(err);\n             }\n  }\n\n  return val;\n}\n\ntemplate class SpaceJSBase<float>;\ntemplate class SpaceJSBase<double>;\n\ntemplate class SpaceJSDiv<float>;\ntemplate class SpaceJSDiv<double>;\n\ntemplate class SpaceJSMetric<float>;\ntemplate class SpaceJSMetric<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_lp.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_lp.h\"\n#include \"logging.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\ndist_t SpaceLp<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n  const size_t length = obj1->datalength() / sizeof(dist_t);\n\n  return distObj_(x, y, length);\n}\n\ntemplate <typename dist_t>\nstd::string SpaceLp<dist_t>::StrDesc() const {\n  std::stringstream stream;\n  stream << \"SpaceLp: p = \" << distObj_.getP() << \" do we have a special implementation for this p? : \" << bool(distObj_.getCustom());\n  return stream.str();\n}\n\ntemplate class SpaceLp<float>;\ntemplate class SpaceLp<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_scalar.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_scalar.h\"\n#include \"logging.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\ndist_t SpaceCosineSimilarity<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n  const size_t length = obj1->datalength() / sizeof(dist_t);\n\n  dist_t val = CosineSimilarity(x, y, length);\n  // TODO: @leo shouldn't happen any more, but let's keep this check here for a while\n  if (std::isnan(val)) throw runtime_error(\"Bug: NAN dist! (SpaceCosineSimilarity)\");\n  return val;\n}\n\ntemplate class SpaceCosineSimilarity<float>;\ntemplate class SpaceCosineSimilarity<double>;\n\ntemplate <typename dist_t>\ndist_t SpaceAngularDistance<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n  const size_t length = obj1->datalength() / sizeof(dist_t);\n\n  dist_t val = AngularDistance(x, y, length);\n  // TODO: @leo shouldn't happen any more, but let's keep this check here for a while\n  if (std::isnan(val)) throw runtime_error(\"Bug: NAN dist! (SpaceAngularDistance)\");\n  return val;\n}\n\ntemplate class SpaceAngularDistance<float>;\ntemplate class SpaceAngularDistance<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_sparse_lp.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"space/space_sparse_lp.h\"\n#include \"space/space_sparse_vector.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\ndist_t SpaceSparseLp<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  return SpaceSparseVectorSimpleStorage<dist_t>::ComputeDistanceHelper(obj1, obj2, distObj_);\n}\n\ntemplate <typename dist_t>\nstd::string SpaceSparseLp<dist_t>::StrDesc() const {\n  std::stringstream stream;\n  stream << \"SpaceSparseLp: p = \" << distObj_.getP() << \" (custom implement.) = \" << distObj_.getCustom();\n  return stream.str();\n}\n\ntemplate class SpaceSparseLp<float>;\ntemplate class SpaceSparseLp<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_sparse_scalar_fast.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <memory>\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n#include <cstdint>\n\n#include \"utils.h\"\n#include \"space/space_sparse_scalar_fast.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\nfloat \nSpaceSparseCosineSimilarityFast::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj2->datalength() > 0);\n\n  float val = 1 - ScalarProductFast(obj1->data(), obj1->datalength(),\n                                    obj2->data(), obj2->datalength());\n\n  return max(val, float(0));\n}\n\nfloat \nSpaceSparseAngularDistanceFast::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj2->datalength() > 0);\n\n  return acos(ScalarProductFast(obj1->data(), obj1->datalength(),\n                                obj2->data(), obj2->datalength()));\n}\n\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_sparse_vector.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <limits>\n#include <iomanip>\n#include <sstream>\n#include <random>\n\n#include \"space/space_sparse_vector.h\"\n#include \"object.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nvoid SpaceSparseVector<dist_t>::ReadSparseVec(std::string line, size_t line_num, LabelType& label, vector<ElemType>& v) const\n{\n  v.clear();\n\n  label = Object::extractLabel(line);\n\n  ReplaceSomePunct(line); \n  std::stringstream str(line);\n\n  str.exceptions(std::ios::badbit);\n\n  uint32_t id;\n  dist_t   val;\n\n  try {\n    while (str >> id && str >> val) {\n      v.push_back(ElemType(id, val));\n    }\n    sort(v.begin(), v.end());\n\n    for (unsigned i = 1; i < v.size(); ++i) {\n      uint32_t  prevId = v[i-1].id_;\n      uint32_t  id = v[i].id_;\n\n      if (id == prevId) {\n        stringstream err;\n        err << \"Repeating ID: prevId = \" << prevId << \" prev val: \" << v[i-1].val_ << \" current id: \" << id << \" val = \" << v[i].val_ << \" (i=\" << i << \")\";\n        throw std::runtime_error(err.str());\n      }\n\n      if (id < prevId) {\n        stringstream err;\n        err << \"But: Ids are not sorted, prevId = \" << prevId << \" prev val: \" << v[i-1].val_ << \" current id: \" << id << \" val = \" << v[i].val_ << \" (i=\" << i << \")\";\n        throw std::runtime_error(err.str());\n      }\n    }\n  } catch (const std::exception &e) {\n    LOG(LIB_ERROR) << \"Exception: \" << e.what() << std::endl;\n    PREPARE_RUNTIME_ERR(err) << \"Failed to parse the line # \" << line_num << \": '\" << line << \"'\" << std::endl;\n    LOG(LIB_ERROR) << err.stream().str() << std::endl;\n    THROW_RUNTIME_ERR(err);\n  }\n\n  CHECK_MSG(!v.empty(), \"Encountered an empty sparse vector: this is not allowed!\");\n}\n\n/** Standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> SpaceSparseVector<dist_t>::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateOneFile(inpFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<DataFileOutputState> SpaceSparseVector<dist_t>::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                              const string& outputFile) const {\n  return unique_ptr<DataFileOutputState>(new DataFileOutputState(outputFile));\n}\n\ntemplate <typename dist_t>\nunique_ptr<Object> \nSpaceSparseVector<dist_t>::CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                      DataFileInputState* pInpStateBase) const {\n  size_t line_num = 0;\n  if (NULL != pInpStateBase) {\n    DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(pInpStateBase);\n    CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n    line_num = pInpState->line_num_; \n  }\n\n  vector<ElemType>  vec;\n  ReadSparseVec(s, line_num, label, vec);\n  return unique_ptr<Object>(CreateObjFromVect(id, label, vec));\n}\n\ntemplate <typename dist_t>\nbool \nSpaceSparseVector<dist_t>::ApproxEqual(const Object& obj1, const Object& obj2) const {\n  vector<SparseVectElem<dist_t>> target1, target2;\n  CreateVectFromObj(&obj1, target1);\n  CreateVectFromObj(&obj2, target2);\n  return target1 == target2;\n}\n\ntemplate <typename dist_t>\nstring SpaceSparseVector<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  stringstream out;\n\n  vector<ElemType> elems;\n\n  vector<SparseVectElem<dist_t>> target;\n  CreateVectFromObj(pObj, target);\n\n  for (size_t i = 0; i < target.size(); ++i) {\n    if (i) out << \" \";\n    // Clear all previous flags & set to the maximum precision available\n    out.unsetf(ios_base::floatfield);\n    out << target[i].id_ << \" \" << setprecision(numeric_limits<dist_t>::max_digits10) << target[i].val_;\n  }\n\n  return out.str();\n}\n\n\ntemplate <typename dist_t>\nbool SpaceSparseVector<dist_t>::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected reference type\");\n  if (!pInpState->inp_file_) return false;\n  if (!getline(pInpState->inp_file_, strObj)) return false;\n  if (strObj.empty()) {\n    PREPARE_RUNTIME_ERR(err) << \"Encountered an empty line (not allowed), line # \" << pInpState->line_num_; \n    THROW_RUNTIME_ERR(err);\n  }\n  pInpState->line_num_++;\n  return true;\n}\n\n/* \n * We don't instantiate sparse vector spaces for types other than float & double\n */\ntemplate class SpaceSparseVector<float>;\ntemplate class SpaceSparseVector<double>;\n\ntemplate class SpaceSparseVectorSimpleStorage<float>;\ntemplate class SpaceSparseVectorSimpleStorage<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_sparse_vector_inter.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n#include <random>\n\n#include \"space/space_sparse_vector_inter.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n\nnamespace similarity {\n\ntemplate <typename dist_t>\nvoid\nSpaceSparseVectorInter<dist_t>::CreateDenseVectFromObj(const Object* obj, \n                                                       dist_t* pVect,\n                                                       size_t nElem) const {\n  static std::hash<size_t>   indexHash;\n  fill(pVect, pVect + nElem, static_cast<dist_t>(0));\n\n  vector<SparseVectElem<dist_t>> target;\n  UnpackSparseElements(obj->data(), obj->datalength(), target);\n\n  for (SparseVectElem<dist_t> e: target) {\n    size_t idx = indexHash(e.id_) % nElem;\n    pVect[idx] += e.val_;\n  }\n}\n\ntemplate <typename dist_t>\nvoid\nSpaceSparseVectorInter<dist_t>::CreateVectFromObj(const Object* obj, vector<ElemType>& v) const {\n  UnpackSparseElements(obj->data(), obj->datalength(), v);\n}\n\ntemplate <typename dist_t>\nObject* SpaceSparseVectorInter<dist_t>::CreateObjFromVect(IdType id, LabelType label, const std::vector<ElemType>& InpVect) const {\n  char    *pData = NULL;\n  size_t  dataLen = 0;\n\n  try {\n    PackSparseElements(InpVect, pData, dataLen);\n    return new Object(id, label, dataLen, pData);\n  } catch (...) {\n    delete [] pData;\n    throw;\n  }\n}\n\ntemplate class SpaceSparseVectorInter<float>;\ntemplate class SpaceSparseVectorInter<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_sqfd.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#if !defined(_MSC_VER)\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n#include <iomanip>\n#include <limits>\n#include <algorithm>\n#include <Eigen/Dense>\n\n#include \"object.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n#include \"space/space_sqfd.h\"\n\nnamespace similarity {\n\nusing Eigen::MatrixXd;\nusing Eigen::VectorXd;\n\nusing namespace std;\n\ntemplate <typename dist_t>\nSpaceSqfd<dist_t>::SpaceSqfd(SqfdFunction<dist_t>* func)\n    : func_(func) {\n}\n\ntemplate <typename dist_t>\nSpaceSqfd<dist_t>::~SpaceSqfd() {\n  delete func_;\n}\n\nstruct DataFileInputStateSQFD : public DataFileInputStateOneFile {\n  DataFileInputStateSQFD(const string& inpFileName) : \n                              DataFileInputStateOneFile(inpFileName), \n                              num_clusters_(0), \n                              feature_dimension_(0),\n                              num_rand_pixels_(0) { \n    string line;\n    if (!getline(inp_file_, line))\n      throw runtime_error(\"Expecting a non-empty first line in '\" + inpFileName + \"'\");\n    line_num_++;\n\n    stringstream ss(line);\n    ss.exceptions(std::ios::badbit);\n    ss >> num_clusters_ >> feature_dimension_ >> num_rand_pixels_;\n\n    if (!getline(inp_file_, line) || !line.empty())\n      throw runtime_error(\"Expecting an empty second line in '\" + inpFileName + \"'\");\n\n    line_num_++;\n  }\n  \n  uint32_t        num_clusters_;\n  uint32_t        feature_dimension_;\n  uint32_t        num_rand_pixels_;\n};\n\n/** Standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> SpaceSqfd<dist_t>::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateSQFD(inpFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<DataFileOutputState> SpaceSqfd<dist_t>::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                       const string& outFileName) const {\n  unique_ptr<DataFileOutputState> outState(new DataFileOutputState(outFileName));\n  uint32_t num_clusters = 0, feature_dimension = 0, num_rand_pixels = 0;\n  if (!dataset.empty()) {\n    const uint32_t* h = reinterpret_cast<const uint32_t*>(dataset[0]->data());\n    num_clusters = h[0]; \n    feature_dimension = h[1];\n  }\n  outState->out_file_ << num_clusters << \" \" << feature_dimension << \" \" << num_rand_pixels << endl << endl; \n  return outState;\n}\n\ntemplate <typename dist_t>\nbool SpaceSqfd<dist_t>::ApproxEqual(const Object& obj1, const Object& obj2) const {\n  if (obj1.datalength() < 8) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: object size \" << obj1.datalength() << \" is smaller than 8 bytes!\";\n    THROW_RUNTIME_ERR(err);\n  }\n  if (obj2.datalength() < 8) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: object size \" << obj2.datalength() << \" is smaller than 8 bytes!\";\n    THROW_RUNTIME_ERR(err);\n  }\n  const uint32_t* h1 = reinterpret_cast<const uint32_t*>(obj1.data());\n  const uint32_t* h2 = reinterpret_cast<const uint32_t*>(obj2.data());\n  const uint32_t num_clusters1 = h1[0], feature_dimension1 = h1[1];\n  const uint32_t num_clusters2 = h2[0], feature_dimension2 = h2[1];\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1.data() + 2*sizeof(uint32_t));\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2.data() + 2*sizeof(uint32_t));\n  if (feature_dimension1 != feature_dimension2) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: different feature dimensions: \" \n               << feature_dimension1 << \" vs \" << feature_dimension2;\n    THROW_RUNTIME_ERR(err);\n  }\n  if (num_clusters1 != num_clusters2) return false;\n\n  for (size_t i = 0; i < num_clusters1; ++i) {\n    const dist_t* p1 = x + i * (feature_dimension1 + 1);\n    const dist_t* p2 = y + i * (feature_dimension1 + 1);\n    for (size_t k = 0; k < feature_dimension1; ++k) {\n      if (!similarity::ApproxEqual(p1[k], p2[k])) return false;\n    }\n  }\n\n  return true;\n}\n\ntemplate <typename dist_t>\nstring SpaceSqfd<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  if (pObj->datalength() < 8) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: object size \" << pObj->datalength() << \" is smaller than 8 bytes!\";\n    THROW_RUNTIME_ERR(err);\n  }\n  const uint32_t* h = reinterpret_cast<const uint32_t*>(pObj->data());\n  const uint32_t num_clusters = h[0], feature_dimension = h[1];\n  const dist_t*   pElems = reinterpret_cast<const dist_t*>(pObj->data() + 2*sizeof(uint32_t));\n  stringstream out;\n  size_t pos = 0;\n  out << FAKE_FILE_NAME << endl;\n  for (uint32_t i = 0; i < num_clusters; ++i) {\n    for (uint32_t j = 0; j < feature_dimension + 1; ++j) {\n      if (j) out << \" \";\n      // Clear all previous flags & set to the maximum precision available\n      out.unsetf(ios_base::floatfield);\n      out << setprecision(numeric_limits<dist_t>::max_digits10) << pElems[pos++];\n    }\n    out << endl;\n  }\n  return out.str();\n}\n\ntemplate <typename dist_t>\nunique_ptr<Object> SpaceSqfd<dist_t>::CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                                       DataFileInputState* pInpStateBase) const {\n  DataFileInputStateSQFD*  pInpState = NULL;\n  if (pInpStateBase != NULL) {\n    pInpState = dynamic_cast<DataFileInputStateSQFD*>(pInpStateBase);\n    if (NULL == pInpState) {\n      PREPARE_RUNTIME_ERR(err) << \"Bug: unexpected pointer type\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n  stringstream stream1(s);\n  string line;\n\n  int prevQty = -1;\n\n  vector<float> obj;\n  if (pInpState != NULL) \n    obj.reserve(pInpState->num_clusters_ * pInpState->feature_dimension_);\n\n  size_t currLine = 0;\n\n  if (pInpState != NULL) {\n    currLine = pInpState->line_num_;\n    if (!currLine) {\n      throw  runtime_error(\"Bug: got a zero line number while expecting a positive one!\");\n    }\n    currLine--; // One is for the empty line that is not present in the input string\n    // line_num_ points to the last read line, we need to identify the number of the first line\n    for (char c: s) \n    if (c =='\\n') {\n      if (!currLine) {\n        throw  runtime_error(\"Bug: got a zero line number while expecting a positive one!\");\n      }\n      --currLine;\n    }\n  }\n\n  if (!getline(stream1, line)) {\n    PREPARE_RUNTIME_ERR(err) << \"Expecting a non-empty line # \" << currLine;\n    THROW_RUNTIME_ERR(err);\n  }\n  ++currLine;\n\n  while (getline(stream1, line)) {\n    ++currLine;\n\n    if (line.length() == 0) break; // Empty line\n    stringstream stream2(line);\n    stream2.exceptions(ios::badbit);\n\n    int qty = 0;\n    dist_t v;\n\n    while (stream2 >> v) {\n      obj.push_back(v);\n      qty++;\n    }\n\n    if (prevQty == -1) prevQty = qty;\n    else if (qty != prevQty) {\n      PREPARE_RUNTIME_ERR(err) << \"The number of elements \" << qty << \" in line \" << currLine << \n                                  \" doesn't match the number of elements \" << prevQty << \" in previous lines \" << \n                                  \" offending line: '\" << line << \"'\" << endl <<\n                                  \" offending block:\" << endl << s;\n      THROW_RUNTIME_ERR(err);\n    }\n    // +1 is because one element is the feature weight\n    if (pInpState != NULL && qty != pInpState->feature_dimension_ + 1) {\n      PREPARE_RUNTIME_ERR(err) << \"The number of elements in line \" << currLine << \n                         \" doesn't match the number of elements in the file header'\" <<\n                         \" expected: \" << (pInpState->feature_dimension_ + 1) << \" but got: \" << qty;\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n\n  const uint32_t feature_weight = prevQty;\n  const uint32_t num_clusters = obj.size() / prevQty;\n  const int object_size =\n        2 * sizeof(uint32_t) + // num_clusters & feature_dimension\n        num_clusters * feature_weight * sizeof(dist_t);\n\n  vector<char> buf(object_size);\n  uint32_t* h = reinterpret_cast<uint32_t*>(&buf[0]);\n  h[0] = num_clusters;\n  h[1] = feature_weight - 1;\n\n  dist_t* pVect = reinterpret_cast<dist_t*>(h+2);\n  copy(obj.begin(), obj.end(), pVect);\n\n  return unique_ptr<Object>(new Object(id, label, object_size, &buf[0]));\n}\n\ntemplate <typename dist_t>\nbool SpaceSqfd<dist_t>::ReadNextObjStr(DataFileInputState &inpState, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateSQFD*  pInpState = NULL;\n  pInpState = dynamic_cast<DataFileInputStateSQFD*>(&inpState);\n  if (NULL == pInpState) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: unexpected reference type\";\n    THROW_RUNTIME_ERR(err);\n  }\n\n  stringstream stream1;\n  string line;\n\n  size_t currLine = pInpState->line_num_;\n\n  if (!getline(pInpState->inp_file_, line)) {\n    return false;\n  }\n  ++currLine;\n\n  stream1 << line << endl;\n\n  while (getline(pInpState->inp_file_, line)) {\n    ++currLine;\n\n    if (line.length() == 0) break; // Empty line, don't append it to the object representation!\n    stream1 << line << endl;\n  }\n  pInpState->line_num_ = currLine;\n  strObj = stream1.str();\n  return true;\n}\n\ntemplate <typename dist_t>\ndist_t SpaceSqfd<dist_t>::HiddenDistance(\n    const Object* obj1, const Object* obj2) const {\n  if (obj1->datalength() < 8) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: object size \" << obj1->datalength() << \" is smaller than 8 bytes!\";\n    THROW_RUNTIME_ERR(err);\n  }\n  if (obj2->datalength() < 8) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: object size \" << obj2->datalength() << \" is smaller than 8 bytes!\";\n    THROW_RUNTIME_ERR(err);\n  }\n  const uint32_t* h1 = reinterpret_cast<const uint32_t*>(obj1->data());\n  const uint32_t* h2 = reinterpret_cast<const uint32_t*>(obj2->data());\n  const uint32_t num_clusters1 = h1[0], feature_dimension1 = h1[1];\n  const uint32_t num_clusters2 = h2[0], feature_dimension2 = h2[1];\n  const dist_t* x = reinterpret_cast<const dist_t*>(\n      obj1->data() + 2*sizeof(uint32_t));\n  const dist_t* y = reinterpret_cast<const dist_t*>(\n      obj2->data() + 2*sizeof(uint32_t));\n  if (feature_dimension1 != feature_dimension2) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: different feature dimensions: \" \n               << feature_dimension1 << \" vs \" << feature_dimension2;\n    THROW_RUNTIME_ERR(err);\n  }\n  const uint32_t sz = num_clusters1 + num_clusters2;\n  VectorXd W(sz);\n  size_t pos = feature_dimension1;\n  for (uint32_t i = 0; i < num_clusters1; ++i) {\n    W(i) = x[pos];\n    pos += feature_dimension1 + 1;\n  }\n  pos = feature_dimension2;\n  for (uint32_t i = 0; i < num_clusters2; ++i) {\n    W(num_clusters1 + i) = -y[pos];\n    pos += feature_dimension2 + 1;\n  }\n  MatrixXd A(sz,sz);\n  for (uint32_t i = 0; i < sz; ++i) {\n    for (uint32_t j = i; j < sz; ++j) {\n      const dist_t* p1 = i < num_clusters1\n          ? x + i * (feature_dimension1 + 1)\n          : y + (i - num_clusters1) * (feature_dimension1 + 1);\n      const dist_t* p2 = j < num_clusters1\n          ? x + j * (feature_dimension1 + 1)\n          : y + (j - num_clusters1) * (feature_dimension1 + 1);\n      A(i,j) = A(j,i) = func_->f(p1, p2, feature_dimension1);\n    }\n  }\n  auto res = W.transpose() * A * W;\n  return sqrt(res(0,0));\n}\n\ntemplate <typename dist_t>\nstring SpaceSqfd<dist_t>::StrDesc() const {\n  stringstream stream;\n  stream << \"SpaceSqfd: \" << func_->StrDesc();\n  return stream.str();\n}\n\ntemplate class SpaceSqfd<float>;\ntemplate class SpaceSqfd<double>;\n}  // namespace similarity\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_string.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <string>\n#include <sstream>\n\n#include \"object.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n#include \"space/space_string.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nvoid StringSpace<dist_t>::ReadStr(string line, LabelType& label, string& str, size_t* pLineNum) const\n{\n  label = Object::extractLabel(line);\n\n  if (EMPTY_LABEL == label) {\n    stringstream lineStr;\n    if (pLineNum != NULL) lineStr << \" in line \" << *pLineNum;\n    throw runtime_error(\"Missing label\" + lineStr.str());\n  }\n\n  str = line;\n}\n\n/** Standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> StringSpace<dist_t>::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateVec(inpFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<DataFileOutputState> StringSpace<dist_t>::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                         const string& outFileName) const {\n  return unique_ptr<DataFileOutputState>(new DataFileOutputState(outFileName));\n}\n\ntemplate <typename dist_t>\nbool StringSpace<dist_t>::ApproxEqual(const Object& obj1, const Object& obj2) const {\n  return CreateStrFromObj(&obj1, \"\") == CreateStrFromObj(&obj2, \"\");\n}\n\ntemplate <typename dist_t>\nstring StringSpace<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  const char* p = reinterpret_cast<const char*>(pObj->data());\n  // TODO double-check that sizeof(char) should always be 1 as guaranteed by the C++ standard\n  // then sizeof can be removed\n  const size_t length = pObj->datalength() / sizeof(char);\n  return string(p, length);\n}\n\ntemplate <typename dist_t>\nbool StringSpace<dist_t>::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n  if (!pInpState->inp_file_) return false;\n  string line;\n  if (!getline(pInpState->inp_file_, line)) return false;\n  pInpState->line_num_++;\n  ReadStr(line, label, strObj, &pInpState->line_num_);\n  return true;\n}\n\ntemplate <typename dist_t>\nvoid StringSpace<dist_t>::WriteNextObj(const Object& obj, const string& externId, DataFileOutputState &outState) const {\n  string s = CreateStrFromObj(&obj, externId);\n  outState.out_file_ << LABEL_PREFIX << obj.label() << \" \" << s << endl;\n}\n/** End of standard functions to read/write/create objects */ \n\n\ntemplate class StringSpace<int>;\n// TODO: do we really need floating-point distances for string spaces? \ntemplate class StringSpace<float>;\ntemplate class StringSpace<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_vector.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <sstream>\n#include <string>\n#include <sstream>\n#include <memory>\n#include <iomanip>\n#include <limits>\n\n#include \"object.h\"\n#include \"utils.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n#include \"space/space_vector.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\n/** Standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> VectorSpace<dist_t>::OpenReadFileHeader(const string& inpFileName) const {\n  return unique_ptr<DataFileInputState>(new DataFileInputStateVec(inpFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<DataFileOutputState> VectorSpace<dist_t>::OpenWriteFileHeader(const ObjectVector& dataset,\n                                                                         const string& outFileName) const {\n  return unique_ptr<DataFileOutputState>(new DataFileOutputState(outFileName));\n}\n\ntemplate <typename dist_t>\nunique_ptr<Object> \nVectorSpace<dist_t>::CreateObjFromStr(IdType id, LabelType label, const string& s,\n                                            DataFileInputState* pInpStateBase) const {\n  DataFileInputStateVec*  pInpState = NULL;\n  if (pInpStateBase != NULL) {\n    pInpState = dynamic_cast<DataFileInputStateVec*>(pInpStateBase);\n    if (NULL == pInpState) {\n      PREPARE_RUNTIME_ERR(err) << \"Bug: unexpected pointer type\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n  vector<dist_t>  vec;\n  ReadVec(s, label, vec);\n  if (pInpState != NULL) {\n    if (pInpState->dim_ == 0) pInpState->dim_ = vec.size();\n    else if (vec.size() != pInpState->dim_) {\n      stringstream lineStr;\n      if (pInpStateBase != NULL) lineStr <<  \" line:\" << pInpState->line_num_ << \" \";\n      PREPARE_RUNTIME_ERR(err) << \"The # of vector elements (\" << vec.size() << \")\" << lineStr.str() << \n                      \" doesn't match the # of elements in previous lines. (\" << pInpState->dim_ << \" )\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n  return unique_ptr<Object>(CreateObjFromVect(id, label, vec));\n}\n\ntemplate <typename dist_t>\nbool VectorSpace<dist_t>::ApproxEqual(const Object& obj1, const Object& obj2) const {\n  const dist_t* p1 = reinterpret_cast<const dist_t*>(obj1.data());\n  const dist_t* p2 = reinterpret_cast<const dist_t*>(obj2.data());\n  const size_t len1 = GetElemQty(&obj1);\n  const size_t len2 = GetElemQty(&obj2);\n  if (len1 != len2) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: comparing vectors of different lengths: \" << len1 << \" and \" << len2;\n    THROW_RUNTIME_ERR(err);\n  }\n  for (size_t i = 0; i < len1; ++i) \n  // We have to specify the namespace here, otherwise a compiler\n  // thinks that it should use the equally named member function\n  if (!similarity::ApproxEqual(p1[i], p2[i])) return false;\n  return true;\n}\n\ntemplate <typename dist_t>\nstring VectorSpace<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId /* ignored */) const {\n  stringstream out;\n  const dist_t* p = reinterpret_cast<const dist_t*>(pObj->data());\n  const size_t length = GetElemQty(pObj);\n  for (size_t i = 0; i < length; ++i) {\n    if (i) out << \" \";\n    // Clear all previous flags & set to the maximum precision available\n    out.unsetf(ios_base::floatfield);\n    out << setprecision(numeric_limits<dist_t>::max_digits10) << noshowpoint << p[i];\n  }\n\n  return out.str();\n}\n\ntemplate <typename dist_t>\nbool VectorSpace<dist_t>::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n  if (!pInpState->inp_file_) return false;\n  if (!getline(pInpState->inp_file_, strObj)) return false;\n  pInpState->line_num_++;\n  return true;\n}\n\n/** End of standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nvoid VectorSpace<dist_t>::ReadVec(string line, LabelType& label, vector<dist_t>& v)\n{\n  v.clear();\n\n  label = Object::extractLabel(line);\n\n  ReplaceSomePunct(line); \n  stringstream str(line);\n\n  str.exceptions(ios::badbit);\n\n  dist_t val;\n\n\n  try {\n    while (str >> val) {\n      v.push_back(val);\n    }\n  } catch (const exception &e) {\n    LOG(LIB_ERROR) << \"Exception: \" << e.what();\n    LOG(LIB_FATAL) << \"Failed to parse the line: '\" << line << \"'\";\n  }\n}\n\ntemplate <typename dist_t>\nObject* VectorSpace<dist_t>::CreateObjFromVect(IdType id, LabelType label, const vector<dist_t>& InpVect) const {\n  return new Object(id, label, InpVect.size() * sizeof(dist_t), &InpVect[0]);\n};\n\n/* \n * Note that we don't instantiate vector spaces for types other than float & double\n * The only exception is the VectorSpace<PivotIdType>\n */\ntemplate class VectorSpace<PivotIdType>;\ntemplate class VectorSpace<float>;\ntemplate class VectorSpace<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space/space_word_embed.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <fstream>\n#include <sstream>\n#include <string>\n#include <sstream>\n#include <memory>\n#include <iomanip>\n#include <limits>\n#include <cctype>\n\n#include \"object.h\"\n#include \"utils.h\"\n#include \"logging.h\"\n#include \"distcomp.h\"\n#include \"experimentconf.h\"\n#include \"space/space_word_embed.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\n/** Standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nstring WordEmbedSpace<dist_t>::CreateStrFromObj(const Object* pObj, const string& externId) const {\n  if (HasWhiteSpace(externId)) {\n    throw runtime_error(\"The id '\" + externId + \"' has the white space (but it shouldn't)\");\n  }\n\n  string res = VectorSpace<dist_t>::CreateStrFromObj(pObj, \"\" /* ignored here */);\n  if (!externId.empty()) res = externId + \" \" + res;\n  return res;\n}\n\ntemplate <typename dist_t>\nbool WordEmbedSpace<dist_t>::ReadNextObjStr(DataFileInputState &inpStateBase, string& strObj, LabelType& label, string& externId) const {\n  externId.clear();\n  DataFileInputStateOneFile* pInpState = dynamic_cast<DataFileInputStateOneFile*>(&inpStateBase);\n  CHECK_MSG(pInpState != NULL, \"Bug: unexpected pointer type\");\n  if (!pInpState->inp_file_) return false;\n  if (!getline(pInpState->inp_file_, strObj)) return false;\n  pInpState->line_num_++;\n  ssize_t pos = -1;\n  for (size_t i = 0; i < strObj.size(); ++i) \n  if (isspace(strObj[i])) { pos = i ; break; }\n\n  if (-1 == pos) {\n    PREPARE_RUNTIME_ERR(err) << \"No white space in line #\" << pInpState->line_num_ << \" line: '\" << strObj << \"'\";\n    THROW_RUNTIME_ERR(err);\n  }\n  externId = strObj.substr(0, pos);\n  strObj = strObj.substr(pos + 1);\n\n  return true;\n}\n\n/** End of standard functions to read/write/create objects */ \n\ntemplate <typename dist_t>\nstring WordEmbedSpace<dist_t>::StrDesc() const {\n  string distType;\n  if (distType_ == kEmbedDistL2) {\n    distType=SPACE_WORD_EMBED_DIST_L2;\n  } else if (distType_ == kEmbedDistCosine) {\n    distType = SPACE_WORD_EMBED_DIST_COSINE;\n  } else {\n    PREPARE_RUNTIME_ERR(err) << \"Bug: Invalid distance type code: \" << distType_;\n    THROW_RUNTIME_ERR(err);\n  }\n  return \"word embeddings, distance type: \" + distType;\n}\n\ntemplate <typename dist_t>\ndist_t WordEmbedSpace<dist_t>::HiddenDistance(const Object* obj1, const Object* obj2) const {\n  CHECK(obj1->datalength() > 0);\n  CHECK(obj1->datalength() == obj2->datalength());\n  const dist_t* x = reinterpret_cast<const dist_t*>(obj1->data());\n  const dist_t* y = reinterpret_cast<const dist_t*>(obj2->data());\n  const size_t length = obj1->datalength() / sizeof(dist_t);\n\n  if (distType_ == kEmbedDistL2) \n    return L2NormSIMD(x, y, length);\n  if (distType_ == kEmbedDistCosine) \n    return CosineSimilarity(x, y, length);\n  PREPARE_RUNTIME_ERR(err) << \"Bug: Invalid distance type code: \" << distType_;\n  THROW_RUNTIME_ERR(err);\n}\n\n/* \n * Note that we don't instantiate vector spaces for types other than float & double\n */\ntemplate class WordEmbedSpace<float>;\ntemplate class WordEmbedSpace<double>;\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/space.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"space.h\"\n\nnamespace similarity {\n\nusing std::vector;\nusing std::string;\n\ntemplate <typename dist_t>\nunique_ptr<DataFileInputState> Space<dist_t>::ReadDataset(ObjectVector& dataset,\n                           vector<string>& vExternIds,\n                           const string& inputFile,\n                           const IdTypeUnsign MaxNumObjects) const {\n  CHECK_MSG(MaxNumObjects >=0, \"Bug: MaxNumObjects should be >= 0\");\n  unique_ptr<DataFileInputState> inpState(OpenReadFileHeader(inputFile));\n  string line;\n  IdType label;\n  string externId;\n  for (size_t id = 0; id < MaxNumObjects || !MaxNumObjects; ++id) {\n    if (!ReadNextObjStr(*inpState, line, label, externId)) break;\n    dataset.push_back(CreateObjFromStr(id, label, line, inpState.get()).release());\n    vExternIds.push_back(externId);\n  }\n  inpState->Close();\n  return inpState;\n}\n\ntemplate <typename dist_t>\nvoid Space<dist_t>::WriteDataset(const ObjectVector& dataset,\n                           const vector<string>& vExternIds,\n                           const string& outputFile,\n                           const IdTypeUnsign MaxNumObjects) const {\n  CHECK_MSG(MaxNumObjects >=0, \"Bug: MaxNumObjects should be >= 0\");\n  if (dataset.size() != vExternIds.size()) {\n    PREPARE_RUNTIME_ERR(err) << \"Bug, dataset.size() != vExternIds.size(): \" << dataset.size() << \" != \" << vExternIds.size();\n    THROW_RUNTIME_ERR(err);\n  }\n  unique_ptr<DataFileOutputState> outState(OpenWriteFileHeader(dataset, outputFile));\n  for (size_t i = 0; i < MaxNumObjects && i < dataset.size(); ++i) {\n    WriteNextObj(*dataset[i], vExternIds[i], *outState);\n  }\n  outState->Close();\n}\n\ntemplate class Space<int>;\ntemplate class Space<float>;\ntemplate class Space<double>;\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/tune_vptree.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n\n#include <cmath>\n#include <memory>\n#include <limits>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <fstream>\n#include <map>\n\n#include <boost/program_options.hpp>\n\n#include \"init.h\"\n#include \"global.h\"\n#include \"utils.h\"\n#include \"memory.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"index.h\"\n#include \"tune.h\"\n#include \"method/vptree.h\"\n#include \"method/proj_vptree.h\"\n#include \"method/perm_bin_vptree.h\"\n#include \"logging.h\"\n#include \"spacefactory.h\"\n#include \"methodfactory.h\"\n#include \"params_def.h\"\n\n#include \"meta_analysis.h\"\n#include \"params.h\"\n\n//#define DETAILED_LOG_INFO 1\n\nusing namespace similarity;\n\nusing std::vector;\nusing std::map;\nusing std::make_pair;\nusing std::string;\nusing std::stringstream;\n\nnamespace po = boost::program_options;\n\nstatic void Usage(const char *prog,\n                  const po::options_description& desc) {\n    std::cout << prog << std::endl\n              << desc << std::endl;\n}\n\ntemplate <typename dist_t>\nvoid RunExper(unsigned AddRestartQty, \n             const string&                  MethodName,\n             const AnyParams&               IndexParams,\n             const AnyParams&               QueryTimeParams,\n             const string&                  SpaceType,\n             const AnyParams&               SpaceParams,\n             unsigned                       TestSetQty,\n             const string&                  DataFile,\n             const string&                  QueryFile,\n             IdTypeUnsign                   MaxNumData,\n             IdTypeUnsign                   MaxNumQuery,\n             vector<unsigned>               knnAll,\n             float                          eps,\n             const string&                  RangeArg,\n             const string&                  ResFile,\n             unsigned                       MinExp,\n             unsigned                       MaxExp,\n             unsigned                       MaxIter,\n             unsigned                       MaxRecDepth,\n             unsigned                       StepN,\n             float                          FullFactor,\n             float                          maxCacheGSRelativeQty\n)\n{\n  vector<dist_t> rangeAll;\n\n  if (!RangeArg.empty()) {\n    if (!SplitStr(RangeArg, rangeAll, ',')) {\n      LOG(LIB_FATAL) << \"Wrong format of the range argument: '\" << RangeArg << \"' Should be a list of coma-separated values.\";\n    }\n  }\n\n  vector<string>  vAllowedMeth = {METH_VPTREE, METH_PROJ_VPTREE, METH_PERM_BIN_VPTREE};\n  string          allowedMethList;\n\n  for (string s: vAllowedMeth) allowedMethList += s + \" \";\n\n  bool ok = false;\n  for (string s: vAllowedMeth) {\n    if (MethodName  == s) {\n      ok = true;\n      break;\n    }\n  }\n\n  if (!ok) {\n    LOG(LIB_FATAL) << \"Wrong method name, \" << \n                      \"you should specify only a single method from the list: \" << allowedMethList;\n  }\n\n  LOG(LIB_INFO) << \"We are going to tune parameters for \" << MethodName;\n\n  static  std::random_device          rd;\n  static  std::mt19937                engine(rd());\n  static  std::normal_distribution<>  normGen(0.0f, log(FullFactor));\n\n  AnyParamManager pmgr(IndexParams);\n\n  float         desiredRecall = 0;\n\n  pmgr.GetParamRequired(DESIRED_RECALL_PARAM, desiredRecall);\n\n  string metricName;\n\n  pmgr.GetParamOptional(OPTIM_METRIC_PARAMETER, metricName, OPTIM_METRIC_DEFAULT);\n\n  OptimMetric metric = getOptimMetric(metricName);\n\n  if (IMPR_INVALID == metric) {\n    stringstream err;\n  \n    err << \"Invalid metric name: \" << metricName;\n    LOG(LIB_FATAL) << err.str();\n  }\n\n  try {\n\n    if (!MaxExp) throw runtime_error(string(MIN_EXP_PARAM) + \" can't be zero!\");\n    if (MaxExp < MinExp) throw runtime_error(string(MAX_EXP_PARAM) + \" can't be < \" + string(MIN_EXP_PARAM));\n\n    if (rangeAll.size() + knnAll.size() != 1) {\n      LOG(LIB_FATAL) << \"You need to specify exactly one range or one knn search!\";\n    }\n\n    unique_ptr<ExperimentConfig<dist_t>>  config;\n    unique_ptr<Space<dist_t>>             space(SpaceFactoryRegistry<dist_t>::Instance().CreateSpace(SpaceType, SpaceParams));\n\n    if (NULL == space.get()) {\n      LOG(LIB_FATAL) << \"Cannot create space: '\" << SpaceType;\n    }\n\n    for (unsigned i = 0; i < rangeAll.size(); ++i) {\n      vector<dist_t>      range;\n      vector<unsigned>    knn;\n\n      range.push_back(rangeAll[i]);\n      \n      config.reset(new ExperimentConfig<dist_t>(*space,\n                                      DataFile, QueryFile, TestSetQty,\n                                      MaxNumData, MaxNumQuery,\n                                      knn, eps, range));\n    }\n\n    for (unsigned i = 0; i < knnAll.size(); ++i) {\n      vector<dist_t>      range;\n      vector<unsigned>    knn;\n\n      knn.push_back(knnAll[i]);\n\n      config.reset(new ExperimentConfig<dist_t>(*space,\n                                      DataFile, QueryFile, TestSetQty,\n                                      MaxNumData, MaxNumQuery,\n                                      knn, eps, range));\n    }\n\n    CHECK(config.get());\n\n    config->ReadDataset();\n\n    float recall = 0, time_best = 0, impr_best = -1, alpha_left = 0, alpha_right = 0; \n    unsigned exp_left = 0, exp_right = 0;\n\n    for (unsigned ce = MinExp; ce <= MaxExp; ++ce)\n    for (unsigned k = 0; k < 1 + AddRestartQty; ++k) {\n      unsigned expLeft = ce, expRight = ce;\n      float recall_loc, time_best_loc, impr_best_loc, \n            alpha_left_loc = 1.0, alpha_right_loc = 1.0; // These are initial values\n\n      if (k > 0) {\n        // Let's do some random normal fun\n        alpha_left_loc = exp(normGen(engine));\n        alpha_right_loc = exp(normGen(engine));\n        LOG(LIB_INFO) << \" RANDOM STARTING POINTS: \" << alpha_left_loc << \" \" << alpha_right_loc;\n      } \n\n      GetOptimalAlphas(true,\n                     *config, \n                     metric, desiredRecall,\n                     SpaceType, \n                     MethodName, \n                     pmgr.ExtractParametersExcept({DESIRED_RECALL_PARAM, OPTIM_METRIC_PARAMETER}), \n                     QueryTimeParams,\n                     recall_loc, \n                     time_best_loc, impr_best_loc,\n                     alpha_left_loc, expLeft, alpha_right_loc, expRight,\n                     MaxIter, MaxRecDepth, StepN, FullFactor, maxCacheGSRelativeQty);\n\n      if (impr_best_loc > impr_best) {\n        recall = recall_loc; \n        time_best = time_best_loc; \n        impr_best = impr_best_loc;\n        alpha_left = alpha_left_loc; \n        alpha_right = alpha_right_loc;\n        exp_left = expLeft;\n        exp_right = expRight;\n      }\n    }\n\n    stringstream  bestParams;\n    bestParams << ALPHA_LEFT_PARAM << \"=\" << alpha_left << \",\" << ALPHA_RIGHT_PARAM << \"=\" << alpha_right << \",\"\n                 << EXP_LEFT_PARAM   << \"=\" << exp_left   << \",\" << EXP_RIGHT_PARAM   << \"=\" << exp_right;\n\n    LOG(LIB_INFO) << \"Optimization results\";\n    if (!knnAll.empty()) {\n      LOG(LIB_INFO) << \"K: \"  << knnAll[0];\n    } else {\n      LOG(LIB_INFO) << \"Range: \"  << rangeAll[0];\n    }\n    LOG(LIB_INFO) << \"Recall: \" << recall;\n    LOG(LIB_INFO) << \"Best time: \" << time_best;\n    LOG(LIB_INFO) << \"Best impr. \" << impr_best << \" (\" << getOptimMetricName(metric) << \")\" << endl; \n    LOG(LIB_INFO) << \"alpha_left: \" << alpha_left;\n    LOG(LIB_INFO) << \"exp_left: \" << exp_left;\n    LOG(LIB_INFO) << \"alpha_right: \" << alpha_right;\n    LOG(LIB_INFO) << \"exp_right: \" << exp_right;\n    LOG(LIB_INFO) << \"optimal parameters: \" << bestParams.str();\n\n    if (recall < desiredRecall) {\n      LOG(LIB_FATAL) << \"Failed to get the desired recall!\";\n    }\n\n    if (!ResFile.empty()) {\n      ofstream out(ResFile, ios::trunc);\n\n      if (!out) {\n        LOG(LIB_FATAL) << \"Can't open file: '\" << ResFile << \"' for writing\";\n      }\n\n      out << bestParams.str() << endl;\n      out.close();\n    }\n\n  } catch (const std::exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  } catch (...) {\n    LOG(LIB_FATAL) << \"Unknown exception\";\n  }\n}\n\nvoid ParseCommandLineForTuning(int argc, char*argv[],\n                      string&                 LogFile,\n                      string&                 DistType,\n                      string&                 SpaceType,\n                      shared_ptr<AnyParams>&  SpaceParams,\n                      string&                 ResFile,\n                      unsigned&               TestSetQty,\n                      string&                 DataFile,\n                      string&                 QueryFile,\n                      float&                  MaxCacheGSRelativeQty,\n                      unsigned&               MaxNumData,\n                      unsigned&               MaxNumQuery,\n                      vector<unsigned>&       knn,\n                      float&                  eps,\n                      string&                 RangeArg,\n                      unsigned&               MinExp,   \n                      unsigned&               MaxExp,   \n                      unsigned&               MaxIter,   \n                      unsigned&               MaxRecDepth,\n                      unsigned&               StepN,      \n                      float&                  FullFactor,\n                      unsigned&               addRestartQty,\n                      string&                 MethodName,\n                      shared_ptr<AnyParams>&  IndexParams,\n                      shared_ptr<AnyParams>&  QueryTimeParams) {\n  knn.clear();\n  RangeArg.clear();\n\n  string          methParams;\n  string          knnArg;\n  // Using double due to an Intel's bug with __builtin_signbit being undefined for float\n  double          epsTmp;\n  double          fullFactorTmp;\n\n  string          indexTimeParamStr;\n  string          queryTimeParamStr;\n\n  po::options_description ProgOptDesc(\"Allowed options\");\n  ProgOptDesc.add_options()\n    (HELP_PARAM_OPT,          HELP_PARAM_MSG)\n    (SPACE_TYPE_PARAM_OPT,    po::value<string>(&SpaceType)->required(),                    SPACE_TYPE_PARAM_MSG)\n    (DIST_TYPE_PARAM_OPT,     po::value<string>(&DistType)->default_value(DIST_TYPE_FLOAT), DIST_TYPE_PARAM_MSG)\n    (DATA_FILE_PARAM_OPT,     po::value<string>(&DataFile)->required(),                     DATA_FILE_PARAM_MSG)\n    (MAX_NUM_DATA_PARAM_OPT,  po::value<unsigned>(&MaxNumData)->default_value(MAX_NUM_DATA_PARAM_DEFAULT), MAX_NUM_DATA_PARAM_MSG)\n    (QUERY_FILE_PARAM_OPT,    po::value<string>(&QueryFile)->default_value(QUERY_FILE_PARAM_DEFAULT),  QUERY_FILE_PARAM_MSG)\n    (MAX_CACHE_GS_QTY_PARAM_OPT, po::value<float>(&MaxCacheGSRelativeQty)->default_value(MAX_CACHE_GS_QTY_PARAM_DEFAULT),    MAX_CACHE_GS_QTY_PARAM_MSG)\n    (LOG_FILE_PARAM_OPT,      po::value<string>(&LogFile)->default_value(LOG_FILE_PARAM_DEFAULT),          LOG_FILE_PARAM_MSG)\n    (MAX_NUM_QUERY_PARAM_OPT, po::value<unsigned>(&MaxNumQuery)->default_value(MAX_NUM_QUERY_PARAM_DEFAULT), MAX_NUM_QUERY_PARAM_MSG)\n    (TEST_SET_QTY_PARAM_OPT,  po::value<unsigned>(&TestSetQty)->default_value(TEST_SET_QTY_PARAM_DEFAULT),   TEST_SET_QTY_PARAM_MSG)\n    (KNN_PARAM_OPT,           po::value< string>(&knnArg),                                  KNN_PARAM_MSG)\n    (RANGE_PARAM_OPT,         po::value<string>(&RangeArg),                                 RANGE_PARAM_MSG)\n    (EPS_PARAM_OPT,           po::value<double>(&epsTmp)->default_value(EPS_PARAM_DEFAULT), EPS_PARAM_MSG)\n    (METHOD_PARAM_OPT,        po::value<string>(&MethodName)->required(), METHOD_PARAM_MSG)\n    (\"outFile,o\",             po::value<string>(&ResFile)->default_value(\"\"), \"output file\")\n\n    (QUERY_TIME_PARAMS_PARAM_OPT, po::value<string>(&queryTimeParamStr)->default_value(\"\"), QUERY_TIME_PARAMS_PARAM_MSG)\n    (INDEX_TIME_PARAMS_PARAM_OPT, po::value<string>(&indexTimeParamStr)->default_value(\"\"), INDEX_TIME_PARAMS_PARAM_MSG)\n\n    (MIN_EXP_PARAM, po::value<unsigned>(&MinExp)->default_value(MIN_EXP_DEFAULT),\n                    \"the minimum exponent in the pruning oracle.\")\n    (MAX_EXP_PARAM, po::value<unsigned>(&MaxExp)->default_value(MAX_EXP_DEFAULT),\n                    \"the maximum exponent in the pruning oracle.\")\n    (MAX_ITER_PARAM,     po::value<unsigned>(&MaxIter)->default_value(MAX_ITER_DEFAULT),\n                    \"the maximum number of iteration while we are looking for a point where a desired recall can be achieved.\")\n    (MAX_REC_DEPTH_PARAM, po::value<unsigned>(&MaxRecDepth)->default_value(MAX_REC_DEPTH_DEFAULT),\n                    \"the maximum recursion in the maximization algorithm (each recursion leads to decrease in the grid search step).\")\n    (STEP_N_PARAM,       po::value<unsigned>(&StepN)->default_value(STEP_N_DEFAULT),\n                    \"each local step of the grid search involves (2StepN+1)^2 mini-iterations.\")\n    (ADD_RESTART_QTY_PARAM,  po::value<unsigned>(&addRestartQty)->default_value(ADD_RESTART_QTY_DEFAULT),\n                    \"number of *ADDITIONAL* restarts, initial values are selected randomly\")\n    (FULL_FACTOR_PARAM,  po::value<double>(&fullFactorTmp)->default_value(FULL_FACTOR_DEFAULT),\n                    \"the maximum factor used in the local grid search (i.e., if (A, B) is a starting point for the grid search, the first element will be in the range: [A/Factor,A*Factor], while the second element will be in the range [B/Factor,B*Factor]. In the beginning, Factor==FullFactor, but it gradually decreases as the algorithm converges.\")\n    ;\n\n  po::variables_map vm;\n  try {\n    po::store(po::parse_command_line(argc, argv, ProgOptDesc), vm);\n    po::notify(vm);\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << e.what();\n  }\n\n  eps = epsTmp;\n  FullFactor = fullFactorTmp;\n\n  if (vm.count(\"help\")  ) {\n    Usage(argv[0], ProgOptDesc);\n    exit(0);\n  }\n\n  ToLower(DistType);\n  ToLower(SpaceType);\n  \n  try {\n    {\n      vector<string> SpaceDesc;\n      string str = SpaceType;\n      ParseSpaceArg(str, SpaceType, SpaceDesc);\n      SpaceParams = shared_ptr<AnyParams>(new AnyParams(SpaceDesc));\n    }\n\n    if (vm.count(\"knn\")) {\n      if (!SplitStr(knnArg, knn, ',')) {\n        Usage(argv[0], ProgOptDesc);\n        LOG(LIB_FATAL) << \"Wrong format of the KNN argument: '\" << knnArg;\n      }\n    }\n\n    if (DataFile.empty()) {\n      LOG(LIB_FATAL) << \"data file is not specified!\";\n    }\n\n    if (!DoesFileExist(DataFile)) {\n      LOG(LIB_FATAL) << \"data file \" << DataFile << \" doesn't exist\";\n    }\n\n    if (!QueryFile.empty() && !DoesFileExist(QueryFile)) {\n      LOG(LIB_FATAL) << \"query file \" << QueryFile << \" doesn't exist\";\n    }\n\n    if (!MaxNumQuery && QueryFile.empty()) {\n      LOG(LIB_FATAL) << \"Set a positive # of queries or specify a query file!\"; \n    }\n\n    CHECK_MSG(MaxNumData < MAX_DATASET_QTY, \"The maximum number of points should not exceed\" + ConvertToString(MAX_DATASET_QTY));\n    CHECK_MSG(MaxNumQuery < MAX_DATASET_QTY, \"The maximum number of queries should not exceed\" + ConvertToString(MAX_DATASET_QTY));\n\n    {\n      vector<string>     desc;\n      ParseArg(indexTimeParamStr, desc);\n      IndexParams = shared_ptr<AnyParams>(new AnyParams(desc));\n    }\n\n    {\n      vector<string>     desc;\n      ParseArg(queryTimeParamStr, desc);\n      QueryTimeParams = shared_ptr<AnyParams>(new AnyParams(desc));\n    }\n\n  } catch (const exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  }\n}\n\nint main(int ac, char* av[]) {\n  WallClockTimer timer;\n  timer.reset();\n\n  string                  LogFile;\n  string                  DistType;\n  string                  SpaceType;\n  shared_ptr<AnyParams>   SpaceParams;\n  string                  ResFile;\n  unsigned                TestSetQty;\n  string                  DataFile;\n  string                  QueryFile;\n  float                   MaxCacheGSRelativeQty;\n  IdTypeUnsign            MaxNumData;\n  IdTypeUnsign            MaxNumQuery;\n  vector<unsigned>        knn;\n  string                  RangeArg;\n  float                   eps;\n  string                  MethodName;\n  shared_ptr<AnyParams>   IndexParams;\n  shared_ptr<AnyParams>   QueryTimeParams;\n\n  unsigned MinExp;\n  unsigned MaxExp;\n  unsigned MaxIter;\n  unsigned MaxRecDepth;\n  unsigned StepN;\n  float    FullFactor;\n  unsigned AddRestartQty;\n\n  ParseCommandLineForTuning(ac, av, \n                       LogFile,\n                       DistType,\n                       SpaceType,\n                       SpaceParams,\n                       ResFile,\n                       TestSetQty,\n                       DataFile,\n                       QueryFile,\n                       MaxCacheGSRelativeQty,\n                       MaxNumData,\n                       MaxNumQuery,\n                       knn,\n                       eps,\n                       RangeArg,\n                       MinExp,\n                       MaxExp,\n                       MaxIter,\n                       MaxRecDepth,\n                       StepN,\n                       FullFactor,\n                       AddRestartQty,\n                       MethodName,\n                       IndexParams,\n                       QueryTimeParams);\n\n  initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n  ToLower(DistType);\n\n  if (!SpaceParams) {\n    LOG(LIB_FATAL) << \"Failed to initialized space parameters!\";\n  }\n  if (!IndexParams) {\n    LOG(LIB_FATAL) << \"Failed to initialized index-time method parameters!\";\n  }\n  if (!QueryTimeParams) {\n    LOG(LIB_FATAL) << \"Failed to initialized query-time method parameters!\";\n  }\n\n  if (DIST_TYPE_INT == DistType) {\n    RunExper<int>(AddRestartQty, \n                  MethodName, *IndexParams, *QueryTimeParams,\n                  SpaceType,\n                  *SpaceParams,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  knn,\n                  eps,\n                  RangeArg,\n                  ResFile,\n                  MinExp,\n                  MaxExp,\n                  MaxIter,\n                  MaxRecDepth,\n                  StepN,\n                  FullFactor,\n                  MaxCacheGSRelativeQty\n                 );\n  } else if (DIST_TYPE_FLOAT == DistType) {\n    RunExper<float>(AddRestartQty, \n                  MethodName, *IndexParams, *QueryTimeParams,\n                  SpaceType,\n                  *SpaceParams,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  knn,\n                  eps,\n                  RangeArg,\n                  ResFile,\n                  MinExp,\n                  MaxExp,\n                  MaxIter,\n                  MaxRecDepth,\n                  StepN,\n                  FullFactor,\n                  MaxCacheGSRelativeQty\n                 );\n  } else if (DIST_TYPE_DOUBLE == DistType) {\n    RunExper<double>(AddRestartQty, \n                  MethodName, *IndexParams, *QueryTimeParams,\n                  SpaceType,\n                  *SpaceParams,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  knn,\n                  eps,\n                  RangeArg,\n                  ResFile,\n                  MinExp,\n                  MaxExp,\n                  MaxIter,\n                  MaxRecDepth,\n                  StepN,\n                  FullFactor,\n                  MaxCacheGSRelativeQty\n                 );\n  } else {\n    LOG(LIB_FATAL) << \"Unknown distance value type: \" << DistType;\n  }\n\n  timer.split();\n  LOG(LIB_INFO) << \"Time elapsed = \" << timer.elapsed() / 1e6;\n  LOG(LIB_INFO) << \"Finished at \" << LibGetCurrentTime();\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/src/tune_vptree.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{509D6427-87B7-40B5-82AC-40503FD213D8}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>tune_vptree</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">tune_vptree</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">tune_vptree</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">tune_vptree</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\tune_vptree\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:\\local\\boost_1_59_0\\lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"params_cmdline.cc\" />\n    <ClCompile Include=\"tune_vptree.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/tune_vptree.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <ClCompile Include=\"tune_vptree.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"params_cmdline.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{3EF538C7-CC7F-4CC0-AA2E-461C0B950388}</UniqueIdentifier>\n    </Filter>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/src/utils.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <cmath>\n#include <cstring>\n#include <cstdint>\n\n\n#ifdef _MSC_VER\n#include <time.h>\n#include <io.h>\n#ifndef F_OK\n#define F_OK 0\n#include <direct.h>       // for mkdir\n#define mkdir(name, mode) mkdir(name)\n#endif\n#else\n#include <unistd.h>\n#include <sys/time.h>\n#include <sys/stat.h>     // for mkdir\n#endif\n\n#include \"global.h\"       // for snprintf\n#include \"utils.h\"\n#include \"logging.h\"\n#include \"floatdiff.h\"\n\nnamespace similarity {\n\n\nconst char* GetFileName(const char* fullpath) {\n  for (int i = strlen(fullpath) - 1; i >= 0; --i) {\n    if (fullpath[i] == '\\\\' || fullpath[i] == '/') {\n      return fullpath + i + 1;\n    }\n  }\n  return fullpath;\n}\n\nbool DoesFileExist(const char *filename) {\n#ifdef _MSC_VER\n  return _access(filename, F_OK) == 0;\n#else\n  return access(filename, F_OK) == 0;\n#endif\n}\n\nvoid RStrip(char* str) {\n  int i = strlen(str) - 1;\n  while ((i >= 0) &&\n         (str[i] == '\\r' || str[i] == '\\n' || str[i] == ' ' || str[i] == '\\t'))\n    str[i--] = '\\0';\n}\n\ndouble Mean(const double* array, const unsigned size) {\n  double result = 0.0;\n  for (unsigned i = 0; i < size; ++i)\n    result += array[i];\n  return result / size;\n}\n\ndouble Variance(const double* array, const unsigned size, const double mean) {\n  double result = 0.0;\n  CHECK(size > 1);\n  for (unsigned i = 0; i < size; ++i) {\n    double diff = (mean - array[i]);\n    result += diff * diff; \n  }\n  return result / size;\n}\n\ndouble Variance(const double* array, const unsigned size) {\n  return Variance(array, size, Mean(array, size));\n}\n\ndouble StdDev(const double* array, const unsigned size) {\n  return sqrt(Variance(array, size));\n}\n\n// This macro does two things: (a) specialization (b) instantiation\n#define DECLARE_APPROX_EQUAL_INT(INT_TYPE) \\\ntemplate <> bool ApproxEqual<INT_TYPE>(const INT_TYPE& x, const INT_TYPE& y, unsigned) { return x == y; }\\\ntemplate bool ApproxEqual<INT_TYPE>(const INT_TYPE& x, const INT_TYPE& y, unsigned);\n\nDECLARE_APPROX_EQUAL_INT(uint64_t)\nDECLARE_APPROX_EQUAL_INT(int64_t)\nDECLARE_APPROX_EQUAL_INT(uint32_t)\nDECLARE_APPROX_EQUAL_INT(int32_t)\nDECLARE_APPROX_EQUAL_INT(uint16_t)\nDECLARE_APPROX_EQUAL_INT(int16_t)\nDECLARE_APPROX_EQUAL_INT(uint8_t)\nDECLARE_APPROX_EQUAL_INT(int8_t)\nDECLARE_APPROX_EQUAL_INT(char)\n\ntemplate <typename T>\nbool ApproxEqualULP(const T& x, const T& y, unsigned maxUlps = MAX_ULPS);\n\n// This macro does two things: (a) specialization (b) instantiation\n#define DECLARE_APPROX_EQUAL_ULP_FLOAT(FLOAT_TYPE) \\\ntemplate <> bool ApproxEqualULP<FLOAT_TYPE>(const FLOAT_TYPE& x, const FLOAT_TYPE& y, unsigned maxUlps) {\\\n  return FloatingPointDiff<FLOAT_TYPE>(x).AlmostEquals(FloatingPointDiff<FLOAT_TYPE>(y), maxUlps);\\\n};\\\ntemplate bool ApproxEqualULP<FLOAT_TYPE>(const FLOAT_TYPE& x, const FLOAT_TYPE& y, unsigned maxUlps);\n\nDECLARE_APPROX_EQUAL_ULP_FLOAT(float)\nDECLARE_APPROX_EQUAL_ULP_FLOAT(double)\n\n// This macro does two things: (a) specialization (b) instantiation\n#define DECLARE_APPROX_EQUAL_FLOAT(FLOAT_TYPE) \\\ntemplate <> bool ApproxEqual<FLOAT_TYPE>(const FLOAT_TYPE& x, const FLOAT_TYPE& y, unsigned maxUlps) {\\\n  const FLOAT_TYPE thresh = 2*numeric_limits<FLOAT_TYPE>::min();\\\n  return ApproxEqualULP<FLOAT_TYPE>(x, y, maxUlps) || (std::max(x,y) < thresh && std::min(x,y) > -thresh);\\\n};\\\ntemplate bool ApproxEqual<FLOAT_TYPE>(const FLOAT_TYPE& x, const FLOAT_TYPE& y, unsigned maxUlps);\n\nDECLARE_APPROX_EQUAL_FLOAT(float)\nDECLARE_APPROX_EQUAL_FLOAT(double)\n\n/*\n * This is just an approximate number of ULPs\n * Can't do better, because FloatingPointDiff doesn't support long double.\n */\ntemplate <typename T>\ninline bool ApproxEqualOther(const T& x, const T& y, unsigned maxUlps) {\n  // In C++ 11, std::abs is also defined for floating-point numbers\n  return std::abs(x - y) <= 0.75*maxUlps*std::numeric_limits<T>::epsilon()*\n                            std::min(std::abs(x), std::abs(y));\n}\n\ntemplate <> bool ApproxEqual<long double>(const long double& x, const long double& y, unsigned maxUlps) {\n  if (ISNAN(x) || ISNAN(y)) return false;\\\n  const long double thresh = 2*numeric_limits<long double>::min();\\\n  return ApproxEqualOther(x, y, maxUlps) || (std::max(x,y) < thresh && std::min(x,y) > -thresh);\\\n};\\\ntemplate bool ApproxEqual<long double>(const long double& x, const long double& y, unsigned maxUlps);\n\n// Not possible to use FloatingPointDiff for long double\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/NMSLIB/code\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc\niostream\n-\nmemory\n-\ncmath\n-\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nspace/space_leven.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_leven.h\nspace/space_sparse_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_lp.h\nspace/space_sparse_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar.h\nspace/space_sparse_vector_inter.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector_inter.h\nspace/space_sparse_scalar_fast.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar_fast.h\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector.h\nspace/space_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_scalar.h\nspace/space_sqfd.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sqfd.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/distcomp.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/permutation_utils.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/ztimer.h\npow.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/pow.h\n../test/testdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nmkl.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/mkl.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/object.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nstring\n-\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/permutation_utils.h\nalgorithm\n-\niostream\n-\nunordered_set\n-\nspace.h\ninclude/space.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\npermutation_type.h\ninclude/permutation_type.h\ndistcomp.h\ninclude/distcomp.h\nutils.h\ninclude/utils.h\n\ninclude/pow.h\ncmath\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_leven.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nstring.h\n-\ndistcomp.h\ninclude/space/distcomp.h\nspace/space_string.h\ninclude/space/space/space_string.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_scalar.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_lp.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sparse_scalar.h\nstring\n-\nmap\n-\ncmath\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_scalar_fast.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector_inter.h\ninclude/space/space_sparse_vector_inter.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nostream\n-\nfunctional\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector_inter.h\ncstdint\n-\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nlimits\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sqfd.h\nstring\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_string.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/bench_distfunc.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/bench_distfunc.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/bench_distfunc.dir/flags.make\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: test/CMakeFiles/bench_distfunc.dir/flags.make\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: test/bench_distfunc.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc > CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.i\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc -o CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.s\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.requires:\n.PHONY : test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.requires\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.provides: test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.provides.build\n.PHONY : test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.provides\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.provides.build: test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\n\n# Object files for target bench_distfunc\nbench_distfunc_OBJECTS = \\\n\"CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\"\n\n# External object files for target bench_distfunc\nbench_distfunc_EXTERNAL_OBJECTS =\n\nrelease/bench_distfunc: test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\nrelease/bench_distfunc: test/CMakeFiles/bench_distfunc.dir/build.make\nrelease/bench_distfunc: release/libNonMetricSpaceLib.a\nrelease/bench_distfunc: release/liblshkit.a\nrelease/bench_distfunc: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/bench_distfunc: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/bench_distfunc: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/bench_distfunc: test/CMakeFiles/bench_distfunc.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/bench_distfunc\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bench_distfunc.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/bench_distfunc.dir/build: release/bench_distfunc\n.PHONY : test/CMakeFiles/bench_distfunc.dir/build\n\ntest/CMakeFiles/bench_distfunc.dir/requires: test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o.requires\n.PHONY : test/CMakeFiles/bench_distfunc.dir/requires\n\ntest/CMakeFiles/bench_distfunc.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/bench_distfunc.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/bench_distfunc.dir/clean\n\ntest/CMakeFiles/bench_distfunc.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/bench_distfunc.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\"\n  \"../release/bench_distfunc.pdb\"\n  \"../release/bench_distfunc\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/bench_distfunc.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_distfunc.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/init.h\n include/knnquery.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/permutation_utils.h\n include/pow.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_leven.h\n include/space/space_lp.h\n include/space/space_scalar.h\n include/space/space_sparse_lp.h\n include/space/space_sparse_scalar.h\n include/space/space_sparse_scalar_fast.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/space/space_sqfd.h\n include/space/space_string.h\n include/space/space_vector.h\n include/utils.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: test/bench_distfunc.cc\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: test/testdataset.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/distcomp.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/global.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/idtype.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/init.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/knnquery.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/logging.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/object.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/permutation_type.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/permutation_utils.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/pow.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/query.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/rangequery.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/simdutils.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_leven.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_lp.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_scalar.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sparse_lp.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sparse_scalar.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sparse_scalar_fast.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sparse_vector.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sparse_vector_inter.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_sqfd.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_string.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/space/space_vector.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/utils.h\ntest/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o  -o ../release/bench_distfunc  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a -lgsl -lgslcblas -lm /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_distfunc.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 65\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nalgorithm\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/type_index.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/throw_exception.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nboost/config.hpp\n-\nboost/get_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nfunctional\n-\nboost/preprocessor/iterate.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function/detail/prologue.hpp\n-\nboost/function/function0.hpp\n-\nboost/function/function1.hpp\n-\nboost/function/function2.hpp\n-\nboost/function/function3.hpp\n-\nboost/function/function4.hpp\n-\nboost/function/function5.hpp\n-\nboost/function/function6.hpp\n-\nboost/function/function7.hpp\n-\nboost/function/function8.hpp\n-\nboost/function/function9.hpp\n-\nboost/function/function10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ncassert\n-\nalgorithm\n-\nboost/config/no_tr1/functional.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config.hpp\n-\nboost/function/function_base.hpp\n-\nboost/mem_fn.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nstdexcept\n-\nstring\n-\nmemory\n-\nnew\n-\nboost/config.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\nboost/integer.hpp\n-\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/has_trivial_destructor.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/composite_traits.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/ref.hpp\n-\nboost/mpl/if.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/utility/enable_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/utility/enable_if.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/mpl/bool.hpp\nboost/function_equal.hpp\n-\nboost/function/function_fwd.hpp\n-\ncstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nboost/function/detail/prologue.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nboost/move/utility_core.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nboost/bind/mem_fn.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/program_options/parsers.hpp\n-\nboost/program_options/variables_map.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/program_options/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nboost/program_options/config.hpp\n-\nboost/detail/workaround.hpp\n-\nstring\n-\nvector\n-\nlocale\n-\ncwchar\n-\nstdexcept\n-\nwchar.h\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nboost/program_options/detail/convert.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nstdexcept\n-\nvector\n-\nmap\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/function.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/any.hpp\n-\nstring\n-\nvector\n-\nset\n-\nmap\n-\nstdexcept\n-\niosfwd\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/detail/cmdline.hpp\n-\nboost/function/function1.hpp\n-\niosfwd\n-\nvector\n-\nutility\n-\nboost/program_options/detail/parsers.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/parsers.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nboost/program_options/config.hpp\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/any.hpp\n-\nboost/function/function1.hpp\n-\nboost/lexical_cast.hpp\n-\nstring\n-\nvector\n-\ntypeinfo\n-\nboost/program_options/detail/value_semantic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/value_semantic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nboost/program_options/config.hpp\n-\nboost/any.hpp\n-\nboost/shared_ptr.hpp\n-\nstring\n-\nmap\n-\nset\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nboost/config.hpp\n-\nboost/type_index/stl_type_index.hpp\n-\nboost/type_index/detail/stl_register_class.hpp\n-\nboost/type_index/ctti_type_index.hpp\n-\nboost/type_index/detail/ctti_register_class.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\nboost/type_index/detail/compile_time_type_info.hpp\n-\ncstring\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/bool.hpp\n-\nalgorithm\n-\nboost/preprocessor/facilities/expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nboost/type_index/ctti_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nboost/type_index/stl_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\ntypeinfo\n-\ncstring\n-\nstdexcept\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/core/demangle.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nboost/config.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nstring\n-\ncstring\n-\niosfwd\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_union.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc\nstring\n-\nfstream\n-\nboost/program_options.hpp\n-\nknnquery.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/knnquery.h\nknnqueue.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/knnqueue.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params.h\nprojection.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/projection.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/spacefactory.h\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/projection.h\ndistcomp.h\ninclude/distcomp.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nstring\n-\ncstddef\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/bench_projection.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/bench_projection.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/bench_projection.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/bench_projection.dir/flags.make\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: test/CMakeFiles/bench_projection.dir/flags.make\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: test/bench_projection.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bench_projection.dir/bench_projection.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bench_projection.dir/bench_projection.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bench_projection.dir/bench_projection.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc > CMakeFiles/bench_projection.dir/bench_projection.cc.i\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bench_projection.dir/bench_projection.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc -o CMakeFiles/bench_projection.dir/bench_projection.cc.s\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o.requires:\n.PHONY : test/CMakeFiles/bench_projection.dir/bench_projection.cc.o.requires\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o.provides: test/CMakeFiles/bench_projection.dir/bench_projection.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/bench_projection.cc.o.provides.build\n.PHONY : test/CMakeFiles/bench_projection.dir/bench_projection.cc.o.provides\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o.provides.build: test/CMakeFiles/bench_projection.dir/bench_projection.cc.o\n\n# Object files for target bench_projection\nbench_projection_OBJECTS = \\\n\"CMakeFiles/bench_projection.dir/bench_projection.cc.o\"\n\n# External object files for target bench_projection\nbench_projection_EXTERNAL_OBJECTS =\n\nrelease/bench_projection: test/CMakeFiles/bench_projection.dir/bench_projection.cc.o\nrelease/bench_projection: test/CMakeFiles/bench_projection.dir/build.make\nrelease/bench_projection: release/libNonMetricSpaceLib.a\nrelease/bench_projection: release/liblshkit.a\nrelease/bench_projection: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/bench_projection: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/bench_projection: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/bench_projection: test/CMakeFiles/bench_projection.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/bench_projection\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bench_projection.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/bench_projection.dir/build: release/bench_projection\n.PHONY : test/CMakeFiles/bench_projection.dir/build\n\ntest/CMakeFiles/bench_projection.dir/requires: test/CMakeFiles/bench_projection.dir/bench_projection.cc.o.requires\n.PHONY : test/CMakeFiles/bench_projection.dir/requires\n\ntest/CMakeFiles/bench_projection.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/bench_projection.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/bench_projection.dir/clean\n\ntest/CMakeFiles/bench_projection.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/bench_projection.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/bench_projection.dir/bench_projection.cc.o\"\n  \"../release/bench_projection.pdb\"\n  \"../release/bench_projection\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/bench_projection.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bench_projection.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/init.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/projection.h\n include/query.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/utils.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: test/bench_projection.cc\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/distcomp.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/global.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/idtype.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/init.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/knnquery.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/knnqueue.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/logging.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/object.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/params.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/permutation_type.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/projection.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/query.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/simdutils.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/space.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/space/space_bregman.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/space/space_lp.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/space/space_vector.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/spacefactory.h\ntest/CMakeFiles/bench_projection.dir/bench_projection.cc.o: include/utils.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/bench_projection.dir/bench_projection.cc.o  -o ../release/bench_projection  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a -lgsl -lgslcblas -lm /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bench_projection.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 66\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc\nstdlib.h\n-\nstring\n-\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nvector\n-\nstring\n-\nsstream\n-\niostream\n-\nfunctional\n-\nutility\n-\ntuple\n-\ncmath\n-\nexception\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/genrand_vect.h\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc\niostream\n-\nmemory\n-\ncmath\n-\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nspace/space_sparse_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_lp.h\nspace/space_sparse_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar.h\nspace/space_sparse_vector_inter.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector_inter.h\nspace/space_sparse_scalar_fast.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar_fast.h\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector.h\nspace/space_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_scalar.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/distcomp.h\ngenrand_vect.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/genrand_vect.h\npermutation_utils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/permutation_utils.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/ztimer.h\npow.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/pow.h\nmkl.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/mkl.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc\nmemory\n-\nstring\n-\nspace/space_leven.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_leven.h\ndistcomp_edist.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/distcomp_edist.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/logging.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/utils.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nlimits\n-\niostream\n-\neval_metrics.h\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/logging.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/utils.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nlimits\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc\nmemory\n-\nspace/space_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_lp.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc\nstring.h\n-\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/object.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\ndistcomp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/distcomp.h\nrandproj_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/randproj_util.h\ngenrand_vect.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/genrand_vect.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc\niostream\n-\nmemory\n-\ncmath\n-\nstring\n-\nvector\n-\nsstream\n-\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/spacefactory.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params.h\nspace/space_sparse_lp.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_lp.h\nspace/space_sparse_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar.h\nspace/space_sparse_vector_inter.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector_inter.h\nspace/space_sparse_scalar_fast.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_scalar_fast.h\nspace/space_sparse_vector.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_sparse_vector.h\nspace/space_scalar.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_scalar.h\nspace/space_word_embed.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space/space_word_embed.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc\nstring.h\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nspace_sqfd.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space_sqfd.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc\nsys/time.h\n-\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/logging.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/ztimer.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/object.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nstring\n-\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/permutation_utils.h\nalgorithm\n-\niostream\n-\nunordered_set\n-\nspace.h\ninclude/space.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\npermutation_type.h\ninclude/permutation_type.h\ndistcomp.h\ninclude/distcomp.h\nutils.h\ninclude/utils.h\n\ninclude/pow.h\ncmath\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/randproj_util.h\nvector\n-\ndistcomp.h\ninclude/distcomp.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_leven.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nstring.h\n-\ndistcomp.h\ninclude/space/distcomp.h\nspace/space_string.h\ninclude/space/space/space_string.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_scalar.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_lp.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sparse_scalar.h\nstring\n-\nmap\n-\ncmath\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_scalar_fast.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_sparse_vector_inter.h\ninclude/space/space_sparse_vector_inter.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nostream\n-\nfunctional\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_sparse_vector_inter.h\ncstdint\n-\nstring\n-\nmap\n-\nstdexcept\n-\nalgorithm\n-\nlimits\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\nspace_sparse_vector.h\ninclude/space/space_sparse_vector.h\n\ninclude/space/space_sqfd.h\nstring\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_string.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/space/space_word_embed.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/bunit.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_distfunc.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_editdist.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_eval.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_fp.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_lpnorm.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_object.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_proj.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_space_serial.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_sqfd.cc.o\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/test_timer.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/bunit.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/bunit.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/bunit.dir/flags.make\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/bunit.cc.o: test/bunit.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/bunit.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/bunit.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc\n\ntest/CMakeFiles/bunit.dir/bunit.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/bunit.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc > CMakeFiles/bunit.dir/bunit.cc.i\n\ntest/CMakeFiles/bunit.dir/bunit.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/bunit.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc -o CMakeFiles/bunit.dir/bunit.cc.s\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/bunit.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o.provides: test/CMakeFiles/bunit.dir/bunit.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/bunit.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/bunit.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o.provides.build: test/CMakeFiles/bunit.dir/bunit.cc.o\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/test_distfunc.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_distfunc.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_distfunc.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_distfunc.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc > CMakeFiles/bunit.dir/test_distfunc.cc.i\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_distfunc.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc -o CMakeFiles/bunit.dir/test_distfunc.cc.s\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_distfunc.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o.provides: test/CMakeFiles/bunit.dir/test_distfunc.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_distfunc.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_distfunc.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_distfunc.cc.o\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: test/test_editdist.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_editdist.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_editdist.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_editdist.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc > CMakeFiles/bunit.dir/test_editdist.cc.i\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_editdist.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc -o CMakeFiles/bunit.dir/test_editdist.cc.s\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_editdist.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o.provides: test/CMakeFiles/bunit.dir/test_editdist.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_editdist.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_editdist.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_editdist.cc.o\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: test/test_eval.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_eval.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_eval.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_eval.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc > CMakeFiles/bunit.dir/test_eval.cc.i\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_eval.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc -o CMakeFiles/bunit.dir/test_eval.cc.s\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_eval.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.o.provides: test/CMakeFiles/bunit.dir/test_eval.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_eval.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_eval.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_eval.cc.o\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: test/test_fp.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_5)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_fp.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_fp.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_fp.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc > CMakeFiles/bunit.dir/test_fp.cc.i\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_fp.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc -o CMakeFiles/bunit.dir/test_fp.cc.s\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_fp.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.o.provides: test/CMakeFiles/bunit.dir/test_fp.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_fp.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_fp.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_fp.cc.o\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: test/test_lpnorm.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_6)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_lpnorm.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_lpnorm.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_lpnorm.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc > CMakeFiles/bunit.dir/test_lpnorm.cc.i\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_lpnorm.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc -o CMakeFiles/bunit.dir/test_lpnorm.cc.s\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_lpnorm.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o.provides: test/CMakeFiles/bunit.dir/test_lpnorm.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_lpnorm.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_lpnorm.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_lpnorm.cc.o\n\ntest/CMakeFiles/bunit.dir/test_object.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_object.cc.o: test/test_object.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_7)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_object.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_object.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc\n\ntest/CMakeFiles/bunit.dir/test_object.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_object.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc > CMakeFiles/bunit.dir/test_object.cc.i\n\ntest/CMakeFiles/bunit.dir/test_object.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_object.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc -o CMakeFiles/bunit.dir/test_object.cc.s\n\ntest/CMakeFiles/bunit.dir/test_object.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_object.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_object.cc.o.provides: test/CMakeFiles/bunit.dir/test_object.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_object.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_object.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_object.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_object.cc.o\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: test/test_proj.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_8)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_proj.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_proj.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_proj.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc > CMakeFiles/bunit.dir/test_proj.cc.i\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_proj.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc -o CMakeFiles/bunit.dir/test_proj.cc.s\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_proj.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.o.provides: test/CMakeFiles/bunit.dir/test_proj.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_proj.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_proj.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_proj.cc.o\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: test/test_space_serial.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_9)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_space_serial.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_space_serial.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_space_serial.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc > CMakeFiles/bunit.dir/test_space_serial.cc.i\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_space_serial.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc -o CMakeFiles/bunit.dir/test_space_serial.cc.s\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_space_serial.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o.provides: test/CMakeFiles/bunit.dir/test_space_serial.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_space_serial.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_space_serial.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_space_serial.cc.o\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: test/test_sqfd.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_10)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_sqfd.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_sqfd.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_sqfd.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc > CMakeFiles/bunit.dir/test_sqfd.cc.i\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_sqfd.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc -o CMakeFiles/bunit.dir/test_sqfd.cc.s\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_sqfd.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o.provides: test/CMakeFiles/bunit.dir/test_sqfd.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_sqfd.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_sqfd.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_sqfd.cc.o\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: test/CMakeFiles/bunit.dir/flags.make\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: test/test_timer.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_11)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/bunit.dir/test_timer.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/bunit.dir/test_timer.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/bunit.dir/test_timer.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc > CMakeFiles/bunit.dir/test_timer.cc.i\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/bunit.dir/test_timer.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc -o CMakeFiles/bunit.dir/test_timer.cc.s\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.o.requires:\n.PHONY : test/CMakeFiles/bunit.dir/test_timer.cc.o.requires\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.o.provides: test/CMakeFiles/bunit.dir/test_timer.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_timer.cc.o.provides.build\n.PHONY : test/CMakeFiles/bunit.dir/test_timer.cc.o.provides\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.o.provides.build: test/CMakeFiles/bunit.dir/test_timer.cc.o\n\n# Object files for target bunit\nbunit_OBJECTS = \\\n\"CMakeFiles/bunit.dir/bunit.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_distfunc.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_editdist.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_eval.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_fp.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_lpnorm.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_object.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_proj.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_space_serial.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_sqfd.cc.o\" \\\n\"CMakeFiles/bunit.dir/test_timer.cc.o\"\n\n# External object files for target bunit\nbunit_EXTERNAL_OBJECTS =\n\nrelease/bunit: test/CMakeFiles/bunit.dir/bunit.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_distfunc.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_editdist.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_eval.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_fp.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_lpnorm.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_object.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_proj.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_space_serial.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_sqfd.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/test_timer.cc.o\nrelease/bunit: test/CMakeFiles/bunit.dir/build.make\nrelease/bunit: release/libNonMetricSpaceLib.a\nrelease/bunit: release/liblshkit.a\nrelease/bunit: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/bunit: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/bunit: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/bunit: test/CMakeFiles/bunit.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/bunit\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bunit.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/bunit.dir/build: release/bunit\n.PHONY : test/CMakeFiles/bunit.dir/build\n\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/bunit.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_distfunc.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_editdist.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_eval.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_fp.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_lpnorm.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_object.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_proj.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_space_serial.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_sqfd.cc.o.requires\ntest/CMakeFiles/bunit.dir/requires: test/CMakeFiles/bunit.dir/test_timer.cc.o.requires\n.PHONY : test/CMakeFiles/bunit.dir/requires\n\ntest/CMakeFiles/bunit.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/bunit.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/bunit.dir/clean\n\ntest/CMakeFiles/bunit.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/bunit.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/bunit.dir/bunit.cc.o\"\n  \"CMakeFiles/bunit.dir/test_distfunc.cc.o\"\n  \"CMakeFiles/bunit.dir/test_editdist.cc.o\"\n  \"CMakeFiles/bunit.dir/test_eval.cc.o\"\n  \"CMakeFiles/bunit.dir/test_fp.cc.o\"\n  \"CMakeFiles/bunit.dir/test_lpnorm.cc.o\"\n  \"CMakeFiles/bunit.dir/test_object.cc.o\"\n  \"CMakeFiles/bunit.dir/test_proj.cc.o\"\n  \"CMakeFiles/bunit.dir/test_space_serial.cc.o\"\n  \"CMakeFiles/bunit.dir/test_sqfd.cc.o\"\n  \"CMakeFiles/bunit.dir/test_timer.cc.o\"\n  \"../release/bunit.pdb\"\n  \"../release/bunit\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/bunit.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n include/init.h\n include/logging.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/genrand_vect.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_distfunc.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/knnquery.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/permutation_utils.h\n include/pow.h\n include/query.h\n include/rangequery.h\n include/simdutils.h\n include/space.h\n include/space/space_lp.h\n include/space/space_scalar.h\n include/space/space_sparse_lp.h\n include/space/space_sparse_scalar.h\n include/space/space_sparse_scalar_fast.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/space/space_vector.h\n include/utils.h\n include/ztimer.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_editdist.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_leven.h\n include/space/space_string.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_eval.cc\n include/eval_metrics.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/knnquery.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/space.h\n include/utils.h\n include/ztimer.h\ntest/CMakeFiles/bunit.dir/test_fp.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_fp.cc\n include/idtype.h\n include/logging.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_lpnorm.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_object.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_object.cc\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/genrand_vect.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_proj.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/randproj_util.h\n include/simdutils.h\n include/space.h\n include/space/space_sparse_vector.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_space_serial.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_scalar.h\n include/space/space_sparse_lp.h\n include/space/space_sparse_scalar.h\n include/space/space_sparse_scalar_fast.h\n include/space/space_sparse_vector.h\n include/space/space_sparse_vector_inter.h\n include/space/space_vector.h\n include/space/space_word_embed.h\n include/spacefactory.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_sqfd.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/logging.h\n include/object.h\n include/permutation_type.h\n include/simdutils.h\n include/space.h\n include/space/space_sqfd.h\n include/utils.h\ntest/CMakeFiles/bunit.dir/test_timer.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_timer.cc\n include/logging.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/bunit.dir/bunit.cc.o: test/bunit.cc\ntest/CMakeFiles/bunit.dir/bunit.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/bunit.cc.o: include/init.h\ntest/CMakeFiles/bunit.dir/bunit.cc.o: include/logging.h\n\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/genrand_vect.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/test_distfunc.cc\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: test/testdataset.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/knnquery.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/permutation_utils.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/pow.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/query.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/rangequery.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_lp.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_scalar.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_sparse_lp.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_sparse_scalar.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_sparse_scalar_fast.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_sparse_vector.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_sparse_vector_inter.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/space/space_vector.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/utils.h\ntest/CMakeFiles/bunit.dir/test_distfunc.cc.o: include/ztimer.h\n\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: test/test_editdist.cc\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: test/testdataset.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/space/space_leven.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/space/space_string.h\ntest/CMakeFiles/bunit.dir/test_editdist.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: test/test_eval.cc\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/eval_metrics.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/gold_standard.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/knnquery.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/query.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/query_creator.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/rangequery.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/utils.h\ntest/CMakeFiles/bunit.dir/test_eval.cc.o: include/ztimer.h\n\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: test/test_fp.cc\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_fp.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: test/test_lpnorm.cc\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: test/testdataset.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/space/space_lp.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/space/space_vector.h\ntest/CMakeFiles/bunit.dir/test_lpnorm.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_object.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_object.cc.o: test/test_object.cc\ntest/CMakeFiles/bunit.dir/test_object.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_object.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_object.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_object.cc.o: include/object.h\n\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: test/genrand_vect.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: test/test_proj.cc\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/randproj_util.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/space/space_sparse_vector.h\ntest/CMakeFiles/bunit.dir/test_proj.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: test/test_space_serial.cc\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: test/testdataset.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/params.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_bregman.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_lp.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_scalar.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_sparse_lp.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_sparse_scalar.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_sparse_scalar_fast.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_sparse_vector.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_sparse_vector_inter.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_vector.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/space/space_word_embed.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/spacefactory.h\ntest/CMakeFiles/bunit.dir/test_space_serial.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: test/test_sqfd.cc\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: test/testdataset.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/distcomp.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/global.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/idtype.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/object.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/permutation_type.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/simdutils.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/space.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/space/space_sqfd.h\ntest/CMakeFiles/bunit.dir/test_sqfd.cc.o: include/utils.h\n\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: test/bunit.h\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: test/test_timer.cc\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: include/logging.h\ntest/CMakeFiles/bunit.dir/test_timer.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/bunit.dir/bunit.cc.o CMakeFiles/bunit.dir/test_distfunc.cc.o CMakeFiles/bunit.dir/test_editdist.cc.o CMakeFiles/bunit.dir/test_eval.cc.o CMakeFiles/bunit.dir/test_fp.cc.o CMakeFiles/bunit.dir/test_lpnorm.cc.o CMakeFiles/bunit.dir/test_object.cc.o CMakeFiles/bunit.dir/test_proj.cc.o CMakeFiles/bunit.dir/test_space_serial.cc.o CMakeFiles/bunit.dir/test_sqfd.cc.o CMakeFiles/bunit.dir/test_timer.cc.o  -o ../release/bunit  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a -lgsl -lgslcblas -lm /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/bunit.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 67\nCMAKE_PROGRESS_2 = 68\nCMAKE_PROGRESS_3 = 69\nCMAKE_PROGRESS_4 = 70\nCMAKE_PROGRESS_5 = 71\nCMAKE_PROGRESS_6 = 72\nCMAKE_PROGRESS_7 = 73\nCMAKE_PROGRESS_8 = 74\nCMAKE_PROGRESS_9 = 75\nCMAKE_PROGRESS_10 = 76\nCMAKE_PROGRESS_11 = 77\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/progress.marks",
    "content": "86\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nalgorithm\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/type_index.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/throw_exception.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nboost/config.hpp\n-\nboost/get_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nfunctional\n-\nboost/preprocessor/iterate.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function/detail/prologue.hpp\n-\nboost/function/function0.hpp\n-\nboost/function/function1.hpp\n-\nboost/function/function2.hpp\n-\nboost/function/function3.hpp\n-\nboost/function/function4.hpp\n-\nboost/function/function5.hpp\n-\nboost/function/function6.hpp\n-\nboost/function/function7.hpp\n-\nboost/function/function8.hpp\n-\nboost/function/function9.hpp\n-\nboost/function/function10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ncassert\n-\nalgorithm\n-\nboost/config/no_tr1/functional.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config.hpp\n-\nboost/function/function_base.hpp\n-\nboost/mem_fn.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nstdexcept\n-\nstring\n-\nmemory\n-\nnew\n-\nboost/config.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\nboost/integer.hpp\n-\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/has_trivial_destructor.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/composite_traits.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/ref.hpp\n-\nboost/mpl/if.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/utility/enable_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/utility/enable_if.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/mpl/bool.hpp\nboost/function_equal.hpp\n-\nboost/function/function_fwd.hpp\n-\ncstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nboost/function/detail/prologue.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nboost/move/utility_core.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nboost/bind/mem_fn.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/program_options/parsers.hpp\n-\nboost/program_options/variables_map.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/program_options/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nboost/program_options/config.hpp\n-\nboost/detail/workaround.hpp\n-\nstring\n-\nvector\n-\nlocale\n-\ncwchar\n-\nstdexcept\n-\nwchar.h\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nboost/program_options/detail/convert.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nstdexcept\n-\nvector\n-\nmap\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/function.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/any.hpp\n-\nstring\n-\nvector\n-\nset\n-\nmap\n-\nstdexcept\n-\niosfwd\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/detail/cmdline.hpp\n-\nboost/function/function1.hpp\n-\niosfwd\n-\nvector\n-\nutility\n-\nboost/program_options/detail/parsers.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/parsers.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nboost/program_options/config.hpp\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/any.hpp\n-\nboost/function/function1.hpp\n-\nboost/lexical_cast.hpp\n-\nstring\n-\nvector\n-\ntypeinfo\n-\nboost/program_options/detail/value_semantic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/value_semantic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nboost/program_options/config.hpp\n-\nboost/any.hpp\n-\nboost/shared_ptr.hpp\n-\nstring\n-\nmap\n-\nset\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nboost/config.hpp\n-\nboost/type_index/stl_type_index.hpp\n-\nboost/type_index/detail/stl_register_class.hpp\n-\nboost/type_index/ctti_type_index.hpp\n-\nboost/type_index/detail/ctti_register_class.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\nboost/type_index/detail/compile_time_type_info.hpp\n-\ncstring\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/bool.hpp\n-\nalgorithm\n-\nboost/preprocessor/facilities/expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nboost/type_index/ctti_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nboost/type_index/stl_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\ntypeinfo\n-\ncstring\n-\nstdexcept\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/core/demangle.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nboost/config.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nstring\n-\ncstring\n-\niosfwd\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_union.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc\niostream\n-\nstring\n-\nboost/program_options.hpp\n-\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params.h\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\nreport_intr_dim.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/spacefactory.h\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/report_intr_dim.h\nstring\n-\nobject.h\ninclude/object.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/report_intr_dim.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/report_intr_dim.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/report_intr_dim.dir/flags.make\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: test/CMakeFiles/report_intr_dim.dir/flags.make\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: test/report_intr_dim.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc > CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.i\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc -o CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.s\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.requires:\n.PHONY : test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.requires\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.provides: test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.provides.build\n.PHONY : test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.provides\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.provides.build: test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\n\n# Object files for target report_intr_dim\nreport_intr_dim_OBJECTS = \\\n\"CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\"\n\n# External object files for target report_intr_dim\nreport_intr_dim_EXTERNAL_OBJECTS =\n\nrelease/report_intr_dim: test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\nrelease/report_intr_dim: test/CMakeFiles/report_intr_dim.dir/build.make\nrelease/report_intr_dim: release/libNonMetricSpaceLib.a\nrelease/report_intr_dim: release/liblshkit.a\nrelease/report_intr_dim: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/report_intr_dim: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/report_intr_dim: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/report_intr_dim: test/CMakeFiles/report_intr_dim.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/report_intr_dim\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/report_intr_dim.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/report_intr_dim.dir/build: release/report_intr_dim\n.PHONY : test/CMakeFiles/report_intr_dim.dir/build\n\ntest/CMakeFiles/report_intr_dim.dir/requires: test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o.requires\n.PHONY : test/CMakeFiles/report_intr_dim.dir/requires\n\ntest/CMakeFiles/report_intr_dim.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/report_intr_dim.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/report_intr_dim.dir/clean\n\ntest/CMakeFiles/report_intr_dim.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/report_intr_dim.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\"\n  \"../release/report_intr_dim.pdb\"\n  \"../release/report_intr_dim\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/report_intr_dim.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.cc\n include/distcomp.h\n include/distcomp_edist.h\n include/global.h\n include/idtype.h\n include/init.h\n include/logging.h\n include/object.h\n include/params.h\n include/permutation_type.h\n include/report_intr_dim.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/utils.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: test/report_intr_dim.cc\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/distcomp.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/global.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/idtype.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/init.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/logging.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/object.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/params.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/permutation_type.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/report_intr_dim.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/simdutils.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/space.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/space/space_bregman.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/space/space_lp.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/space/space_vector.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/spacefactory.h\ntest/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o: include/utils.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o  -o ../release/report_intr_dim  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -lgsl -lgslcblas -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/report_intr_dim.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 86\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\nalgorithm\n-\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/boost/config.hpp\nboost/type_index.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/decay.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/throw_exception.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\nboost/detail/workaround.hpp\n-\ncstddef\n-\nstdexcept\n-\nboost/assert.hpp\n-\nboost/swap.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/throw_exception.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nalgorithm\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\nboost/config.hpp\n-\nboost/get_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_vw.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_template.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\nboost/bind/mem_fn_cc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\nboost/core/checked_delete.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/msvc.hpp\n-\nboost/concept/detail/borland.hpp\n-\nboost/concept/detail/general.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\nboost/preprocessor/seq/for_each_i.hpp\n-\nboost/preprocessor/seq/enum.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\nboost/preprocessor/cat.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\nboost/config.hpp\n-\nboost/concept/detail/has_constraints.hpp\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\nboost/concept/assert.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/concept/detail/backward_compatibility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\nboost/concept/assert.hpp\n-\nboost/iterator.hpp\n-\nboost/type_traits/conversion_traits.hpp\n-\nutility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/concept/usage.hpp\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\nboost/config/user.hpp\n-\nboost/config/select_compiler_config.hpp\n-\nboost/config/select_stdlib_config.hpp\n-\nboost/config/select_platform_config.hpp\n-\nboost/config/suffix.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\nclimits\n-\ncwchar\n-\nlimits.h\n-\nwchar.h\n-\ncstring\n-\nerrno.h\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ncstring\n-\nerrno.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/common_edg.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/boost/config/compiler/common_edg.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ncmath\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ncomplex\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\nfunctional\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\nmemory\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\nunistd.h\n-\nsys/types.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ncstdlib\n-\nstdlib.h\n-\nboost/config/posix_features.hpp\n-\nsys/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\nversion.h\n-\ntime.h\n-\nsysLib.h\n-\ncstdint\n-\nioLib.h\n-\ntickLib.h\n-\nsys/time.h\n-\nsignal.h\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n_mingw.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\nboost/config/compiler/nvcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/nvcc.hpp\nboost/config/compiler/gcc_xml.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc_xml.hpp\nboost/config/compiler/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/cray.hpp\nboost/config/compiler/comeau.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/comeau.hpp\nboost/config/compiler/pathscale.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pathscale.hpp\nboost/config/compiler/intel.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/intel.hpp\nboost/config/compiler/clang.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/clang.hpp\nboost/config/compiler/digitalmars.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/digitalmars.hpp\nboost/config/compiler/gcc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/gcc.hpp\nboost/config/compiler/kai.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/kai.hpp\nboost/config/compiler/sgi_mipspro.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sgi_mipspro.hpp\nboost/config/compiler/compaq_cxx.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/compaq_cxx.hpp\nboost/config/compiler/greenhills.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/greenhills.hpp\nboost/config/compiler/codegear.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/codegear.hpp\nboost/config/compiler/borland.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/borland.hpp\nboost/config/compiler/metrowerks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/metrowerks.hpp\nboost/config/compiler/sunpro_cc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/sunpro_cc.hpp\nboost/config/compiler/hp_acc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/hp_acc.hpp\nboost/config/compiler/mpw.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/mpw.hpp\nboost/config/compiler/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/vacpp.hpp\nboost/config/compiler/pgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/pgi.hpp\nboost/config/compiler/visualc.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/compiler/visualc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\nboost/config/posix_features.hpp\n-\nboost/config/platform/linux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/linux.hpp\nboost/config/platform/bsd.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/bsd.hpp\nboost/config/platform/solaris.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/solaris.hpp\nboost/config/platform/irix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/irix.hpp\nboost/config/platform/hpux.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/hpux.hpp\nboost/config/platform/cygwin.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cygwin.hpp\nboost/config/platform/win32.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/win32.hpp\nboost/config/platform/beos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/beos.hpp\nboost/config/platform/macos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/macos.hpp\nboost/config/platform/aix.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/aix.hpp\nboost/config/platform/amigaos.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/amigaos.hpp\nboost/config/platform/qnxnto.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/qnxnto.hpp\nboost/config/platform/vxworks.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vxworks.hpp\nboost/config/platform/symbian.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/symbian.hpp\nboost/config/platform/cray.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/cray.hpp\nboost/config/platform/vms.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/platform/vms.hpp\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ncstddef\n-\nstddef.h\n-\nutility\n-\nboost/config/stdlib/stlport.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/stlport.hpp\nboost/config/stdlib/libcomo.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcomo.hpp\nboost/config/stdlib/roguewave.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/roguewave.hpp\nboost/config/stdlib/libcpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libcpp.hpp\nboost/config/stdlib/libstdcpp3.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/libstdcpp3.hpp\nboost/config/stdlib/sgi.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/sgi.hpp\nboost/config/stdlib/msl.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/msl.hpp\nboost/config/stdlib/vacpp.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/vacpp.hpp\nboost/config/stdlib/modena.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/modena.hpp\nboost/config/stdlib/dinkumware.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/boost/config/stdlib/dinkumware.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\nboost/config/no_tr1/utility.hpp\n-\nexception\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\nciso646\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\nboost/config/no_tr1/utility.hpp\n-\ncstddef\n-\nboost/config/posix_features.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\nboost/config/no_tr1/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\nboost/config/no_tr1/utility.hpp\n-\nunistd.h\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ncstddef\n-\nunistd.h\n-\nstdlib.h\n-\nstring.h\n-\nalgorithm\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\nunistd.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\nlimits.h\n-\ncstddef\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\nboost/config.hpp\n-\nboost/container/detail/std_fwd.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\nboost/config.hpp\n-\nstring\n-\ncxxabi.h\n-\ncstdlib\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\nboost/config.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\nutility\n-\nalgorithm\n-\ncstddef\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\nboost/config.hpp\n-\nboost/current_function.hpp\n-\nfunctional\n-\nboost/core/demangle.hpp\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\nboost/config.hpp\n-\ninttypes.h\n-\ninttypes.h\n-\nstdint.h\n-\ninttypes.h\n-\nboost/limits.hpp\n-\nlimits.h\n-\nstddef.h\n-\nlimits.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/boost/config.hpp\nstreambuf\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\nboost/predef/detail/endian_compat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\nboost/config.hpp\n-\nfeatures.h\n-\nbits/fenv.h\n-\n../include/fenv.h\n-\nstdio.h\n-\nfenv.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\nclimits\n-\nios\n-\nlimits\n-\nboost/config.hpp\n-\nboost/integer_traits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\nboost/core/no_exceptions_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\nboost/core/typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\nfunctional\n-\nboost/preprocessor/iterate.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function/detail/prologue.hpp\n-\nboost/function/function0.hpp\n-\nboost/function/function1.hpp\n-\nboost/function/function2.hpp\n-\nboost/function/function3.hpp\n-\nboost/function/function4.hpp\n-\nboost/function/function5.hpp\n-\nboost/function/function6.hpp\n-\nboost/function/function7.hpp\n-\nboost/function/function8.hpp\n-\nboost/function/function9.hpp\n-\nboost/function/function10.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\nboost/function/function_template.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ncassert\n-\nalgorithm\n-\nboost/config/no_tr1/functional.hpp\n-\nboost/throw_exception.hpp\n-\nboost/config.hpp\n-\nboost/function/function_base.hpp\n-\nboost/mem_fn.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\nboost/function/detail/maybe_include.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\nstdexcept\n-\nstring\n-\nmemory\n-\nnew\n-\nboost/config.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\nboost/integer.hpp\n-\nboost/type_traits/has_trivial_copy.hpp\n-\nboost/type_traits/has_trivial_destructor.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/composite_traits.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/ref.hpp\n-\nboost/mpl/if.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/utility/enable_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/utility/enable_if.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/boost/mpl/bool.hpp\nboost/function_equal.hpp\n-\nboost/function/function_fwd.hpp\n-\ncstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\nboost/function/detail/prologue.hpp\n-\nboost/detail/no_exceptions_support.hpp\n-\nboost/move/utility_core.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\nboost/config.hpp\n-\nboost/functional/hash/hash_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\nboost/integer_fwd.hpp\n-\nboost/integer_traits.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\nclimits\n-\ncstddef\n-\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nlimits.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\niterator\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\nboost/detail/workaround.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\nboost/iterator/iterator_categories.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/indirect_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\nboost/static_assert.hpp\n-\nboost/iterator.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\nboost/config.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/static_assert.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/detail/iterator.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/static_assert.hpp\n-\nboost/limits.hpp\n-\nboost/config.hpp\n-\nalgorithm\n-\nboost/concept/detail/concept_def.hpp\n-\nboost/concept/detail/concept_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\nboost/config.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/interoperable.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_categories.hpp\n-\nboost/iterator/detail/facade_iterator_category.hpp\n-\nboost/iterator/detail/enable_if.hpp\n-\nboost/static_assert.hpp\n-\nboost/utility/addressof.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/iterator/detail/config_def.hpp\n-\nboost/iterator/detail/config_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\nboost/detail/iterator.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\nboost/next_prior.hpp\n-\nboost/iterator.hpp\n-\nboost/iterator/iterator_adaptor.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\nboost/config.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/lexical_cast/bad_lexical_cast.hpp\n-\nboost/lexical_cast/try_lexical_convert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\nboost/config.hpp\n-\ntypeinfo\n-\nexception\n-\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/has_left_shift.hpp\n-\nboost/type_traits/has_right_shift.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/lcast_precision.hpp\n-\nboost/lexical_cast/detail/widest_char.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\narray\n-\nboost/array.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/lexical_cast/detail/converter_lexical_streams.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\nboost/config.hpp\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nstrstream\n-\nsstream\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/lexical_cast/detail/lcast_unsigned_converters.hpp\n-\nboost/lexical_cast/detail/inf_nan.hpp\n-\nistream\n-\narray\n-\nboost/array.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\nboost/integer.hpp\n-\nboost/detail/basic_pointerbuf.hpp\n-\nboost/noncopyable.hpp\n-\ncwchar\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\nboost/config.hpp\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/numeric/conversion/cast.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\nboost/config.hpp\n-\ncstddef\n-\ncstring\n-\nboost/limits.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/math/special_functions/sign.hpp\n-\nboost/math/special_functions/fpclassify.hpp\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\nboost/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\nboost/config.hpp\n-\nclimits\n-\ncstddef\n-\nstring\n-\ncstring\n-\ncstdio\n-\nboost/limits.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/static_assert.hpp\n-\nboost/detail/workaround.hpp\n-\nlocale\n-\nboost/lexical_cast/detail/lcast_char_constants.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\nboost/config.hpp\n-\nstring\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/lexical_cast/detail/is_character.hpp\n-\nboost/lexical_cast/detail/converter_numeric.hpp\n-\nboost/lexical_cast/detail/converter_lexical.hpp\n-\nboost/range/iterator_range_core.hpp\n-\nboost/container/container_fwd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\nboost/config.hpp\n-\nlimits\n-\nclimits\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\nboost/mpl/list.hpp\n-\nboost/mpl/contains.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/find_if.hpp\n-\nboost/mpl/remove_if.hpp\n-\nboost/mpl/vector.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/at.hpp\n-\nboost/mpl/size.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/static_assert.hpp\n-\nboost/assert.hpp\n-\nboost/math/tools/config.hpp\n-\nlimits\n-\nlimits.h\n-\nstdlib.h\n-\nstddef.h\n-\nmath.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ncstring\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/endian.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\nboost/config.hpp\n-\nboost/math/tools/promotion.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\nmath.h\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/limits.hpp\n-\nboost/math/tools/real_cast.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\nfloat.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\nboost/math/special_functions/detail/round_fwd.hpp\n-\nboost/math/tools/promotion.hpp\n-\nboost/math/policies/policy.hpp\n-\nboost/mpl/comparison.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/config/no_tr1/complex.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\nboost/math/tools/config.hpp\n-\nboost/math/special_functions/math_fwd.hpp\n-\nboost/math/special_functions/detail/fp_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\nboost/config.hpp\n-\nboost/cstdint.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nalgorithm\n-\nboost/config/no_tr1/cmath.hpp\n-\nclimits\n-\ncfloat\n-\nmath.h\n-\nlimits\n-\nboost/math/tools/user.hpp\n-\nfloat.h\n-\nboost/type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/type.hpp\nboost/non_type.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/boost/non_type.hpp\nboost/detail/fenv.hpp\n-\niostream\n-\niomanip\n-\ntypeinfo\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\nboost/math/tools/config.hpp\n-\nboost/type_traits/is_floating_point.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/or.hpp\n-\nboost/mpl/not.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\nboost/bind/mem_fn.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/type_traits.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\nboost/config.hpp\n-\nboost/move/detail/meta_utils_core.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/detail/workaround.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/assert.hpp\n-\nboost/static_assert.hpp\n-\ncstddef\n-\nmsl_utility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\nboost/config.hpp\n-\nboost/move/detail/config_begin.hpp\n-\nboost/move/core.hpp\n-\nboost/move/detail/meta_utils.hpp\n-\nboost/static_assert.hpp\n-\nutility\n-\nboost/move/detail/config_end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/O1_size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\nboost/mpl/advance_fwd.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/negate.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/advance_forward.hpp\n-\nboost/mpl/aux_/advance_backward.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\nboost/mpl/apply_fwd.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/has_apply.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/msvc_never_true.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/msvc_dtw.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_assert.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/arg_typedef.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gpu.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/pp_counter.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\nboost/mpl/if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\nboost/mpl/at_fwd.hpp\n-\nboost/mpl/aux_/at_impl.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\nboost/mpl/O1_size_fwd.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/has_size.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\nboost/mpl/aux_/config/adl.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\nboost/mpl/prior.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\nboost/mpl/next.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/largest_int.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/advance.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/numeric_op.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\nboost/mpl/aux_/config/overload_resolution.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/find.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\nboost/preprocessor/expr_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/preprocessor/enum_shifted_params.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\nboost/mpl/aux_/iter_apply.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/quote.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/aux_/config/has_apply.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/intel.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/msvc_is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\nboost/mpl/aux_/config/compiler.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/push_back.hpp\n-\nboost/mpl/push_front.hpp\n-\nboost/mpl/back_inserter.hpp\n-\nboost/mpl/front_inserter.hpp\n-\nboost/mpl/clear.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\nboost/mpl/apply.hpp\n-\nboost/mpl/deref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\nboost/mpl/identity.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/unrolling.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/is_placeholder.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/template_arity.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\nboost/mpl/aux_/preprocessor/params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_fwd.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/static_assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\nboost/mpl/aux_/config/nttp.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\nboost/mpl/numeric_cast.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/aux_/numeric_cast_utils.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/logical/and.hpp\n-\nboost/preprocessor/identity.hpp\n-\nboost/preprocessor/empty.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/filter_params.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/sub.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\nboost/preprocessor/seq/subseq.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/arithmetic/add.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/mpl/aux_/preprocessor/tuple.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/assert.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\nboost/mpl/next_prior.hpp\n-\nboost/mpl/deref.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/if.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/reverse_fold_impl_body.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\nboost/mpl/limits/unrolling.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/dec.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/enum_params_with_a_default.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/enum.hpp\n-\nboost/preprocessor/repeat.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/begin_end.hpp\n-\nboost/mpl/distance.hpp\n-\nboost/mpl/aux_/traits_lambda_spec.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/has_rebind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/range.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/int.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/arrays.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\nboost/mpl/push_back.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\nboost/mpl/begin_end_fwd.hpp\n-\nboost/mpl/aux_/begin_end_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\nboost/mpl/bind_fwd.hpp\n-\nboost/mpl/placeholders.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/arity_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/def_params_tail.hpp\n-\nboost/mpl/aux_/preprocessor/partial_spec_params.hpp\n-\nboost/mpl/aux_/preprocessor/ext_params.hpp\n-\nboost/mpl/aux_/preprocessor/repeat.hpp\n-\nboost/mpl/aux_/preprocessor/enum.hpp\n-\nboost/mpl/aux_/preprocessor/add.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/mpl/aux_/count_args.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/bind.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\nboost/mpl/bool_fwd.hpp\n-\nboost/mpl/integral_c_tag.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\nboost/mpl/clear_fwd.hpp\n-\nboost/mpl/aux_/clear_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\nboost/mpl/equal_to.hpp\n-\nboost/mpl/not_equal_to.hpp\n-\nboost/mpl/less.hpp\n-\nboost/mpl/greater.hpp\n-\nboost/mpl/less_equal.hpp\n-\nboost/mpl/greater_equal.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\nboost/mpl/contains_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/contains_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\nboost/mpl/aux_/msvc_type.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\nboost/mpl/distance_fwd.hpp\n-\nboost/mpl/iter_fold.hpp\n-\nboost/mpl/iterator_range.hpp\n-\nboost/mpl/long.hpp\n-\nboost/mpl/next.hpp\n-\nboost/mpl/tag.hpp\n-\nboost/mpl/apply_wrap.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\nboost/mpl/if.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\nboost/mpl/find_if.hpp\n-\nboost/mpl/same_as.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\nboost/mpl/aux_/find_if_pred.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/iter_fold_if.hpp\n-\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/aux_/fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\nboost/mpl/push_front.hpp\n-\nboost/mpl/inserter.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/gcc.hpp\n-\nboost/mpl/aux_/config/has_xxx.hpp\n-\nboost/mpl/aux_/config/msvc_typename.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/enum_trailing_params.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\nboost/mpl/aux_/value_wknd.hpp\n-\nboost/mpl/aux_/static_cast.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\nboost/mpl/int_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\nboost/mpl/integral_c_fwd.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\nboost/mpl/arg_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/type_wrapper.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/aux_/iter_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/logical.hpp\n-\nboost/mpl/always.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/pair.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/iter_fold_if_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\nboost/mpl/lambda_fwd.hpp\n-\nboost/mpl/bind.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/full_lambda.hpp\n-\nboost/mpl/aux_/lambda_no_ctps.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/lambda_arity_param.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/list.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\nboost/mpl/or.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\nboost/mpl/long_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\nboost/mpl/times.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/preprocessor/default_params.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\nboost/mpl/integral_c.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/config/integral.hpp\n-\nboost/mpl/aux_/config/static_constant.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\nboost/mpl/aux_/common_name_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\nboost/mpl/aux_/comparison_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/nested_type_wknd.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/logical_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\nboost/mpl/aux_/msvc_eti_base.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\nboost/mpl/next_prior.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\nboost/mpl/aux_/arity.hpp\n-\nboost/mpl/aux_/config/dtp.hpp\n-\nboost/mpl/aux_/nttp_decl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\nboost/mpl/push_back_fwd.hpp\n-\nboost/mpl/aux_/push_back_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\nboost/mpl/push_front_fwd.hpp\n-\nboost/mpl/aux_/push_front_impl.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_type.hpp\n-\nboost/mpl/aux_/config/bcc.hpp\n-\nboost/mpl/aux_/config/ttp.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/arity.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/ctps.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/cat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\nboost/mpl/fold.hpp\n-\nboost/mpl/reverse_fold.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/mpl/protect.hpp\n-\nboost/mpl/lambda.hpp\n-\nboost/mpl/apply.hpp\n-\nboost/mpl/aux_/inserter_algorithm.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\nboost/mpl/begin_end.hpp\n-\nboost/mpl/O1_size.hpp\n-\nboost/mpl/arg.hpp\n-\nboost/mpl/aux_/reverse_fold_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\nboost/mpl/not.hpp\n-\nboost/mpl/aux_/lambda_spec.hpp\n-\nboost/mpl/aux_/config/forwarding.hpp\n-\nboost/type_traits/is_same.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\nboost/mpl/sequence_tag_fwd.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/has_begin.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/is_msvc_eti_arg.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\nboost/mpl/aux_/yes_no.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\nboost/mpl/size_fwd.hpp\n-\nboost/mpl/sequence_tag.hpp\n-\nboost/mpl/aux_/size_impl.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/aux_/msvc_eti_base.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\nboost/mpl/size_t_fwd.hpp\n-\nboost/mpl/aux_/integral_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\nboost/mpl/eval_if.hpp\n-\nboost/mpl/void.hpp\n-\nboost/mpl/aux_/has_tag.hpp\n-\nboost/mpl/aux_/config/eti.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\nboost/mpl/aux_/arithmetic_op.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/na.hpp\n-\nboost/mpl/aux_/config/preprocessor.hpp\n-\nboost/preprocessor/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/stringize.hpp\n-\nboost/mpl/aux_/config/use_preprocessed.hpp\n-\nboost/mpl/aux_/include_preprocessed.hpp\n-\nboost/mpl/limits/vector.hpp\n-\nboost/mpl/aux_/sequence_wrapper.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\nboost/mpl/void_fwd.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/na_spec.hpp\n-\nboost/mpl/aux_/config/msvc.hpp\n-\nboost/mpl/aux_/config/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\nboost/mpl/aux_/adl_barrier.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\niterator\n-\nboost/mpl/and.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/integral_promotion.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/type_traits/has_plus.hpp\n-\nboost/type_traits/has_plus_assign.hpp\n-\nboost/type_traits/has_minus.hpp\n-\nboost/type_traits/has_minus_assign.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\nboost/core/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\nboost/numeric/conversion/detail/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/bounds.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\nboost/detail/workaround.hpp\n-\nboost/numeric/conversion/detail/old_numeric_cast.hpp\n-\nboost/type.hpp\n-\nboost/numeric/conversion/converter.hpp\n-\nboost/numeric/conversion/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/detail/workaround.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/detail/workaround.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\nboost/numeric/conversion/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/conversion_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/converter_policies.hpp\nboost/numeric/conversion/detail/converter.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/numeric/conversion/detail/converter.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntypeinfo\n-\nboost/config/no_tr1/cmath.hpp\n-\nboost/throw_exception.hpp\n-\nfunctional\n-\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/type_traits/is_arithmetic.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/if.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/numeric/conversion/detail/is_subranged.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/is_subranged.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\nfunctional\n-\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/conversion_traits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/conversion_traits.hpp\nboost/numeric/conversion/bounds.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/bounds.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/int_float_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/int_float_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/mpl/int.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/int.hpp\nboost/mpl/multiplies.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/multiplies.hpp\nboost/mpl/less.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/less.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/type_traits/is_same.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_same.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/numeric/conversion/detail/int_float_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/int_float_mixture.hpp\nboost/numeric/conversion/detail/sign_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/numeric/conversion/detail/udt_builtin_mixture.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\nboost/type_traits/remove_cv.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/remove_cv.hpp\nboost/mpl/if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/if.hpp\nboost/mpl/eval_if.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/eval_if.hpp\nboost/mpl/equal_to.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/equal_to.hpp\nboost/mpl/not.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/not.hpp\nboost/mpl/and.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/and.hpp\nboost/mpl/bool.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/bool.hpp\nboost/mpl/identity.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/identity.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n-\nboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\nboost/config.hpp\n-\ncassert\n-\ntypeinfo\n-\nboost/type.hpp\n-\nboost/limits.hpp\n-\nboost/numeric/conversion/converter_policies.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\nboost/config.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/config.hpp\nboost/limits.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/limits.hpp\nboost/numeric/conversion/sign_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/sign_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\nboost/type_traits/is_arithmetic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/type_traits/is_arithmetic.hpp\nboost/numeric/conversion/udt_builtin_mixture_enum.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\nboost/numeric/conversion/detail/meta.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/numeric/conversion/detail/meta.hpp\nboost/mpl/integral_c.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/boost/mpl/integral_c.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\nboost/numeric/conversion/converter_policies.hpp\n-\nboost/cstdint.hpp\n-\nboost/numeric/conversion/detail/numeric_cast_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\nboost/predef/language.h\n-\nboost/predef/architecture.h\n-\nboost/predef/compiler.h\n-\nboost/predef/library.h\n-\nboost/predef/os.h\n-\nboost/predef/other.h\n-\nboost/predef/platform.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\nboost/predef/architecture/alpha.h\n-\nboost/predef/architecture/arm.h\n-\nboost/predef/architecture/blackfin.h\n-\nboost/predef/architecture/convex.h\n-\nboost/predef/architecture/ia64.h\n-\nboost/predef/architecture/m68k.h\n-\nboost/predef/architecture/mips.h\n-\nboost/predef/architecture/parisc.h\n-\nboost/predef/architecture/ppc.h\n-\nboost/predef/architecture/pyramid.h\n-\nboost/predef/architecture/rs6k.h\n-\nboost/predef/architecture/sparc.h\n-\nboost/predef/architecture/superh.h\n-\nboost/predef/architecture/sys370.h\n-\nboost/predef/architecture/sys390.h\n-\nboost/predef/architecture/x86.h\n-\nboost/predef/architecture/z.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\nboost/predef/architecture/x86/32.h\n-\nboost/predef/architecture/x86/64.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/architecture/x86.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\nboost/predef/compiler/borland.h\n-\nboost/predef/compiler/clang.h\n-\nboost/predef/compiler/comeau.h\n-\nboost/predef/compiler/compaq.h\n-\nboost/predef/compiler/diab.h\n-\nboost/predef/compiler/digitalmars.h\n-\nboost/predef/compiler/dignus.h\n-\nboost/predef/compiler/edg.h\n-\nboost/predef/compiler/ekopath.h\n-\nboost/predef/compiler/gcc_xml.h\n-\nboost/predef/compiler/gcc.h\n-\nboost/predef/compiler/greenhills.h\n-\nboost/predef/compiler/hp_acc.h\n-\nboost/predef/compiler/iar.h\n-\nboost/predef/compiler/ibm.h\n-\nboost/predef/compiler/intel.h\n-\nboost/predef/compiler/kai.h\n-\nboost/predef/compiler/llvm.h\n-\nboost/predef/compiler/metaware.h\n-\nboost/predef/compiler/metrowerks.h\n-\nboost/predef/compiler/microtec.h\n-\nboost/predef/compiler/mpw.h\n-\nboost/predef/compiler/palm.h\n-\nboost/predef/compiler/pgi.h\n-\nboost/predef/compiler/sgi_mipspro.h\n-\nboost/predef/compiler/sunpro.h\n-\nboost/predef/compiler/tendra.h\n-\nboost/predef/compiler/visualc.h\n-\nboost/predef/compiler/watcom.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\nboost/predef/compiler/clang.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/comp_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ncassert\n-\nassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\nboost/predef/language/stdc.h\n-\nboost/predef/language/stdcpp.h\n-\nboost/predef/language/objc.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\nboost/predef/library/c.h\n-\nboost/predef/library/std.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/library/c/uc.h\n-\nboost/predef/library/c/vms.h\n-\nboost/predef/library/c/zos.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\nboost/predef/detail/_cassert.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/_prefix.h\n-\nstddef.h\n-\ncstddef\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\nboost/predef/library/c/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/library/std/cxx.h\n-\nboost/predef/library/std/dinkumware.h\n-\nboost/predef/library/std/libcomo.h\n-\nboost/predef/library/std/modena.h\n-\nboost/predef/library/std/msl.h\n-\nboost/predef/library/std/roguewave.h\n-\nboost/predef/library/std/sgi.h\n-\nboost/predef/library/std/stdcpp3.h\n-\nboost/predef/library/std/stlport.h\n-\nboost/predef/library/std/vacpp.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\nboost/predef/detail/_exception.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\nboost/predef/library/std/_prefix.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\nboost/predef/os/aix.h\n-\nboost/predef/os/amigaos.h\n-\nboost/predef/os/android.h\n-\nboost/predef/os/beos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/cygwin.h\n-\nboost/predef/os/haiku.h\n-\nboost/predef/os/hpux.h\n-\nboost/predef/os/irix.h\n-\nboost/predef/os/ios.h\n-\nboost/predef/os/linux.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/os400.h\n-\nboost/predef/os/qnxnto.h\n-\nboost/predef/os/solaris.h\n-\nboost/predef/os/unix.h\n-\nboost/predef/os/vms.h\n-\nboost/predef/os/windows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\nboost/predef/os/macos.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/bsd/bsdi.h\n-\nboost/predef/os/bsd/dragonfly.h\n-\nboost/predef/os/bsd/free.h\n-\nboost/predef/os/bsd/open.h\n-\nboost/predef/os/bsd/net.h\n-\nsys/param.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\nboost/predef/os/bsd.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\nboost/predef/os/ios.h\n-\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/detail/os_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\nboost/predef/other/endian.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/library/c/gnu.h\n-\nboost/predef/os/macos.h\n-\nboost/predef/os/bsd.h\n-\nboost/predef/os/android.h\n-\nendian.h\n-\nmachine/endian.h\n-\nmachine/endian.h\n-\nsys/endian.h\n-\nboost/predef/architecture.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\nboost/predef/platform/mingw.h\n-\nboost/predef/platform/windows_desktop.h\n-\nboost/predef/platform/windows_store.h\n-\nboost/predef/platform/windows_phone.h\n-\nboost/predef/platform/windows_runtime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\n_mingw.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\nboost/predef/version_number.h\n-\nboost/predef/make.h\n-\nboost/predef/os/windows.h\n-\nboost/predef/detail/platform_detected.h\n-\nboost/predef/detail/test.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/comparison/less_equal.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\nboost/preprocessor/arithmetic/detail/div_base.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\nboost/preprocessor/array/data.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\nboost/preprocessor/punctuation/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/not.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\nboost/preprocessor/control/detail/edg/while.hpp\n-\nboost/preprocessor/control/detail/msvc/while.hpp\n-\nboost/preprocessor/control/detail/dmc/while.hpp\n-\nboost/preprocessor/control/detail/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/dmc/auto_rec.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\nboost/preprocessor/control/iif.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\nboost/preprocessor/repetition/enum.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\nboost/preprocessor/repetition/enum_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\nboost/preprocessor/repetition/enum_params_with_a_default.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\nboost/preprocessor/repetition/enum_shifted_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\nboost/preprocessor/control/expr_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/facilities/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/is_empty_variadic.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/detail/split.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/is_begin_parens.hpp\n-\nboost/preprocessor/facilities/detail/is_empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\nboost/preprocessor/facilities/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\nboost/preprocessor/iteration/iterate.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/array/elem.hpp\n-\nboost/preprocessor/array/size.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/slot.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/detail/is_binary.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\nboost/preprocessor/list/fold_left.hpp\n-\nboost/preprocessor/list/reverse.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_left.hpp\n-\nboost/preprocessor/list/detail/dmc/fold_left.hpp\n-\nboost/preprocessor/list/detail/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/list/detail/edg/fold_right.hpp\n-\nboost/preprocessor/list/detail/fold_right.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/adt.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_left.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/list/fold_right.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/bitand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/logical/compl.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/punctuation/comma.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/detail/is_begin_parens.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\nboost/preprocessor/control/expr_iif.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/logical/bool.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/intercept.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/punctuation/comma_if.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/detail/edg/for.hpp\n-\nboost/preprocessor/repetition/detail/msvc/for.hpp\n-\nboost/preprocessor/repetition/detail/dmc/for.hpp\n-\nboost/preprocessor/repetition/detail/for.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\nboost/preprocessor/arithmetic/add.hpp\n-\nboost/preprocessor/arithmetic/sub.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/while.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/repetition/repeat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/eat.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/control/if.hpp\n-\nboost/preprocessor/debug/error.hpp\n-\nboost/preprocessor/detail/auto_rec.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\nboost/preprocessor/arithmetic/dec.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/repetition/for.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/seq/detail/split.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/elem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/first_n.hpp\n-\nboost/preprocessor/seq/rest_n.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/seq/fold_left.hpp\n-\nboost/preprocessor/seq/seq.hpp\n-\nboost/preprocessor/tuple/elem.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/slot/detail/def.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/control/iif.hpp\n-\nboost/preprocessor/facilities/is_1.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/rem.hpp\n-\nboost/preprocessor/variadic/elem.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/expand.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/detail/is_single_return.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\nboost/preprocessor/facilities/overload.hpp\n-\nboost/preprocessor/tuple/size.hpp\n-\nboost/preprocessor/variadic/size.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/config/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/program_options/parsers.hpp\n-\nboost/program_options/variables_map.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/program_options/version.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\nboost/config.hpp\n-\nboost/version.hpp\n-\nboost/config/auto_link.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/cmdline.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/options_description.hpp\n-\nboost/program_options/positional_options.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/function.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\nboost/program_options/config.hpp\n-\nboost/detail/workaround.hpp\n-\nstring\n-\nvector\n-\nlocale\n-\ncwchar\n-\nstdexcept\n-\nwchar.h\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\nboost/program_options/detail/convert.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\nboost/throw_exception.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nstdexcept\n-\nvector\n-\nmap\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\nboost/program_options/config.hpp\n-\nstring\n-\nvector\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/program_options/value_semantic.hpp\n-\nboost/function.hpp\n-\nboost/shared_ptr.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/any.hpp\n-\nstring\n-\nvector\n-\nset\n-\nmap\n-\nstdexcept\n-\niosfwd\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/option.hpp\n-\nboost/program_options/detail/cmdline.hpp\n-\nboost/function/function1.hpp\n-\niosfwd\n-\nvector\n-\nutility\n-\nboost/program_options/detail/parsers.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/parsers.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\nboost/program_options/config.hpp\n-\nvector\n-\nstring\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\nboost/program_options/config.hpp\n-\nboost/program_options/errors.hpp\n-\nboost/any.hpp\n-\nboost/function/function1.hpp\n-\nboost/lexical_cast.hpp\n-\nstring\n-\nvector\n-\ntypeinfo\n-\nboost/program_options/detail/value_semantic.hpp\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/boost/program_options/detail/value_semantic.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\nboost/program_options/config.hpp\n-\nboost/any.hpp\n-\nboost/shared_ptr.hpp\n-\nstring\n-\nmap\n-\nset\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\nboost/config.hpp\n-\nboost/range/concepts.hpp\n-\niterator\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\nboost/range/config.hpp\n-\nboost/range/detail/begin.hpp\n-\nboost/range/iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\nboost/concept_check.hpp\n-\nboost/iterator/iterator_concepts.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/value_type.hpp\n-\nboost/range/detail/misc_concept.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\nboost/range/config.hpp\n-\nboost/range/detail/sfinae.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/int.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/detail/common.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\nboost/config.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/mpl/has_xxx.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/mpl/and.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\nboost/range/config.hpp\n-\nboost/range/detail/common.hpp\n-\nboost/type_traits/is_same.hpp\n-\ncstddef\n-\nstring.h\n-\nwchar.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\nboost/concept_check.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\nboost/config.hpp\n-\nboost/range/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\nboost/range/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/difference_type.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\nboost/range/config.hpp\n-\nboost/range/detail/end.hpp\n-\nboost/range/detail/implementation_help.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size.hpp\n-\nboost/range/distance.hpp\n-\nboost/range/empty.hpp\n-\nboost/range/rbegin.hpp\n-\nboost/range/rend.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\nboost/mpl/bool.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/has_xxx.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/mutable_iterator.hpp\n-\nboost/range/const_iterator.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/remove_const.hpp\n-\nboost/mpl/eval_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/assert.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\nboost/iterator/iterator_facade.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/not.hpp\n-\nboost/mpl/or.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/range/functions.hpp\n-\nboost/range/iterator.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/has_range_iterator.hpp\n-\nboost/range/algorithm/equal.hpp\n-\nboost/range/detail/safe_bool.hpp\n-\nboost/utility/enable_if.hpp\n-\niterator\n-\nalgorithm\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/range_fwd.hpp\n-\nboost/range/detail/extract_optional_type.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\ncstddef\n-\nutility\n-\nboost/range/detail/msvc_has_iterator_workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\nboost/range/end.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\nboost/range/begin.hpp\n-\nboost/range/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/iterator/reverse_iterator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\nboost/range/config.hpp\n-\nboost/range/begin.hpp\n-\nboost/range/end.hpp\n-\nboost/range/size_type.hpp\n-\nboost/range/detail/has_member_size.hpp\n-\nboost/assert.hpp\n-\nboost/cstdint.hpp\n-\nboost/utility.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\nboost/range/config.hpp\n-\nboost/range/difference_type.hpp\n-\nboost/range/concepts.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/type_traits/make_unsigned.hpp\n-\nboost/type_traits/remove_const.hpp\n-\ncstddef\n-\nutility\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\nboost/range/config.hpp\n-\nboost/range/iterator.hpp\n-\nboost/iterator/iterator_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\nboost/core/ref.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\nboost/smart_ptr/shared_ptr.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\nexception\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lwm_nop.hpp\n-\nboost/smart_ptr/detail/lwm_pthreads.hpp\n-\nboost/smart_ptr/detail/lwm_win32_cs.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\nboost/predef.h\n-\nwindows.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/lightweight_mutex.hpp\n-\nboost/type_traits/type_with_alignment.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nnew\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/bad_weak_ptr.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/sp_counted_impl.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nfunctional\n-\nnew\n-\nboost/utility/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_pt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_clang.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_sync.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_w32.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_aix.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_nt.hpp\n-\nboost/smart_ptr/detail/sp_counted_base_spin.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\nmachine/sys/inline.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\nboost/detail/sp_typeinfo.hpp\n-\nbuiltins.h\n-\nsys/atomic_op.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/cstdint.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/assert.hpp\n-\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\nboost/detail/sp_typeinfo.hpp\n-\ninttypes.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\nboost/detail/sp_typeinfo.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\nboost/detail/sp_typeinfo.hpp\n-\natomic\n-\ncstdint\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\nboost/detail/sp_typeinfo.hpp\n-\nlimits.h\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/detail/sp_typeinfo.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\nboost/config.hpp\n-\nboost/checked_delete.hpp\n-\nboost/smart_ptr/detail/sp_counted_base.hpp\n-\nboost/smart_ptr/detail/quick_allocator.hpp\n-\nmemory\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\nboost/config.hpp\n-\nwindows.h\n-\nintrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\nboost/config.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/sp_has_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_std_atomic.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_gcc_arm.hpp\n-\nboost/smart_ptr/detail/spinlock_sync.hpp\n-\nboost/smart_ptr/detail/spinlock_w32.hpp\n-\nboost/smart_ptr/detail/spinlock_pt.hpp\n-\nboost/smart_ptr/detail/spinlock_nt.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\nboost/assert.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\nboost/config.hpp\n-\nboost/smart_ptr/detail/spinlock.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\npthread.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\natomic\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\nboost/smart_ptr/detail/yield_k.hpp\n-\nia64intrin.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\nboost/smart_ptr/detail/sp_interlocked.hpp\n-\nboost/smart_ptr/detail/yield_k.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\nboost/config.hpp\n-\nboost/predef.h\n-\nthread\n-\nwindows.h\n-\nsched.h\n-\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\nboost/config.hpp\n-\nboost/config/no_tr1/memory.hpp\n-\nboost/assert.hpp\n-\nboost/checked_delete.hpp\n-\nboost/throw_exception.hpp\n-\nboost/smart_ptr/detail/shared_count.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/smart_ptr/detail/sp_convertible.hpp\n-\nboost/smart_ptr/detail/sp_nullptr_t.hpp\n-\nboost/smart_ptr/detail/spinlock_pool.hpp\n-\nalgorithm\n-\nfunctional\n-\ntypeinfo\n-\ncstddef\n-\niosfwd\n-\nostream\n-\nboost/smart_ptr/detail/operator_bool.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\nboost/core/swap.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nexception\n-\nboost/exception/exception.hpp\n-\nboost/current_function.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\nboost/config.hpp\n-\nboost/type_index/stl_type_index.hpp\n-\nboost/type_index/detail/stl_register_class.hpp\n-\nboost/type_index/ctti_type_index.hpp\n-\nboost/type_index/detail/ctti_register_class.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\nboost/type_index/detail/compile_time_type_info.hpp\n-\ncstring\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/mpl/bool.hpp\n-\nalgorithm\n-\nboost/preprocessor/facilities/expand.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\nboost/type_index/ctti_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\nboost/type_index/stl_type_index.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\nboost/type_index/type_index_facade.hpp\n-\ntypeinfo\n-\ncstring\n-\nstdexcept\n-\nboost/static_assert.hpp\n-\nboost/throw_exception.hpp\n-\nboost/core/demangle.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/if.hpp\n-\nboost/mpl/or.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/make_signed.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\nboost/config.hpp\n-\nboost/functional/hash_fwd.hpp\n-\nstring\n-\ncstring\n-\niosfwd\n-\nostream\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\nboost/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/size_t_trait_def.hpp\n-\nboost/type_traits/detail/size_t_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_union.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\nboost/type_traits/is_convertible.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ncstddef\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\nboost/config.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_base_of.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_fundamental.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_pointer.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\nboost/config.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\nboost/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/preprocessor/iterate.hpp\n-\nboost/preprocessor/enum_params.hpp\n-\nboost/preprocessor/comma_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\nboost/mpl/size_t.hpp\n-\ncstddef\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\nboost/mpl/int.hpp\n-\nboost/mpl/aux_/template_arity_fwd.hpp\n-\nboost/mpl/aux_/preprocessor/params.hpp\n-\nboost/mpl/aux_/config/lambda.hpp\n-\nboost/mpl/aux_/config/overload_resolution.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\nboost/type_traits/detail/template_arity_spec.hpp\n-\nboost/mpl/aux_/lambda_support.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\nboost/config.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/add_pointer.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\nboost/type_traits/detail/has_binary_operator.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/is_copy_constructible.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/ice_eq.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\nboost/config.hpp\n-\nboost/mpl/bool.hpp\n-\nboost/mpl/integral_c.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\nboost/config.hpp\n-\nboost/mpl/eval_if.hpp\n-\nboost/mpl/identity.hpp\n-\nboost/type_traits/integral_constant.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_same.hpp\n-\nalgorithm\n-\ntype_traits.h\n-\nmsl_utility\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_function.hpp\n-\ncstddef\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/is_void.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/is_polymorphic.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_float.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\nboost/type_traits/config.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/config.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_abstract.hpp\n-\nboost/type_traits/add_lvalue_reference.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/is_base_and_derived.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/utility/declval.hpp\n-\nboost/noncopyable.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/add_reference.hpp\n-\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_convertible.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/is_function.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/is_union.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/is_function_ptr_helper.hpp\n-\nboost/type_traits/detail/is_function_ptr_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\nboost/type_traits/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/is_member_function_pointer.hpp\n-\nboost/type_traits/is_reference.hpp\n-\nboost/type_traits/is_array.hpp\n-\nboost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n-\nboost/type_traits/detail/yes_no_type.hpp\n-\nboost/type_traits/detail/false_result.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_void.hpp\n-\nboost/type_traits/is_scalar.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/is_class.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/is_lvalue_reference.hpp\n-\nboost/type_traits/is_rvalue_reference.hpp\n-\nboost/type_traits/ice.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\nboost/type_traits/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\nboost/type_traits/is_arithmetic.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/is_member_pointer.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/config.hpp\n-\nboost/type_traits/intrinsics.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/type_traits/remove_bounds.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\nboost/mpl/if.hpp\n-\nboost/type_traits/is_integral.hpp\n-\nboost/type_traits/is_signed.hpp\n-\nboost/type_traits/is_unsigned.hpp\n-\nboost/type_traits/is_enum.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_const.hpp\n-\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/add_const.hpp\n-\nboost/type_traits/add_volatile.hpp\n-\nboost/type_traits/detail/ice_or.hpp\n-\nboost/type_traits/detail/ice_and.hpp\n-\nboost/type_traits/detail/ice_not.hpp\n-\nboost/static_assert.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\nboost/config.hpp\n-\ncstddef\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\nboost/type_traits/is_volatile.hpp\n-\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\nboost/type_traits/detail/cv_traits_impl.hpp\n-\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\ncstddef\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/is_pointer.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\nboost/config.hpp\n-\nboost/detail/workaround.hpp\n-\nboost/type_traits/detail/type_trait_def.hpp\n-\nboost/type_traits/detail/type_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\nboost/mpl/if.hpp\n-\nboost/preprocessor/list/for_each_i.hpp\n-\nboost/preprocessor/tuple/to_list.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/list/transform.hpp\n-\nboost/preprocessor/list/append.hpp\n-\nboost/type_traits/alignment_of.hpp\n-\nboost/type_traits/is_pod.hpp\n-\nboost/static_assert.hpp\n-\nboost/config.hpp\n-\nboost/type_traits/detail/bool_trait_def.hpp\n-\ncstddef\n-\nboost/type_traits/detail/bool_trait_undef.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\nboost/utility/addressof.hpp\n-\nboost/utility/base_from_member.hpp\n-\nboost/utility/binary.hpp\n-\nboost/utility/enable_if.hpp\n-\nboost/utility/identity_type.hpp\n-\nboost/checked_delete.hpp\n-\nboost/next_prior.hpp\n-\nboost/noncopyable.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\nboost/core/addressof.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\nboost/config.hpp\n-\nboost/preprocessor/arithmetic/inc.hpp\n-\nboost/preprocessor/repetition/enum_binary_params.hpp\n-\nboost/preprocessor/repetition/enum_params.hpp\n-\nboost/preprocessor/repetition/repeat_from_to.hpp\n-\nboost/type_traits/is_same.hpp\n-\nboost/type_traits/remove_cv.hpp\n-\nboost/type_traits/remove_reference.hpp\n-\nboost/utility/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\nboost/preprocessor/control/deduce_d.hpp\n-\nboost/preprocessor/facilities/identity.hpp\n-\nboost/preprocessor/cat.hpp\n-\nboost/preprocessor/seq/cat.hpp\n-\nboost/preprocessor/seq/transform.hpp\n-\nboost/preprocessor/arithmetic/mod.hpp\n-\nboost/preprocessor/seq/size.hpp\n-\nboost/preprocessor/facilities/empty.hpp\n-\nboost/preprocessor/control/while.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\nboost/config.hpp\n-\nboost/type_traits/add_rvalue_reference.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\nboost/core/enable_if.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\nboost/type_traits/function_traits.hpp\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc\nstdio.h\n-\nstdlib.h\n-\nstring.h\n-\ntime.h\n-\ncmath\n-\nmemory\n-\nlimits\n-\nstring\n-\nsstream\n-\nvector\n-\nfstream\n-\nmap\n-\nboost/program_options.hpp\n-\ncluster_util.h\n-\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/global.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/utils.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/ztimer.h\nexperiments.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/experiments.h\ntune.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/tune.h\nmethod/vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/method/vptree.h\nmethod/proj_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/method/proj_vptree.h\nmethod/perm_bin_vptree.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/method/perm_bin_vptree.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/logging.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/spacefactory.h\ncluster_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/cluster_util.h\nparams_def.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params_def.h\nmeta_analysis.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/meta_analysis.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params.h\n\ninclude/cluster_util.h\nspace.h\n-\nidtype.h\n-\nobject.h\n-\nvector\n-\nstring\n-\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/eval_results.h\niostream\n-\nalgorithm\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nstdexcept\n-\nunordered_map\n-\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nindex.h\ninclude/index.h\nknnqueue.h\ninclude/knnqueue.h\neval_metrics.h\ninclude/eval_metrics.h\n\ninclude/experimentconf.h\nstring.h\n-\nstring\n-\nunordered_map\n-\nvector\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\n\ninclude/experiments.h\nerrno.h\n-\nstring.h\n-\niostream\n-\nvector\n-\nset\n-\nsstream\n-\nstring\n-\nutility\n-\nthread\n-\nmutex\n-\nmemory\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nmemory.h\ninclude/memory.h\nztimer.h\ninclude/ztimer.h\nutils.h\ninclude/utils.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\nlogging.h\ninclude/logging.h\nmethodfactory.h\ninclude/methodfactory.h\neval_results.h\ninclude/eval_results.h\nmeta_analysis.h\ninclude/meta_analysis.h\nquery_creator.h\ninclude/query_creator.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/index.h\nstdio.h\n-\nstring\n-\nvector\n-\nparams.h\ninclude/params.h\nobject.h\ninclude/object.h\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/memory.h\n\ninclude/meta_analysis.h\nvector\n-\nstring\n-\nutils.h\ninclude/utils.h\n\ninclude/method/perm_bin_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_bit_hamming.h\ninclude/method/space/space_bit_hamming.h\npermutation_utils.h\ninclude/method/permutation_utils.h\nvptree.h\ninclude/method/vptree.h\nparams.h\ninclude/method/params.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/proj_vptree.h\nvector\n-\nindex.h\ninclude/method/index.h\nspace/space_lp.h\ninclude/method/space/space_lp.h\nspace/space_vector.h\ninclude/method/space/space_vector.h\nmethod/vptree.h\ninclude/method/method/vptree.h\nparams.h\ninclude/method/params.h\nprojection.h\ninclude/method/projection.h\nsearchoracle.h\ninclude/method/searchoracle.h\n\ninclude/method/vptree.h\nstring\n-\nvector\n-\nmemory\n-\nindex.h\ninclude/method/index.h\nparams.h\ninclude/method/params.h\nported_boost_progress.h\ninclude/method/ported_boost_progress.h\n\ninclude/methodfactory.h\nstring\n-\niostream\n-\nindex.h\ninclude/index.h\nspace.h\ninclude/space.h\nlogging.h\ninclude/logging.h\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/params_def.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/permutation_utils.h\nalgorithm\n-\niostream\n-\nunordered_set\n-\nspace.h\ninclude/space.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\npermutation_type.h\ninclude/permutation_type.h\ndistcomp.h\ninclude/distcomp.h\nutils.h\ninclude/utils.h\n\ninclude/ported_boost_progress.h\niostream\n-\nstring\n-\n\ninclude/pow.h\ncmath\n-\n\ninclude/projection.h\ndistcomp.h\ninclude/distcomp.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nstring\n-\ncstddef\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/searchoracle.h\nstring\n-\ncmath\n-\nvector\n-\nsstream\n-\nobject.h\ninclude/object.h\nspace.h\ninclude/space.h\npow.h\ninclude/pow.h\nparams.h\ninclude/params.h\nexperimentconf.h\ninclude/experimentconf.h\nlogging.h\ninclude/logging.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bit_hamming.h\nstring\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/tune.h\nvector\n-\nmap\n-\nutility\n-\nmemory\n-\nstring\n-\nsstream\n-\nthread\n-\nexperimentconf.h\ninclude/experimentconf.h\nsearchoracle.h\ninclude/searchoracle.h\nlogging.h\ninclude/logging.h\nztimer.h\ninclude/ztimer.h\nexperiments.h\ninclude/experiments.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/test_clust.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/test_clust.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/test_clust.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/test_clust.dir/flags.make\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: test/CMakeFiles/test_clust.dir/flags.make\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: test/test_clust.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/test_clust.dir/test_clust.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_clust.dir/test_clust.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/test_clust.dir/test_clust.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc > CMakeFiles/test_clust.dir/test_clust.cc.i\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/test_clust.dir/test_clust.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc -o CMakeFiles/test_clust.dir/test_clust.cc.s\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o.requires:\n.PHONY : test/CMakeFiles/test_clust.dir/test_clust.cc.o.requires\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o.provides: test/CMakeFiles/test_clust.dir/test_clust.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/test_clust.cc.o.provides.build\n.PHONY : test/CMakeFiles/test_clust.dir/test_clust.cc.o.provides\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o.provides.build: test/CMakeFiles/test_clust.dir/test_clust.cc.o\n\n# Object files for target test_clust\ntest_clust_OBJECTS = \\\n\"CMakeFiles/test_clust.dir/test_clust.cc.o\"\n\n# External object files for target test_clust\ntest_clust_EXTERNAL_OBJECTS =\n\nrelease/test_clust: test/CMakeFiles/test_clust.dir/test_clust.cc.o\nrelease/test_clust: test/CMakeFiles/test_clust.dir/build.make\nrelease/test_clust: release/libNonMetricSpaceLib.a\nrelease/test_clust: release/liblshkit.a\nrelease/test_clust: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/test_clust: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/test_clust: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/test_clust: test/CMakeFiles/test_clust.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/test_clust\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test_clust.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/test_clust.dir/build: release/test_clust\n.PHONY : test/CMakeFiles/test_clust.dir/build\n\ntest/CMakeFiles/test_clust.dir/requires: test/CMakeFiles/test_clust.dir/test_clust.cc.o.requires\n.PHONY : test/CMakeFiles/test_clust.dir/requires\n\ntest/CMakeFiles/test_clust.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/test_clust.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/test_clust.dir/clean\n\ntest/CMakeFiles/test_clust.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/test_clust.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/test_clust.dir/test_clust.cc.o\"\n  \"../release/test_clust.pdb\"\n  \"../release/test_clust\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/test_clust.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\n /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_clust.cc\n include/cluster_util.h\n include/distcomp.h\n include/distcomp_edist.h\n include/eval_metrics.h\n include/eval_results.h\n include/experimentconf.h\n include/experiments.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/index.h\n include/init.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/memory.h\n include/meta_analysis.h\n include/method/perm_bin_vptree.h\n include/method/proj_vptree.h\n include/method/vptree.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/params_def.h\n include/permutation_type.h\n include/permutation_utils.h\n include/ported_boost_progress.h\n include/pow.h\n include/projection.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/searchoracle.h\n include/simdutils.h\n include/space.h\n include/space/space_bit_hamming.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/tune.h\n include/utils.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/any.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/array.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/assert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_cc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_template.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/bind/mem_fn_vw.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/checked_delete.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/assert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/backward_compatibility.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/borland.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/concept_undef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/general.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/has_constraints.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/detail/msvc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept/usage.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/concept_check.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/auto_link.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/borland.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/clang.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/codegear.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/comeau.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/common_edg.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/compaq_cxx.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/cray.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/digitalmars.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/gcc_xml.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/greenhills.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/hp_acc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/intel.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/kai.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/metrowerks.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/mpw.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/nvcc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pathscale.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/pgi.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sgi_mipspro.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/sunpro_cc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/vacpp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/compiler/visualc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/cmath.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/complex.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/functional.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/memory.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/no_tr1/utility.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/aix.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/amigaos.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/beos.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/bsd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cray.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/cygwin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/hpux.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/irix.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/linux.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/macos.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/qnxnto.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/solaris.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/symbian.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vms.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/vxworks.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/platform/win32.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/posix_features.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_compiler_config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_platform_config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/select_stdlib_config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/dinkumware.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcomo.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libcpp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/libstdcpp3.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/modena.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/msl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/roguewave.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/sgi.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/stlport.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/stdlib/vacpp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/suffix.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/config/user.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/container_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/container/detail/std_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/addressof.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/checked_delete.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/demangle.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/enable_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/no_exceptions_support.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/noncopyable.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/ref.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/swap.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/core/typeinfo.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/cstdint.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/current_function.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/basic_pointerbuf.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/endian.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/fenv.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/indirect_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/lcast_precision.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/no_exceptions_support.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/sp_typeinfo.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/detail/workaround.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/exception/exception.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/maybe_include.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/detail/prologue.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function0.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function1.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function10.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function2.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function3.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function4.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function5.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function6.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function7.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function8.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function9.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_base.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function/function_template.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/function_equal.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash/hash_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/functional/hash_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/get_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/integer_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/config_undef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/enable_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/detail/facade_iterator_category.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/interoperable.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_adaptor.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_categories.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_concepts.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_facade.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/iterator_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/iterator/reverse_iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/bad_lexical_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_lexical_streams.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/converter_numeric.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/inf_nan.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/is_character.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_char_constants.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/detail/widest_char.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/lexical_cast/try_lexical_convert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/limits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/policies/policy.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/fp_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/detail/round_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/fpclassify.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/math_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/special_functions/sign.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/promotion.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/real_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/math/tools/user.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mem_fn.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/core.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_begin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/config_end.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/meta_utils_core.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/type_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/detail/workaround.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/move/utility_core.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/O1_size_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/advance_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/always.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/and.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/apply_wrap.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/arg_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/assert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/at_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/O1_size_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/adl_barrier.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_backward.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/advance_forward.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arg_typedef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arithmetic_op.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/arity_spec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/at_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/begin_end_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/clear_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/common_name_wknd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/comparison_op.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/adl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/arrays.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bcc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/bind.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/compiler.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ctps.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/dtp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/eti.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/forwarding.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gcc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/gpu.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_apply.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/has_xxx.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/integral.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/intel.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/lambda.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/msvc_typename.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/nttp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/overload_resolution.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/pp_counter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/preprocessor.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/static_constant.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/ttp.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/use_preprocessed.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/config/workaround.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/contains_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/count_args.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/find_if_pred.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/fold_impl_body.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/full_lambda.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_apply.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_begin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_rebind.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_tag.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/has_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/include_preprocessed.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/inserter_algorithm.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/integral_wrapper.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/is_msvc_eti_arg.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_apply.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_if_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/iter_fold_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_arity_param.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_no_ctps.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_spec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/lambda_support.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/largest_int.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/logical_op.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_dtw.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_eti_base.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_is_class.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_never_true.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/msvc_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_assert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/na_spec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nested_type_wknd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/nttp_decl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_cast_utils.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/numeric_op.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/add.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/default_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/ext_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/filter_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/range.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/repeat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/sub.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/preprocessor/tuple.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_back_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/push_front_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/reverse_fold_impl_body.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/sequence_wrapper.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/size_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/static_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/template_arity_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/traits_lambda_spec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/type_wrapper.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/value_wknd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/aux_/yes_no.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/back_inserter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/begin_end_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bind_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/bool_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/clear_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/comparison.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/contains_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/deref.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/distance_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/equal_to.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/eval_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/find_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/fold.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/front_inserter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/greater_equal.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/has_xxx.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/identity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/inserter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/int_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/integral_c_tag.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/is_placeholder.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iter_fold_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/iterator_range.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/lambda_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/less_equal.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/arity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/list.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/unrolling.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/limits/vector.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/list.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/logical.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/long_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/multiplies.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/negate.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/next_prior.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/not_equal_to.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/numeric_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/or.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/pair.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/placeholders.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/prior.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/protect.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_back_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/push_front_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/quote.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/remove_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/reverse_fold.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/same_as.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/sequence_tag_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/size_t_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/tag.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/times.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/vector.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/mpl/void_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/next_prior.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/non_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/noncopyable.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/bounds.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/conversion_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/converter_policies.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/bounds.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/conversion_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/converter.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/int_float_mixture.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/is_subranged.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/meta.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/numeric_cast_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/old_numeric_cast.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/sign_mixture.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/detail/udt_builtin_mixture.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/int_float_mixture_enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/numeric_cast_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/sign_mixture_enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/numeric/conversion/udt_builtin_mixture_enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/alpha.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/arm.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/blackfin.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/convex.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ia64.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/m68k.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/mips.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/parisc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/ppc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/pyramid.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/rs6k.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sparc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/superh.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys370.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/sys390.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/32.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/x86/64.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/architecture/z.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/borland.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/clang.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/comeau.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/compaq.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/diab.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/digitalmars.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/dignus.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/edg.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ekopath.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/gcc_xml.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/greenhills.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/hp_acc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/iar.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/ibm.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/intel.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/kai.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/llvm.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metaware.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/metrowerks.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/microtec.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/mpw.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/palm.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/pgi.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sgi_mipspro.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/sunpro.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/tendra.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/visualc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/compiler/watcom.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_cassert.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/_exception.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/comp_detected.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/endian_compat.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/os_detected.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/platform_detected.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/detail/test.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/objc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/language/stdcpp.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/_prefix.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/gnu.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/uc.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/vms.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/c/zos.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/_prefix.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/cxx.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/dinkumware.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/libcomo.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/modena.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/msl.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/roguewave.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/sgi.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stdcpp3.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/stlport.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/library/std/vacpp.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/make.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/aix.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/amigaos.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/android.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/beos.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/bsdi.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/dragonfly.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/free.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/net.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/bsd/open.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/cygwin.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/haiku.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/hpux.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/ios.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/irix.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/linux.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/macos.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/os400.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/qnxnto.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/solaris.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/unix.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/vms.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/os/windows.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/other/endian.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/mingw.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_desktop.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_phone.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_runtime.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/platform/windows_store.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/predef/version_number.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/add.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/dec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/detail/div_base.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/inc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/mod.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/arithmetic/sub.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/data.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/elem.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/array/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/cat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comma_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/comparison/less_equal.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/config/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/deduce_d.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/dmc/while.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/edg/while.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/msvc/while.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/detail/while.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/expr_iif.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/iif.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/control/while.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/debug/error.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/dec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/auto_rec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/check.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/dmc/auto_rec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/is_binary.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/detail/split.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/empty.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_params_with_a_default.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/enum_shifted_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/expr_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/detail/is_empty.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/empty.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/expand.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/identity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/intercept.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_1.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/is_empty_variadic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/facilities/overload.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/identity.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/inc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iterate.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/iteration/iterate.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/adt.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/append.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/dmc/fold_left.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_left.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/edg/fold_right.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_left.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/detail/fold_right.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_left.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/fold_right.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/for_each_i.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/reverse.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/list/transform.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/and.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bitand.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/bool.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/compl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/logical/not.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/comma_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/punctuation/is_begin_parens.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repeat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/dmc/for.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/edg/for.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/for.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/detail/msvc/for.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_binary_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_shifted_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/enum_trailing_params.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/for.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/repetition/repeat_from_to.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/cat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/detail/split.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/elem.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/first_n.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/fold_left.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/for_each_i.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/rest_n.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/seq.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/subseq.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/seq/transform.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/detail/def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/slot/slot.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/stringize.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/detail/is_single_return.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/eat.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/elem.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/rem.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/tuple/to_list.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/elem.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/preprocessor/variadic/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/cmdline.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/cmdline.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/convert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/parsers.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/detail/value_semantic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/errors.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/option.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/options_description.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/parsers.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/positional_options.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/value_semantic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/variables_map.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/program_options/version.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/algorithm/equal.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/begin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/concepts.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/const_iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/begin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/common.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/end.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/extract_optional_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/has_member_size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/implementation_help.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/misc_concept.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/msvc_has_iterator_workaround.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/safe_bool.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/detail/sfinae.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/difference_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/distance.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/empty.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/end.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/functions.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/has_range_iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/iterator_range_core.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/mutable_iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/range_fwd.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rbegin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/rend.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/reverse_iterator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/size_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/range/value_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/ref.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/shared_ptr.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/bad_weak_ptr.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lightweight_mutex.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_nop.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_pthreads.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/lwm_win32_cs.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/operator_bool.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/quick_allocator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/shared_count.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_convertible.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_nt.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_pt.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_counted_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_has_sync.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_interlocked.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/sp_nullptr_t.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_nt.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pool.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_pt.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_sync.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/spinlock_w32.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/detail/yield_k.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/smart_ptr/shared_ptr.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/static_assert.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/swap.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/throw_exception.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/ctti_type_index.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/compile_time_type_info.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/ctti_register_class.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/detail/stl_register_class.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/stl_type_index.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_index/type_index_facade.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_const.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_lvalue_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_rvalue_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/add_volatile.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/alignment_of.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/composite_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/config.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/conversion_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/decay.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/bool_trait_undef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/cv_traits_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/false_result.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/has_binary_operator.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_and.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_eq.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_not.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/ice_or.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_helper.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_function_ptr_tester.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/size_t_trait_undef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/template_arity_spec.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_def.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/type_trait_undef.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/detail/yes_no_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/function_traits.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_left_shift.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_minus_assign.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_plus_assign.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_right_shift.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_copy.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/has_trivial_destructor.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/ice.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_constant.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/integral_promotion.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/intrinsics.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_abstract.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_arithmetic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_array.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_and_derived.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_base_of.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_class.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_const.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_convertible.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_copy_constructible.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_enum.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_float.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_floating_point.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_function.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_fundamental.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_integral.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_lvalue_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_function_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_member_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pod.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_polymorphic.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_rvalue_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_same.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_scalar.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_signed.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_union.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_unsigned.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_void.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/is_volatile.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_signed.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/make_unsigned.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_bounds.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_const.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_cv.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_pointer.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/remove_reference.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/type_traits/type_with_alignment.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/addressof.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/base_from_member.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/binary.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/declval.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/enable_if.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/utility/identity_type.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include/boost/version.hpp\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: test/test_clust.cc\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/cluster_util.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/distcomp.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/eval_metrics.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/eval_results.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/experimentconf.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/experiments.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/global.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/gold_standard.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/idtype.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/index.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/init.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/knnquery.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/knnqueue.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/logging.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/memory.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/meta_analysis.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/method/perm_bin_vptree.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/method/proj_vptree.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/method/vptree.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/methodfactory.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/object.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/params.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/params_def.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/permutation_type.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/permutation_utils.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/ported_boost_progress.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/pow.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/projection.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/query.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/query_creator.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/rangequery.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/searchoracle.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/simdutils.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/space.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/space/space_bit_hamming.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/space/space_bregman.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/space/space_lp.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/space/space_vector.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/spacefactory.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/tune.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/utils.h\ntest/CMakeFiles/test_clust.dir/test_clust.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/test_clust.dir/test_clust.cc.o  -o ../release/test_clust  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a -lgsl -lgslcblas -lm /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_clust.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 87\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nvector\n-\nstring\n-\nsstream\n-\niostream\n-\nfunctional\n-\nutility\n-\ntuple\n-\ncmath\n-\nexception\n-\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc\nstdio.h\n-\nstdlib.h\n-\nstring.h\n-\ntime.h\n-\ncmath\n-\nlimits\n-\nstring\n-\nsstream\n-\nvector\n-\nfstream\n-\nset\n-\ninit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/init.h\nglobal.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/global.h\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/utils.h\nmemory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/memory.h\nztimer.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/ztimer.h\nexperiments.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/experiments.h\nexperimentconf.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/experimentconf.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nspacefactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/spacefactory.h\nlogging.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/logging.h\nmethodfactory.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/methodfactory.h\nmeta_analysis.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/meta_analysis.h\nparams.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params.h\ntest_integr_util.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr_util.h\ntestdataset.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr_util.h\nstring\n-\nsstream\n-\nvector\n-\nalgorithm\n-\nmap\n-\nutils.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/utils.h\nbunit.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\nreport.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report.h\nparams_def.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params_def.h\nparams_cmdline.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/params_cmdline.h\nreport_intr_dim.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/report_intr_dim.h\n\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\nobject.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/object.h\nspace.h\n/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/space.h\nstring\n-\n\ninclude/distcomp.h\niostream\n-\ncmath\n-\nalgorithm\n-\ncstdlib\n-\nlimits\n-\npermutation_type.h\ninclude/permutation_type.h\nsimdutils.h\ninclude/simdutils.h\ndistcomp_edist.h\ninclude/distcomp_edist.h\n\ninclude/distcomp_edist.h\n\ninclude/eval_metrics.h\nvector\n-\nalgorithm\n-\niostream\n-\nunordered_set\n-\nobject.h\ninclude/object.h\ngold_standard.h\ninclude/gold_standard.h\n\ninclude/eval_results.h\niostream\n-\nalgorithm\n-\nvector\n-\nunordered_set\n-\nmemory\n-\nstdexcept\n-\nunordered_map\n-\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\nobject.h\ninclude/object.h\nindex.h\ninclude/index.h\nknnqueue.h\ninclude/knnqueue.h\neval_metrics.h\ninclude/eval_metrics.h\n\ninclude/experimentconf.h\nstring.h\n-\nstring\n-\nunordered_map\n-\nvector\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nspace.h\ninclude/space.h\n\ninclude/experiments.h\nerrno.h\n-\nstring.h\n-\niostream\n-\nvector\n-\nset\n-\nsstream\n-\nstring\n-\nutility\n-\nthread\n-\nmutex\n-\nmemory\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nmemory.h\ninclude/memory.h\nztimer.h\ninclude/ztimer.h\nutils.h\ninclude/utils.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\nindex.h\ninclude/index.h\nlogging.h\ninclude/logging.h\nmethodfactory.h\ninclude/methodfactory.h\neval_results.h\ninclude/eval_results.h\nmeta_analysis.h\ninclude/meta_analysis.h\nquery_creator.h\ninclude/query_creator.h\n\ninclude/global.h\nstddef.h\n-\nstdio.h\n-\nstdlib.h\n-\n\ninclude/gold_standard.h\nvector\n-\nalgorithm\n-\niostream\n-\nmemory\n-\ncmath\n-\nthread\n-\nobject.h\ninclude/object.h\nquery_creator.h\ninclude/query_creator.h\nspace.h\ninclude/space.h\nutils.h\ninclude/utils.h\nztimer.h\ninclude/ztimer.h\n\ninclude/idtype.h\ncstdint\n-\n\ninclude/index.h\nstdio.h\n-\nstring\n-\nvector\n-\nparams.h\ninclude/params.h\nobject.h\ninclude/object.h\n\ninclude/init.h\nlogging.h\ninclude/logging.h\n\ninclude/knnquery.h\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/knnqueue.h\nqueue\n-\nvector\n-\nutility\n-\nlimits\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\n\ninclude/logging.h\nfstream\n-\niostream\n-\nstring\n-\nsstream\n-\nstdexcept\n-\n\ninclude/memory.h\n\ninclude/meta_analysis.h\nvector\n-\nstring\n-\nutils.h\ninclude/utils.h\n\ninclude/methodfactory.h\nstring\n-\niostream\n-\nindex.h\ninclude/index.h\nspace.h\ninclude/space.h\nlogging.h\ninclude/logging.h\n\ninclude/object.h\ncstring\n-\ncctype\n-\nstring\n-\nsstream\n-\nvector\n-\nlist\n-\nutility\n-\nlimits\n-\nalgorithm\n-\ncstdint\n-\nglobal.h\ninclude/global.h\nidtype.h\ninclude/idtype.h\nlogging.h\ninclude/logging.h\n\ninclude/params.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\n\ninclude/params_cmdline.h\nstring\n-\nvector\n-\nlimits\n-\nmap\n-\nset\n-\nmemory\n-\nsstream\n-\nalgorithm\n-\nstdexcept\n-\nlogging.h\ninclude/logging.h\nutils.h\ninclude/utils.h\nparams.h\ninclude/params.h\n\ninclude/params_def.h\n\ninclude/permutation_type.h\nvector\n-\ncstdint\n-\n\ninclude/query.h\nobject.h\ninclude/object.h\n\ninclude/query_creator.h\nrangequery.h\ninclude/rangequery.h\nknnquery.h\ninclude/knnquery.h\n\ninclude/rangequery.h\nset\n-\nobject.h\ninclude/object.h\nquery.h\ninclude/query.h\n\ninclude/report.h\nsstream\n-\nstring\n-\nmeta_analysis.h\ninclude/meta_analysis.h\nexperiments.h\ninclude/experiments.h\nexperimentconf.h\ninclude/experimentconf.h\nspace.h\ninclude/space.h\n\ninclude/report_intr_dim.h\nstring\n-\nobject.h\ninclude/object.h\n\ninclude/simdutils.h\nimmintrin.h\n-\nsmmintrin.h\n-\ntmmintrin.h\n-\nintrin.h\n-\n\ninclude/space.h\nstring\n-\nmap\n-\nstdexcept\n-\niostream\n-\ncmath\n-\nmemory\n-\nlimits\n-\nvector\n-\nstring.h\n-\nglobal.h\ninclude/global.h\nobject.h\ninclude/object.h\nutils.h\ninclude/utils.h\nlogging.h\ninclude/logging.h\npermutation_type.h\ninclude/permutation_type.h\n\ninclude/space/space_bregman.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_lp.h\ninclude/space/space_lp.h\n\ninclude/space/space_lp.h\nstring\n-\nlimits\n-\nmap\n-\nstdexcept\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\nspace_vector.h\ninclude/space/space_vector.h\ndistcomp.h\ninclude/space/distcomp.h\n\ninclude/space/space_vector.h\nstring\n-\nmap\n-\nstdexcept\n-\nsstream\n-\nmemory\n-\nstring.h\n-\nglobal.h\ninclude/space/global.h\nobject.h\ninclude/space/object.h\nutils.h\ninclude/space/utils.h\nspace.h\ninclude/space/space.h\n\ninclude/spacefactory.h\nstring\n-\nspace.h\ninclude/space.h\nspace/space_lp.h\ninclude/space/space_lp.h\nspace/space_bregman.h\ninclude/space/space_bregman.h\nparams.h\ninclude/params.h\n\ninclude/utils.h\ncctype\n-\ncstddef\n-\ncmath\n-\ncstdint\n-\nalgorithm\n-\nsstream\n-\nstring\n-\nvector\n-\ncstring\n-\ncctype\n-\nmap\n-\ntypeinfo\n-\nrandom\n-\nclimits\n-\nstdexcept\n-\nidtype.h\ninclude/idtype.h\nBaseTsd.h\n-\n\ninclude/ztimer.h\nchrono\n-\ncstdint\n-\ncmath\n-\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc\" \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/test_integr.cc.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/src/CMakeFiles/NonMetricSpaceLib.dir/DependInfo.cmake\"\n  \"/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/CMakeFiles/lshkit.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"lshkit/include\"\n  \"/usr/include/eigen3\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include\"\n  \"src\"\n  \"include\"\n  \"include/space\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# Include any dependencies generated for this target.\ninclude test/CMakeFiles/test_integr.dir/depend.make\n\n# Include the progress variables for this target.\ninclude test/CMakeFiles/test_integr.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude test/CMakeFiles/test_integr.dir/flags.make\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/CMakeFiles/test_integr.dir/flags.make\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/test_integr.cc\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object test/CMakeFiles/test_integr.dir/test_integr.cc.o\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_integr.dir/test_integr.cc.o -c /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/test_integr.dir/test_integr.cc.i\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc > CMakeFiles/test_integr.dir/test_integr.cc.i\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/test_integr.dir/test_integr.cc.s\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc -o CMakeFiles/test_integr.dir/test_integr.cc.s\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o.requires:\n.PHONY : test/CMakeFiles/test_integr.dir/test_integr.cc.o.requires\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o.provides: test/CMakeFiles/test_integr.dir/test_integr.cc.o.requires\n\t$(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/test_integr.cc.o.provides.build\n.PHONY : test/CMakeFiles/test_integr.dir/test_integr.cc.o.provides\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o.provides.build: test/CMakeFiles/test_integr.dir/test_integr.cc.o\n\n# Object files for target test_integr\ntest_integr_OBJECTS = \\\n\"CMakeFiles/test_integr.dir/test_integr.cc.o\"\n\n# External object files for target test_integr\ntest_integr_EXTERNAL_OBJECTS =\n\nrelease/test_integr: test/CMakeFiles/test_integr.dir/test_integr.cc.o\nrelease/test_integr: test/CMakeFiles/test_integr.dir/build.make\nrelease/test_integr: release/libNonMetricSpaceLib.a\nrelease/test_integr: release/liblshkit.a\nrelease/test_integr: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so\nrelease/test_integr: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so\nrelease/test_integr: /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so\nrelease/test_integr: test/CMakeFiles/test_integr.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../release/test_integr\"\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test_integr.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\ntest/CMakeFiles/test_integr.dir/build: release/test_integr\n.PHONY : test/CMakeFiles/test_integr.dir/build\n\ntest/CMakeFiles/test_integr.dir/requires: test/CMakeFiles/test_integr.dir/test_integr.cc.o.requires\n.PHONY : test/CMakeFiles/test_integr.dir/requires\n\ntest/CMakeFiles/test_integr.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code/test && $(CMAKE_COMMAND) -P CMakeFiles/test_integr.dir/cmake_clean.cmake\n.PHONY : test/CMakeFiles/test_integr.dir/clean\n\ntest/CMakeFiles/test_integr.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code /home/yzhang4/HD/release/algorithms/NMSLIB/code/test /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : test/CMakeFiles/test_integr.dir/depend\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/test_integr.dir/test_integr.cc.o\"\n  \"../release/test_integr.pdb\"\n  \"../release/test_integr\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/test_integr.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/bunit.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr.cc\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/test_integr_util.h\n /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/testdataset.h\n include/distcomp.h\n include/distcomp_edist.h\n include/eval_metrics.h\n include/eval_results.h\n include/experimentconf.h\n include/experiments.h\n include/global.h\n include/gold_standard.h\n include/idtype.h\n include/index.h\n include/init.h\n include/knnquery.h\n include/knnqueue.h\n include/logging.h\n include/memory.h\n include/meta_analysis.h\n include/methodfactory.h\n include/object.h\n include/params.h\n include/params_cmdline.h\n include/params_def.h\n include/permutation_type.h\n include/query.h\n include/query_creator.h\n include/rangequery.h\n include/report.h\n include/report_intr_dim.h\n include/simdutils.h\n include/space.h\n include/space/space_bregman.h\n include/space/space_lp.h\n include/space/space_vector.h\n include/spacefactory.h\n include/utils.h\n include/ztimer.h\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/bunit.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/test_integr.cc\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/test_integr_util.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: test/testdataset.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/distcomp.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/distcomp_edist.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/eval_metrics.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/eval_results.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/experimentconf.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/experiments.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/global.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/gold_standard.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/idtype.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/index.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/init.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/knnquery.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/knnqueue.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/logging.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/memory.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/meta_analysis.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/methodfactory.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/object.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/params.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/params_cmdline.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/params_def.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/permutation_type.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/query.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/query_creator.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/rangequery.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/report.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/report_intr_dim.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/simdutils.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/space.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/space/space_bregman.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/space/space_lp.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/space/space_vector.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/spacefactory.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/utils.h\ntest/CMakeFiles/test_integr.dir/test_integr.cc.o: include/ztimer.h\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/lshkit/include -I/usr/include/eigen3 -I/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/src -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include -I/home/yzhang4/HD/release/algorithms/NMSLIB/code/include/space   \n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -Wall -Wunreachable-code -Wcast-align -O3 -lm -lrt -DNDEBUG -std=c++11  -DHAVE_CXX0X -march=native -Wl,--no-as-needed -fpic   CMakeFiles/test_integr.dir/test_integr.cc.o  -o ../release/test_integr  -L/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib -rdynamic ../release/libNonMetricSpaceLib.a ../release/liblshkit.a -lgsl -lgslcblas -lm /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_system.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_filesystem.so /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib/libboost_program_options.so -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib \n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeFiles/test_integr.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 88\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/CMakeLists.txt",
    "content": "#\r\n# Non-metric Space Library\r\n#\r\n# Authors: Bilegsaikhan Naidan, Leonid Boytsov.\r\n#\r\n# This code is released under the\r\n# Apache License Version 2.0 http://www.apache.org/licenses/.\r\n#\r\n#\r\n\r\ninclude_directories (${NonMetricSpaceLib_SOURCE_DIR}/include ${NonMetricSpaceLib_SOURCE_DIR}/include/space ${NonMetricSpaceLib_SOURCE_DIR}/include)\r\n\r\nfile(GLOB TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/test*.cc)\r\n\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/bunit.cc)\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/test_integr.cc)\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/bench_distfunc.cc)\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/bench_projection.cc)\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/src/report_intr_dim.cc)\r\nlist(REMOVE_ITEM TEST_SRC_FILES ${PROJECT_SOURCE_DIR}/test/test_clust.cc)\r\n\r\nadd_executable (bunit bunit.cc ${TEST_SRC_FILES})\r\nadd_executable (bench_distfunc bench_distfunc.cc)\r\nadd_executable (test_integr test_integr.cc)\r\nadd_executable (report_intr_dim report_intr_dim.cc)\r\nadd_executable (test_clust test_clust.cc)\r\n\r\nadd_dependencies (bench_distfunc NonMetricSpaceLib)\r\nadd_dependencies (test_integr NonMetricSpaceLib)\r\nadd_dependencies (bunit NonMetricSpaceLib)\r\nadd_dependencies (report_intr_dim NonMetricSpaceLib)\r\nadd_dependencies (test_clust NonMetricSpaceLib)\r\n\r\nif ((NOT WITHOUT_LSH) AND (NOT WIN32))\r\n  add_executable (bench_projection bench_projection.cc)\r\n\r\n  add_dependencies (bunit lshkit)\r\n  add_dependencies (bench_distfunc lshkit)\r\n  add_dependencies (bench_projection NonMetricSpaceLib)\r\n\r\n  set(LSHKIT_LIB \"lshkit\")\r\n  set(GSL_LIB    ${GSL_LIBRARIES})\r\n  set(BOOST_LIB  ${Boost_LIBRARIES})\r\n\r\n  target_link_libraries (bench_projection NonMetricSpaceLib ${LSHKIT_LIB} ${GSL_LIB} ${BOOST_LIB})\r\nelse()\r\n# NO lshkit for Win32 and MACOSX\r\n  set(LSHKIT_LIB \"\")\r\n  set(GSL_LIB \"\")\r\n  set(BOOST_LIB ${Boost_LIBRARIES})\r\nendif()\r\n\r\ntarget_link_libraries (bunit NonMetricSpaceLib ${LSHKIT_LIB} ${GSL_LIB} ${BOOST_LIB})\r\ntarget_link_libraries (test_integr NonMetricSpaceLib ${LSHKIT_LIB} ${GSL_LIB} ${BOOST_LIB})\r\ntarget_link_libraries (bench_distfunc NonMetricSpaceLib ${LSHKIT_LIB} ${GSL_LIB} ${BOOST_LIB})\r\ntarget_link_libraries (test_clust NonMetricSpaceLib ${LSHKIT_LIB} ${GSL_LIB} ${BOOST_LIB})\r\ntarget_link_libraries (report_intr_dim NonMetricSpaceLib ${LSHKIT_LIB} ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})\r\n\r\nif (CMAKE_BUILD_TYPE STREQUAL \"Release\")\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/release/\")\r\nelse ()\r\n    set (LIBRARY_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\n    set (EXECUTABLE_OUTPUT_PATH \"${PROJECT_SOURCE_DIR}/debug/\")\r\nendif ()\r\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/NMSLIB/code\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles /home/yzhang4/HD/release/algorithms/NMSLIB/code/test/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/NMSLIB/code/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\ntest/CMakeFiles/bench_distfunc.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bench_distfunc.dir/rule\n.PHONY : test/CMakeFiles/bench_distfunc.dir/rule\n\n# Convenience name for target.\nbench_distfunc: test/CMakeFiles/bench_distfunc.dir/rule\n.PHONY : bench_distfunc\n\n# fast build rule for target.\nbench_distfunc/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/build\n.PHONY : bench_distfunc/fast\n\n# Convenience name for target.\ntest/CMakeFiles/bench_projection.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bench_projection.dir/rule\n.PHONY : test/CMakeFiles/bench_projection.dir/rule\n\n# Convenience name for target.\nbench_projection: test/CMakeFiles/bench_projection.dir/rule\n.PHONY : bench_projection\n\n# fast build rule for target.\nbench_projection/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/build\n.PHONY : bench_projection/fast\n\n# Convenience name for target.\ntest/CMakeFiles/bunit.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/bunit.dir/rule\n.PHONY : test/CMakeFiles/bunit.dir/rule\n\n# Convenience name for target.\nbunit: test/CMakeFiles/bunit.dir/rule\n.PHONY : bunit\n\n# fast build rule for target.\nbunit/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/build\n.PHONY : bunit/fast\n\n# Convenience name for target.\ntest/CMakeFiles/report_intr_dim.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/report_intr_dim.dir/rule\n.PHONY : test/CMakeFiles/report_intr_dim.dir/rule\n\n# Convenience name for target.\nreport_intr_dim: test/CMakeFiles/report_intr_dim.dir/rule\n.PHONY : report_intr_dim\n\n# fast build rule for target.\nreport_intr_dim/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/build\n.PHONY : report_intr_dim/fast\n\n# Convenience name for target.\ntest/CMakeFiles/test_clust.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/test_clust.dir/rule\n.PHONY : test/CMakeFiles/test_clust.dir/rule\n\n# Convenience name for target.\ntest_clust: test/CMakeFiles/test_clust.dir/rule\n.PHONY : test_clust\n\n# fast build rule for target.\ntest_clust/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/build\n.PHONY : test_clust/fast\n\n# Convenience name for target.\ntest/CMakeFiles/test_integr.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f CMakeFiles/Makefile2 test/CMakeFiles/test_integr.dir/rule\n.PHONY : test/CMakeFiles/test_integr.dir/rule\n\n# Convenience name for target.\ntest_integr: test/CMakeFiles/test_integr.dir/rule\n.PHONY : test_integr\n\n# fast build rule for target.\ntest_integr/fast:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/build\n.PHONY : test_integr/fast\n\nbench_distfunc.o: bench_distfunc.cc.o\n.PHONY : bench_distfunc.o\n\n# target to build an object file\nbench_distfunc.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.o\n.PHONY : bench_distfunc.cc.o\n\nbench_distfunc.i: bench_distfunc.cc.i\n.PHONY : bench_distfunc.i\n\n# target to preprocess a source file\nbench_distfunc.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.i\n.PHONY : bench_distfunc.cc.i\n\nbench_distfunc.s: bench_distfunc.cc.s\n.PHONY : bench_distfunc.s\n\n# target to generate assembly for a file\nbench_distfunc.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_distfunc.dir/build.make test/CMakeFiles/bench_distfunc.dir/bench_distfunc.cc.s\n.PHONY : bench_distfunc.cc.s\n\nbench_projection.o: bench_projection.cc.o\n.PHONY : bench_projection.o\n\n# target to build an object file\nbench_projection.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/bench_projection.cc.o\n.PHONY : bench_projection.cc.o\n\nbench_projection.i: bench_projection.cc.i\n.PHONY : bench_projection.i\n\n# target to preprocess a source file\nbench_projection.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/bench_projection.cc.i\n.PHONY : bench_projection.cc.i\n\nbench_projection.s: bench_projection.cc.s\n.PHONY : bench_projection.s\n\n# target to generate assembly for a file\nbench_projection.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bench_projection.dir/build.make test/CMakeFiles/bench_projection.dir/bench_projection.cc.s\n.PHONY : bench_projection.cc.s\n\nbunit.o: bunit.cc.o\n.PHONY : bunit.o\n\n# target to build an object file\nbunit.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/bunit.cc.o\n.PHONY : bunit.cc.o\n\nbunit.i: bunit.cc.i\n.PHONY : bunit.i\n\n# target to preprocess a source file\nbunit.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/bunit.cc.i\n.PHONY : bunit.cc.i\n\nbunit.s: bunit.cc.s\n.PHONY : bunit.s\n\n# target to generate assembly for a file\nbunit.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/bunit.cc.s\n.PHONY : bunit.cc.s\n\nreport_intr_dim.o: report_intr_dim.cc.o\n.PHONY : report_intr_dim.o\n\n# target to build an object file\nreport_intr_dim.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.o\n.PHONY : report_intr_dim.cc.o\n\nreport_intr_dim.i: report_intr_dim.cc.i\n.PHONY : report_intr_dim.i\n\n# target to preprocess a source file\nreport_intr_dim.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.i\n.PHONY : report_intr_dim.cc.i\n\nreport_intr_dim.s: report_intr_dim.cc.s\n.PHONY : report_intr_dim.s\n\n# target to generate assembly for a file\nreport_intr_dim.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/report_intr_dim.dir/build.make test/CMakeFiles/report_intr_dim.dir/report_intr_dim.cc.s\n.PHONY : report_intr_dim.cc.s\n\ntest_clust.o: test_clust.cc.o\n.PHONY : test_clust.o\n\n# target to build an object file\ntest_clust.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/test_clust.cc.o\n.PHONY : test_clust.cc.o\n\ntest_clust.i: test_clust.cc.i\n.PHONY : test_clust.i\n\n# target to preprocess a source file\ntest_clust.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/test_clust.cc.i\n.PHONY : test_clust.cc.i\n\ntest_clust.s: test_clust.cc.s\n.PHONY : test_clust.s\n\n# target to generate assembly for a file\ntest_clust.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_clust.dir/build.make test/CMakeFiles/test_clust.dir/test_clust.cc.s\n.PHONY : test_clust.cc.s\n\ntest_distfunc.o: test_distfunc.cc.o\n.PHONY : test_distfunc.o\n\n# target to build an object file\ntest_distfunc.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_distfunc.cc.o\n.PHONY : test_distfunc.cc.o\n\ntest_distfunc.i: test_distfunc.cc.i\n.PHONY : test_distfunc.i\n\n# target to preprocess a source file\ntest_distfunc.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_distfunc.cc.i\n.PHONY : test_distfunc.cc.i\n\ntest_distfunc.s: test_distfunc.cc.s\n.PHONY : test_distfunc.s\n\n# target to generate assembly for a file\ntest_distfunc.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_distfunc.cc.s\n.PHONY : test_distfunc.cc.s\n\ntest_editdist.o: test_editdist.cc.o\n.PHONY : test_editdist.o\n\n# target to build an object file\ntest_editdist.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_editdist.cc.o\n.PHONY : test_editdist.cc.o\n\ntest_editdist.i: test_editdist.cc.i\n.PHONY : test_editdist.i\n\n# target to preprocess a source file\ntest_editdist.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_editdist.cc.i\n.PHONY : test_editdist.cc.i\n\ntest_editdist.s: test_editdist.cc.s\n.PHONY : test_editdist.s\n\n# target to generate assembly for a file\ntest_editdist.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_editdist.cc.s\n.PHONY : test_editdist.cc.s\n\ntest_eval.o: test_eval.cc.o\n.PHONY : test_eval.o\n\n# target to build an object file\ntest_eval.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_eval.cc.o\n.PHONY : test_eval.cc.o\n\ntest_eval.i: test_eval.cc.i\n.PHONY : test_eval.i\n\n# target to preprocess a source file\ntest_eval.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_eval.cc.i\n.PHONY : test_eval.cc.i\n\ntest_eval.s: test_eval.cc.s\n.PHONY : test_eval.s\n\n# target to generate assembly for a file\ntest_eval.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_eval.cc.s\n.PHONY : test_eval.cc.s\n\ntest_fp.o: test_fp.cc.o\n.PHONY : test_fp.o\n\n# target to build an object file\ntest_fp.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_fp.cc.o\n.PHONY : test_fp.cc.o\n\ntest_fp.i: test_fp.cc.i\n.PHONY : test_fp.i\n\n# target to preprocess a source file\ntest_fp.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_fp.cc.i\n.PHONY : test_fp.cc.i\n\ntest_fp.s: test_fp.cc.s\n.PHONY : test_fp.s\n\n# target to generate assembly for a file\ntest_fp.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_fp.cc.s\n.PHONY : test_fp.cc.s\n\ntest_integr.o: test_integr.cc.o\n.PHONY : test_integr.o\n\n# target to build an object file\ntest_integr.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/test_integr.cc.o\n.PHONY : test_integr.cc.o\n\ntest_integr.i: test_integr.cc.i\n.PHONY : test_integr.i\n\n# target to preprocess a source file\ntest_integr.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/test_integr.cc.i\n.PHONY : test_integr.cc.i\n\ntest_integr.s: test_integr.cc.s\n.PHONY : test_integr.s\n\n# target to generate assembly for a file\ntest_integr.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/test_integr.dir/build.make test/CMakeFiles/test_integr.dir/test_integr.cc.s\n.PHONY : test_integr.cc.s\n\ntest_lpnorm.o: test_lpnorm.cc.o\n.PHONY : test_lpnorm.o\n\n# target to build an object file\ntest_lpnorm.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_lpnorm.cc.o\n.PHONY : test_lpnorm.cc.o\n\ntest_lpnorm.i: test_lpnorm.cc.i\n.PHONY : test_lpnorm.i\n\n# target to preprocess a source file\ntest_lpnorm.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_lpnorm.cc.i\n.PHONY : test_lpnorm.cc.i\n\ntest_lpnorm.s: test_lpnorm.cc.s\n.PHONY : test_lpnorm.s\n\n# target to generate assembly for a file\ntest_lpnorm.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_lpnorm.cc.s\n.PHONY : test_lpnorm.cc.s\n\ntest_object.o: test_object.cc.o\n.PHONY : test_object.o\n\n# target to build an object file\ntest_object.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_object.cc.o\n.PHONY : test_object.cc.o\n\ntest_object.i: test_object.cc.i\n.PHONY : test_object.i\n\n# target to preprocess a source file\ntest_object.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_object.cc.i\n.PHONY : test_object.cc.i\n\ntest_object.s: test_object.cc.s\n.PHONY : test_object.s\n\n# target to generate assembly for a file\ntest_object.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_object.cc.s\n.PHONY : test_object.cc.s\n\ntest_proj.o: test_proj.cc.o\n.PHONY : test_proj.o\n\n# target to build an object file\ntest_proj.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_proj.cc.o\n.PHONY : test_proj.cc.o\n\ntest_proj.i: test_proj.cc.i\n.PHONY : test_proj.i\n\n# target to preprocess a source file\ntest_proj.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_proj.cc.i\n.PHONY : test_proj.cc.i\n\ntest_proj.s: test_proj.cc.s\n.PHONY : test_proj.s\n\n# target to generate assembly for a file\ntest_proj.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_proj.cc.s\n.PHONY : test_proj.cc.s\n\ntest_space_serial.o: test_space_serial.cc.o\n.PHONY : test_space_serial.o\n\n# target to build an object file\ntest_space_serial.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_space_serial.cc.o\n.PHONY : test_space_serial.cc.o\n\ntest_space_serial.i: test_space_serial.cc.i\n.PHONY : test_space_serial.i\n\n# target to preprocess a source file\ntest_space_serial.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_space_serial.cc.i\n.PHONY : test_space_serial.cc.i\n\ntest_space_serial.s: test_space_serial.cc.s\n.PHONY : test_space_serial.s\n\n# target to generate assembly for a file\ntest_space_serial.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_space_serial.cc.s\n.PHONY : test_space_serial.cc.s\n\ntest_sqfd.o: test_sqfd.cc.o\n.PHONY : test_sqfd.o\n\n# target to build an object file\ntest_sqfd.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_sqfd.cc.o\n.PHONY : test_sqfd.cc.o\n\ntest_sqfd.i: test_sqfd.cc.i\n.PHONY : test_sqfd.i\n\n# target to preprocess a source file\ntest_sqfd.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_sqfd.cc.i\n.PHONY : test_sqfd.cc.i\n\ntest_sqfd.s: test_sqfd.cc.s\n.PHONY : test_sqfd.s\n\n# target to generate assembly for a file\ntest_sqfd.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_sqfd.cc.s\n.PHONY : test_sqfd.cc.s\n\ntest_timer.o: test_timer.cc.o\n.PHONY : test_timer.o\n\n# target to build an object file\ntest_timer.cc.o:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_timer.cc.o\n.PHONY : test_timer.cc.o\n\ntest_timer.i: test_timer.cc.i\n.PHONY : test_timer.i\n\n# target to preprocess a source file\ntest_timer.cc.i:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_timer.cc.i\n.PHONY : test_timer.cc.i\n\ntest_timer.s: test_timer.cc.s\n.PHONY : test_timer.s\n\n# target to generate assembly for a file\ntest_timer.cc.s:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(MAKE) -f test/CMakeFiles/bunit.dir/build.make test/CMakeFiles/bunit.dir/test_timer.cc.s\n.PHONY : test_timer.cc.s\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... test_clust\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... test_integr\"\n\t@echo \"... install\"\n\t@echo \"... bench_projection\"\n\t@echo \"... bench_distfunc\"\n\t@echo \"... report_intr_dim\"\n\t@echo \"... list_install_components\"\n\t@echo \"... bunit\"\n\t@echo \"... install/local\"\n\t@echo \"... bench_distfunc.o\"\n\t@echo \"... bench_distfunc.i\"\n\t@echo \"... bench_distfunc.s\"\n\t@echo \"... bench_projection.o\"\n\t@echo \"... bench_projection.i\"\n\t@echo \"... bench_projection.s\"\n\t@echo \"... bunit.o\"\n\t@echo \"... bunit.i\"\n\t@echo \"... bunit.s\"\n\t@echo \"... report_intr_dim.o\"\n\t@echo \"... report_intr_dim.i\"\n\t@echo \"... report_intr_dim.s\"\n\t@echo \"... test_clust.o\"\n\t@echo \"... test_clust.i\"\n\t@echo \"... test_clust.s\"\n\t@echo \"... test_distfunc.o\"\n\t@echo \"... test_distfunc.i\"\n\t@echo \"... test_distfunc.s\"\n\t@echo \"... test_editdist.o\"\n\t@echo \"... test_editdist.i\"\n\t@echo \"... test_editdist.s\"\n\t@echo \"... test_eval.o\"\n\t@echo \"... test_eval.i\"\n\t@echo \"... test_eval.s\"\n\t@echo \"... test_fp.o\"\n\t@echo \"... test_fp.i\"\n\t@echo \"... test_fp.s\"\n\t@echo \"... test_integr.o\"\n\t@echo \"... test_integr.i\"\n\t@echo \"... test_integr.s\"\n\t@echo \"... test_lpnorm.o\"\n\t@echo \"... test_lpnorm.i\"\n\t@echo \"... test_lpnorm.s\"\n\t@echo \"... test_object.o\"\n\t@echo \"... test_object.i\"\n\t@echo \"... test_object.s\"\n\t@echo \"... test_proj.o\"\n\t@echo \"... test_proj.i\"\n\t@echo \"... test_proj.s\"\n\t@echo \"... test_space_serial.o\"\n\t@echo \"... test_space_serial.i\"\n\t@echo \"... test_space_serial.s\"\n\t@echo \"... test_sqfd.o\"\n\t@echo \"... test_sqfd.i\"\n\t@echo \"... test_sqfd.s\"\n\t@echo \"... test_timer.o\"\n\t@echo \"... test_timer.i\"\n\t@echo \"... test_timer.s\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/NMSLIB/code && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bench_distfunc.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan, Leonid Boytsov.\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifdef _MSC_VER\n#define _SCL_SECURE_NO_WARNINGS\n#endif\n\n#include <iostream>\n#include <memory>\n#include <cmath>\n\n#include \"init.h\"\n#include \"space.h\"\n#include \"space/space_leven.h\"\n#include \"space/space_sparse_lp.h\"\n#include \"space/space_sparse_scalar.h\"\n#include \"space/space_sparse_vector_inter.h\"\n#include \"space/space_sparse_scalar_fast.h\"\n#include \"space/space_sparse_vector.h\"\n#include \"space/space_scalar.h\"\n#ifndef _MSC_VER\n#include \"space/space_sqfd.h\"\n#endif\n#include \"distcomp.h\"\n#include \"permutation_utils.h\"\n#include \"ztimer.h\"\n#include \"pow.h\"\n\n#include \"../test/testdataset.h\"\n\n#define TEST_SPEED_DOUBLE 1\n\n#define TEST_SPEED_ LP 1\n#define RANGE          8.0f\n#define RANGE_SMALL    1e-6f\n\nnamespace similarity {\n\nusing std::unique_ptr;\nusing std::vector;\n\n\ntemplate <class T> \ninline void Normalize(T* pVect, size_t qty) {\n  T sum = 0;\n  for (size_t i = 0; i < qty; ++i) {\n    sum += pVect[i];\n  }\n  if (sum != 0) {\n    for (size_t i = 0; i < qty; ++i) {\n      pVect[i] /= sum;\n    }\n  }\n}\n\n\ntemplate <class T> \ninline void GenRandVect(T* pVect, size_t qty, T MinElem = T(0), T MaxElem = T(1), bool DoNormalize = false) {\n  T sum = 0;\n  for (size_t i = 0; i < qty; ++i) {\n    pVect[i] = MinElem + (MaxElem - MinElem) * RandomReal<T>();\n    sum += fabs(pVect[i]);\n  }\n  if (DoNormalize && sum != 0) {\n    for (size_t i = 0; i < qty; ++i) {\n      pVect[i] /= sum;\n    }\n  }\n}\n\ninline void GenRandIntVect(int* pVect, size_t qty) {\n  for (size_t i = 0; i < qty; ++i) {\n    pVect[i] = RandomInt();\n  }\n}\n\ntemplate <class T> \ninline void SetRandZeros(T* pVect, size_t qty, double pZero) {\n    for (size_t j = 0; j < qty; ++j) if (RandomReal<T>() < pZero) pVect[j] = T(0);\n}\n\nusing namespace std;\n\n\n/*\n\n#ifdef  __INTEL_COMPILER\n\n// TODO: @Leo figure out how to use this function with Intel and cmake\n\n#include \"mkl.h\"\n\nTEST(set_intel) {\n    vmlSetMode(VML_HA);\n    LOG(LIB_INFO) << \"Set high-accuracy mode.\";\n}\n\n#endif\n\n*/\n\n\ntemplate <typename dist_t>\nvoid GenSparseVectZipf(size_t maxSize, vector<SparseVectElem<dist_t>>& res) {\n  maxSize = max(maxSize, (size_t)1);\n\n  for (size_t i = 1; i < maxSize; ++i) {\n    float f = RandomReal<float>();\n    if (f <= sqrt((float)i)/i) { // This is a bit ad hoc, but is ok for testing purposes\n      res.push_back(SparseVectElem<dist_t>(i, RandomReal<float>()));\n    }\n  }\n};\n\n// Efficiency test functions\n\ntemplate <class T>\nvoid TestLInfNormStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * LInfNormStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard LInfs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestLInfNorm(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * LInfNorm(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of optim. LInfs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestLInfNormSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n    T* p = pArr;\n\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * LInfNormSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD LInfs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\n\ntemplate <class T>\nvoid TestL1NormStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L1NormStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard L1s per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestL1Norm(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L1Norm(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of optim. L1s per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestL1NormSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n    T* p = pArr;\n\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L1NormSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD L1s per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestL2NormStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L2NormStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard L2s per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestL2Norm(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L2Norm(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of optim. L2s per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestL2NormSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n \n    T fract = T(1)/N;\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * L2NormSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n \n    uint64_t tDiff = t.split();\n \n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD L2s per second: \" << (1e6/tDiff) * N * Rep ;\n \n    delete [] pArr;\n \n}\n\n\ntemplate <class T>\nvoid TestLPGeneric(size_t N, size_t dim, size_t Rep, T power) {\n    T* pArr = new T[N * dim];\n    T* p = pArr;\n\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(-RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * LPGenericDistance(pArr + j*dim, pArr + (j-1)*dim, dim, power) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of Generic L\" << power << \" per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestLPGenericOptim(size_t N, size_t dim, size_t Rep, T power) {\n    T* pArr = new T[N * dim];\n    T* p = pArr;\n\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(-RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * LPGenericDistanceOptim(pArr + j*dim, pArr + (j-1)*dim, dim, power) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of Optimized generic L\" << power << \" per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestItakuraSaitoPrecomp(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * ItakuraSaitoPrecomp(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of precomp. ItakuraSaito per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestItakuraSaitoPrecompSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * ItakuraSaitoPrecompSIMD(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD precomp. ItakuraSaito per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestItakuraSaitoStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * ItakuraSaito(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of ItakuraSaito per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\n\ntemplate <class T>\nvoid TestKLPrecomp(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0), true /* norm. for regular KL */);\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLPrecomp(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of precomp. KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestKLPrecompSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0), true /* norm. for regular KL */);\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLPrecompSIMD(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD precomp. KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestKLStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0), true /* norm. for regular KL */);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\n\ntemplate <class T>\nvoid TestKLGeneralPrecomp(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLGeneralPrecomp(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of precomp. general. KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestKLGeneralPrecompSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLGeneralPrecompSIMD(pArr + j*dim*2, pArr + (j-1)*dim*2, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SIMD precomp. general. KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestKLGeneralStandard(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(RANGE_SMALL), T(1.0));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * KLGeneralStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of general. KLs per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestJSStandard(size_t N, size_t dim, size_t Rep, float pZero) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, T(0), T(1), true);\n        SetRandZeros(p, dim, pZero);\n        Normalize(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * JSStandard(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of JSs (sparsity:\" << pZero << \") per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestJSPrecomp(size_t N, size_t dim, size_t Rep, float pZero) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(0), T(1), true);\n        SetRandZeros(p, dim, pZero);\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * JSPrecomp(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of JSs (precomp) (sparsity:\" << pZero << \")  per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestJSPrecompApproxLog(size_t N, size_t dim, size_t Rep, float pZero) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(0), T(1), true);\n        SetRandZeros(p, dim, pZero);\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * JSPrecompApproxLog(pArr + 2*j*dim, pArr + 2*(j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of JSs (precomp, one log approx) (sparsity:\" << pZero << \") per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestJSPrecompSIMDApproxLog(size_t N, size_t dim, size_t Rep, float pZero) {\n    T* pArr = new T[N * dim * 2];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= 2 * dim) {\n        GenRandVect(p, dim, T(0), T(1), true);\n        SetRandZeros(p, dim, pZero);\n        PrecompLogarithms(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * JSPrecompSIMDApproxLog(pArr + 2*j*dim, pArr + 2*(j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of JSs (precomp, one log approx, SIMD) (sparsity:\" << pZero << \") per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\nvoid TestSpearmanRho(size_t N, size_t dim, size_t Rep) {\n    int* pArr = new int[N * dim];\n\n    int *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandIntVect(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0.0f;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * SpearmanRho(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard SpearmanRho per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\nvoid TestSpearmanRhoSIMD(size_t N, size_t dim, size_t Rep) {\n    int* pArr = new int[N * dim];\n\n    int *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandIntVect(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0.0f;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * SpearmanRhoSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SpearmanRhoSIMD per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\nvoid TestSpearmanFootrule(size_t N, size_t dim, size_t Rep) {\n    int* pArr = new int[N * dim];\n\n    int *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandIntVect(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * SpearmanFootrule(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard SpearmanFootrule per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\nvoid TestSpearmanFootruleSIMD(size_t N, size_t dim, size_t Rep) {\n    int* pArr = new int[N * dim];\n\n    int *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandIntVect(p, dim);\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * SpearmanFootruleSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of SpearmanFootruleSIMD per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\n#if !defined(_MSC_VER)\n\ntemplate <class T>\nvoid TestSQFDGeneric(size_t N, size_t Rep, SqfdFunction<T>& func) {\n    // Space will try to delete the function\n    unique_ptr<SpaceSqfd<T>>  space(new SpaceSqfd<T>(func.Clone()));\n    ObjectVector              elems;\n    vector<string>            tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, (sampleDataPrefix + \"sqfd20_10k_10k.txt\"), N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) <<  typeid(T).name() << \" Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of \" << space->StrDesc() << \" distances per second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\n\ntemplate <class T>\nvoid TestSQFDMinus(size_t N, size_t Rep) {\n  SqfdMinusFunction<T> func;\n  TestSQFDGeneric(N, Rep, func);\n}\n\ntemplate <class T>\nvoid TestSQFDHeuristic(size_t N, size_t Rep) {\n  SqfdHeuristicFunction<T> func(T(1));\n  TestSQFDGeneric(N, Rep, func);\n}\n\ntemplate <class T>\nvoid TestSQFDGaussian(size_t N, size_t Rep) {\n  SqfdGaussianFunction<T> func(T(1));\n  TestSQFDGeneric(N, Rep, func);\n}\n\n#endif\n\nvoid TestLevenshtein(size_t N, size_t Rep) {\n    unique_ptr<SpaceLevenshtein>  space(new SpaceLevenshtein);\n    ObjectVector                  elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, (sampleDataPrefix + \"dna32_4_5K.txt\"), N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \" Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of unoptimized unweighted Levenshtein distances per second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\ntemplate <class T>\nvoid TestSparseLp(size_t N, size_t Rep, T power) {\n    unique_ptr<SpaceSparseLp<T>>  space(new SpaceSparseLp<T>(power));\n    ObjectVector                  elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, (sampleDataPrefix + \"sparse_5K.txt\"), N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of sparse LP (p=\" << power << \") per second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\ntemplate <class T>\nvoid TestSparseAngularDistance(const string& dataFile, size_t N, size_t Rep) {\n    unique_ptr<SpaceSparseAngularDistance<T>>  space(new SpaceSparseAngularDistance<T>());\n    ObjectVector                  elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, dataFile, N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" File: \" << dataFile \n         << \" Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of sparse angular dist per second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\nvoid TestSparseCosineSimilarityFast(const string& dataFile, size_t N, size_t Rep) {\n    typedef float T;\n\n    unique_ptr<SpaceSparseCosineSimilarityFast>  space(new SpaceSparseCosineSimilarityFast());\n    ObjectVector                                 elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, dataFile,  N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" File: \" << dataFile << \n            \" Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of (fast) fast sparse cosine similarity dist second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\nvoid TestSparseAngularDistanceFast(const string& dataFile, size_t N, size_t Rep) {\n    typedef float T;\n\n    unique_ptr<SpaceSparseAngularDistanceFast>  space(new SpaceSparseAngularDistanceFast());\n    ObjectVector                                 elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, dataFile, N));\n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1) / N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j - 1], elems[j]) / N;\n        }\n        /*\n        * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n        *\n        * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n        */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" File: \" << dataFile <<\n        \" Elapsed: \" << tDiff / 1e3 << \" ms \" <<\n        \" # of (fast) fast sparse angular dist second: \" << (1e6 / tDiff) * N * Rep;\n\n}\n\n\ntemplate <class T>\nvoid TestSparseCosineSimilarity(const string& dataFile, size_t N, size_t Rep) {\n    unique_ptr<SpaceSparseCosineSimilarity<T>>  space(new SpaceSparseCosineSimilarity<T>());\n    ObjectVector                  elems;\n    vector<string>                tmp;\n\n    unique_ptr<DataFileInputState> inpState(space->ReadDataset(elems, tmp, dataFile, N)); \n    space->UpdateParamsFromFile(*inpState);\n\n    N = min(N, elems.size());\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * space->IndexTimeDistance(elems[j-1], elems[j]) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" File: \" << dataFile \n         << \" Elapsed: \" << tDiff / 1e3 << \" ms \" << \n            \" # of sparse cosine similarity dist second: \" << (1e6/tDiff) * N * Rep ;\n\n}\n\ntemplate <class T>\nvoid TestScalarProduct(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * ScalarProduct(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of ScalarProduct per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestScalarProductSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * ScalarProductSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of ScalarProduct SIMD per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestNormScalarProduct(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * NormScalarProduct(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of NormScalarProduct per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestNormScalarProductSIMD(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * NormScalarProductSIMD(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of NormScalarProduct SIMD per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestCosineSimilarity(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * CosineSimilarity(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard CosineSimilarity per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\ntemplate <class T>\nvoid TestAngularDistance(size_t N, size_t dim, size_t Rep) {\n    T* pArr = new T[N * dim];\n\n    T *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= dim) {\n        GenRandVect(p, dim, -T(RANGE), T(RANGE));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    T DiffSum = 0;\n    T fract = T(1)/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * AngularDistance(pArr + j*dim, pArr + (j-1)*dim, dim) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << typeid(T).name() << \" \" << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of standard AngularDistance per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\nvoid TestBitHamming(size_t N, size_t dim, size_t Rep) {\n    size_t WordQty = (dim + 31)/32; \n    uint32_t* pArr = new uint32_t[N * WordQty];\n\n    uint32_t *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= WordQty) {\n        vector<PivotIdType> perm(dim);\n        GenRandIntVect(&perm[0], dim);\n        for (unsigned j = 0; j < dim; ++j)\n          perm[j] = perm[j] % 2;\n        vector<uint32_t> h;\n        Binarize(perm, 1, h); \n        CHECK(h.size() == WordQty);\n        memcpy(p, &h[0], WordQty * sizeof(h[0]));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    float DiffSum = 0;\n\n    float fract = 1.0f/N;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            DiffSum += 0.01f * BitHamming(pArr + j*WordQty, pArr + (j-1)*WordQty, WordQty) / N;\n        }\n        /* \n         * Multiplying by 0.01 and dividing the sum by N is to prevent Intel from \"cheating\":\n         *\n         * http://searchivarius.org/blog/problem-previous-version-intels-library-benchmark\n         */\n        DiffSum *= fract;\n    }\n\n    uint64_t tDiff = t.split();\n\n    LOG(LIB_INFO) << \"Ignore: \" << DiffSum;\n    LOG(LIB_INFO) << \"Elapsed: \" << tDiff / 1e3 << \" ms \" << \" # of BitHamming per second: \" << (1e6/tDiff) * N * Rep ;\n\n    delete [] pArr;\n\n}\n\n}  // namespace similarity\n\nusing namespace similarity;\n\nint main(int argc, char* argv[]) {\n    string LogFile;\n    if (argc == 2) LogFile = argv[1];\n    initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n    int nTest  = 0;\n\n    int dim = 128;\n\n#if !defined(_MSC_VER)\n    nTest++;\n    TestSQFDMinus<float>(2000, 50);\n    nTest++;\n    TestSQFDHeuristic<float>(2000, 50);\n    nTest++;\n    TestSQFDGaussian<float>(2000, 50);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestSQFDMinus<double>(2000, 50);\n    nTest++;\n    TestSQFDHeuristic<double>(2000, 50);\n    nTest++;\n    TestSQFDGaussian<double>(2000, 50);\n#endif\n#endif\n\n    nTest++;\n    TestLevenshtein(10000, 50);\n\n    nTest++;\n    TestBitHamming(1000, 32, 50000);\n    nTest++;\n    TestBitHamming(1000, 64, 25000);\n    nTest++;\n    TestBitHamming(1000, 128, 12000);\n    nTest++;\n    TestBitHamming(1000, 256, 6000);\n    nTest++;\n    TestBitHamming(1000, 512, 3000);\n    nTest++;\n    TestBitHamming(1000, 1024, 1500);\n\n    float pZero1 = 0.5f;\n    float pZero2 = 0.25f;\n    float pZero3 = 0.0f;\n\n    nTest++;\n    TestScalarProduct<float>(1000, dim, 1000);\n    nTest++;\n    TestScalarProductSIMD<float>(1000, dim, 1000);\n    nTest++;\n\n\n    nTest++;\n    TestNormScalarProduct<float>(1000, dim, 1000);\n    nTest++;\n    TestNormScalarProductSIMD<float>(1000, dim, 1000);\n    nTest++;\n\n\n    TestCosineSimilarity<float>(1000, dim, 1000);\n    nTest++;\n    TestAngularDistance<float>(1000, dim, 1000);\n\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestScalarProduct<double>(1000, dim, 1000);\n    nTest++;\n    TestScalarProductSIMD<double>(1000, dim, 1000);\n\n    nTest++;\n    TestNormScalarProduct<double>(1000, dim, 1000);\n    nTest++;\n    TestNormScalarProductSIMD<double>(1000, dim, 1000);\n    nTest++;\n\n\n    nTest++;\n    TestCosineSimilarity<double>(1000, dim, 1000);\n    nTest++;\n    TestAngularDistance<double>(1000, dim, 1000);\n#endif\n\n    nTest++;\n    TestSparseCosineSimilarityFast(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseCosineSimilarityFast(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistanceFast(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistanceFast(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n\n    nTest++;\n    TestSparseCosineSimilarity<float>(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseCosineSimilarity<float>(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistance<float>(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistance<float>(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestSparseCosineSimilarity<double>(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseCosineSimilarity<double>(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistance<double>(sampleDataPrefix + \"sparse_5K.txt\", 1000, 1000);\n    nTest++;\n    TestSparseAngularDistance<double>(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 1000);\n#endif\n\n\n    LOG(LIB_INFO) << \"Single-precision (sparse) LP-distance tests\";\n    nTest++;\n    TestSparseLp<float>(1000, 1000, -1);\n    nTest++;\n    nTest++;\n    TestSparseLp<float>(1000, 1000, 1/3.0f);\n\n    nTest++;\n    TestSpearmanRho(1024, dim, 2000);\n\n    nTest++;\n    TestSpearmanRhoSIMD(1024, dim, 2000);\n\n    nTest++;\n    TestSpearmanFootrule(1024, dim, 2000);\n\n    nTest++;\n    TestSpearmanFootruleSIMD(1024, dim, 2000);\n\n    nTest++;\n    TestJSStandard<float>(1024, dim, 1000, pZero1);\n    nTest++;\n    TestJSStandard<float>(1024, dim, 1000, pZero2);\n    nTest++;\n    TestJSStandard<float>(1024, dim, 1000, pZero3);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestJSStandard<double>(1024, dim, 500, pZero1);\n    nTest++;\n    TestJSStandard<double>(1024, dim, 500, pZero2);\n    nTest++;\n    TestJSStandard<double>(1024, dim, 500, pZero3);\n#endif\n\n    nTest++;\n    TestJSPrecomp<float>(1024, dim, 500, pZero1);\n    nTest++;\n    TestJSPrecomp<float>(1024, dim, 500, pZero2);\n    nTest++;\n    TestJSPrecomp<float>(1024, dim, 500, pZero3);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestJSPrecomp<double>(1024, dim, 500, pZero1);\n    nTest++;\n    TestJSPrecomp<double>(1024, dim, 500, pZero2);\n    nTest++;\n    TestJSPrecomp<double>(1024, dim, 500, pZero3);\n#endif\n\n    nTest++;\n    TestJSPrecompApproxLog<float>(1024, dim, 1000, pZero1);\n    nTest++;\n    TestJSPrecompApproxLog<float>(1024, dim, 1000, pZero2);\n    nTest++;\n    TestJSPrecompApproxLog<float>(1024, dim, 1000, pZero3);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestJSPrecompApproxLog<double>(1024, dim, 1000, pZero1);\n    nTest++;\n    TestJSPrecompApproxLog<double>(1024, dim, 1000, pZero2);\n    nTest++;\n    TestJSPrecompApproxLog<double>(1024, dim, 1000, pZero3);\n#endif\n\n    nTest++;\n    TestJSPrecompSIMDApproxLog<float>(1024, dim, 2000, pZero1);\n    nTest++;\n    TestJSPrecompSIMDApproxLog<float>(1024, dim, 2000, pZero2);\n    nTest++;\n    TestJSPrecompSIMDApproxLog<float>(1024, dim, 2000, pZero3);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestJSPrecompSIMDApproxLog<double>(1024, dim, 2000, pZero1);\n    nTest++;\n    TestJSPrecompSIMDApproxLog<double>(1024, dim, 2000, pZero2);\n    nTest++;\n    TestJSPrecompSIMDApproxLog<double>(1024, dim, 2000, pZero3);\n#endif\n\n    nTest++;\n    TestL1Norm<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL1Norm<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestL1NormStandard<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL1NormStandard<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestL1NormSIMD<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL1NormSIMD<double>(1024, dim, 10000);\n#endif\n\n\n    nTest++;\n    TestLInfNorm<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestLInfNorm<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestLInfNormStandard<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestLInfNormStandard<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestLInfNormSIMD<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestLInfNormSIMD<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestItakuraSaitoStandard<float>(1024, dim, 1000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestItakuraSaitoStandard<double>(1024, dim, 1000);\n#endif\n\n\n    nTest++;\n    TestItakuraSaitoPrecomp<float>(1024, dim, 2000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestItakuraSaitoPrecomp<double>(1024, dim, 2000);\n#endif\n\n    nTest++;\n    TestItakuraSaitoPrecompSIMD<float>(1024, dim, 4000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestItakuraSaitoPrecompSIMD<double>(1024, dim, 4000);\n#endif\n\n    nTest++;\n    TestL2Norm<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL2Norm<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestL2NormStandard<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL2NormStandard<double>(1024, dim, 10000);\n#endif\n\n    nTest++;\n    TestL2NormSIMD<float>(1024, dim, 10000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestL2NormSIMD<double>(1024, dim, 10000);\n#endif\n\n\n    nTest++;\n    TestKLStandard<float>(1024, dim, 1000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLStandard<double>(1024, dim, 1000);\n#endif\n\n\n    nTest++;\n    TestKLPrecomp<float>(1024, dim, 2000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLPrecomp<double>(1024, dim, 2000);\n#endif\n\n    nTest++;\n    TestKLPrecompSIMD<float>(1024, dim, 4000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLPrecompSIMD<double>(1024, dim, 4000);\n#endif\n\n    nTest++;\n    TestKLGeneralStandard<float>(1024, dim, 1000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLGeneralStandard<double>(1024, dim, 1000);\n#endif\n\n    nTest++;\n    TestKLGeneralPrecomp<float>(1024, dim, 2000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLGeneralPrecomp<double>(1024, dim, 2000);\n#endif\n\n    nTest++;\n    TestKLGeneralPrecompSIMD<float>(1024, dim, 2000);\n#if TEST_SPEED_DOUBLE\n    nTest++;\n    TestKLGeneralPrecompSIMD<double>(1024, dim, 2000);\n#endif\n\n#if TEST_SPEED_LP\n    float delta = 0.125/2.0;\n\n    for (float power = delta, step = delta; power <= 24; power += step) {\n      nTest++;\n      // This one should use an optimized LP function\n      TestSparseLp<float>(1000, 1000, power);\n      if (power == 3) step = 0.125;\n      if (power == 8) step = 0.5;\n    }\n    LOG(LIB_INFO) << \"========================================\";\n\n#if TEST_SPEED_DOUBLE\n    LOG(LIB_INFO) << \"Double-precision (sparse) LP-distance tests\";\n    TestSparseLp<double>(1000, 1000, -1);\n    nTest++;\n    TestSparseLp<double>(1000, 1000, 1/3.0);\n    nTest++;\n    for (double power = delta, step = delta; power <= 24; power += step) {\n      nTest++;\n      // This one should use an optimized LP function\n      TestSparseLp<double>(1000, 1000, power);\n      if (power == 3) step = 0.125;\n      if (power == 8) step = 0.5;\n    }\n#endif\n    LOG(LIB_INFO) << \"========================================\";\n\n    LOG(LIB_INFO) << \"Single-precision LP-distance tests\";\n    for (float power = delta, step = delta; power <= 24; power += step) {\n      nTest++;\n      TestLPGeneric<float>(128, dim, 200, power);\n      nTest++;\n      TestLPGenericOptim<float>(128, dim, 200, power);\n      if (power == 3) step = 0.125;\n      if (power == 8) step = 0.5;\n    }\n    LOG(LIB_INFO) << \"========================================\";\n#if TEST_SPEED_DOUBLE\n    LOG(LIB_INFO) << \"Double-precision LP-distance tests\";\n    for (double power = delta, step = delta; power <= 24; power += step) {\n      nTest++;\n      TestLPGeneric<double>(128, dim, 200, power);\n      nTest++;\n      TestLPGenericOptim<double>(128, dim, 200, power);\n      if (power == 3) step = 0.125;\n      if (power == 8) step = 0.5;\n    }\n    LOG(LIB_INFO) << \"========================================\";\n#endif\n#endif\n\n    LOG(LIB_INFO) << \"Dimensionality of dense vectors: \" << dim; \n    LOG(LIB_INFO) << \" \" << nTest << \" tests performed\";\n    return 0;\n}\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bench_distfunc.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{3244B2CA-B3D3-41BC-BD55-D3C937D7D00B}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>bench_distfunc</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">bench_distfunc</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">bench_distfunc</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">bench_distfunc</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bench_distfunc\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n      <ProfileGuidedDatabase>$(OutDir)$(TargetName)$(TargetExt).pgd</ProfileGuidedDatabase>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"bench_distfunc.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bench_projection.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#include <string>\n#include <fstream>\n\n#include <boost/program_options.hpp>\n\n#include \"knnquery.h\"\n#include \"knnqueue.h\"\n#include \"space.h\"\n#include \"params.h\"\n#include \"projection.h\"\n#include \"spacefactory.h\"\n#include \"init.h\"\n\nusing namespace similarity;\nusing namespace std;\n\nnamespace po = boost::program_options;\n\nstatic void Usage(const char *prog,\n                  const po::options_description& desc) {\n    std::cout << prog << std::endl\n              << desc << std::endl;\n}\n\ntemplate <class dist_t>\nvoid benchProjection(size_t repeatQty,\n                     string spaceType,\n                     string inFile, string outFile,\n                     string projType, unsigned knn, string projSpaceType,\n                     unsigned nIntermDim,\n                     unsigned nDstDim,\n                     unsigned binThreshold,\n                     unsigned maxNumData,\n                     unsigned sampleRandPairQty, unsigned sampleKNNQueryQty, unsigned sampleKNNTotalQty) {\n  ToLower(spaceType);\n  vector<string> spaceDesc;\n\n  const string descStr = spaceType;\n  ParseSpaceArg(descStr, spaceType, spaceDesc);\n  unique_ptr<AnyParams> spaceParams =\n            unique_ptr<AnyParams>(new AnyParams(spaceDesc));\n\n  unique_ptr<Space<dist_t>> space(SpaceFactoryRegistry<dist_t>::\n                                Instance().CreateSpace(spaceType, *spaceParams));\n\n  if (NULL == space.get()) {\n    LOG(LIB_FATAL) << \"Cannot create the space: '\" << spaceType\n                   << \"' (desc: '\" << descStr << \"')\";\n  }\n\n  ToLower(projSpaceType);\n  vector<string> projSpaceDesc;\n\n  const string projDescStr = projSpaceType;\n  ParseSpaceArg(projDescStr, projSpaceType, projSpaceDesc);\n  unique_ptr<AnyParams> projSpaceParams =\n            unique_ptr<AnyParams>(new AnyParams(projSpaceDesc));\n\n  unique_ptr<Space<float>> projSpace(SpaceFactoryRegistry<float>::\n                                Instance().CreateSpace(projSpaceType, *projSpaceParams));\n\n  if (NULL == projSpace.get()) {\n    LOG(LIB_FATAL) << \"Cannot create the projection space: '\" << projSpaceType\n                   << \"' (desc: '\" << projDescStr << \"')\";\n  }\n\n  const VectorSpaceSimpleStorage<float>*  ps =\n      dynamic_cast<const VectorSpaceSimpleStorage<float>*>(projSpace.get());\n\n  if (NULL == ps) {\n    LOG(LIB_FATAL) << \"The target projection space: '\" << projDescStr << \"' \"\n                   << \" should be a simple-storage dense vector space, e.g., l2\";\n  }\n\n  ObjectVector      data;\n  vector<string>    tmp;\n  LOG(LIB_INFO) << \"maxNumData=\" << maxNumData;\n  unique_ptr<DataFileInputState> inpState(space->ReadDataset(data, tmp, inFile, maxNumData));\n  space->UpdateParamsFromFile(*inpState);\n\n  size_t N = data.size();\n\n\n  unique_ptr<Projection<dist_t> > projObj;\n\n  ofstream out(outFile);\n\n  LOG(LIB_INFO) << \"sampleRandPairQty=\" << sampleRandPairQty;\n  LOG(LIB_INFO) << \"sampleKNNQueryQty=\" << sampleKNNQueryQty;\n  LOG(LIB_INFO) << \"sampleKNNTotalQty=\" << sampleKNNTotalQty;\n  LOG(LIB_INFO) << \"recreating projections #times=\" << repeatQty;\n\n  if (N > 0) \n  for (size_t rr = 0; rr < repeatQty; ++rr) {\n    LOG(LIB_INFO) << \"Creating projection object set \" << (rr + 1) << \" out of \" << repeatQty;\n    projObj.reset(\n      Projection<dist_t>::createProjection(\n                        *space,\n                        data,\n                        projType,\n                        nIntermDim,\n                        nDstDim,\n                        binThreshold));\n\n    vector<float>   v1(nDstDim), v2(nDstDim);\n\n    vector<IdType>  vId1, vId2;\n    vector<dist_t>  vOrigDist;\n\n    for (size_t i = 0; i < sampleRandPairQty; ++i) {\n      IdType id1 = RandomInt() % N;\n      IdType id2 = RandomInt() % N;\n      vId1.push_back(id1);\n      vId2.push_back(id2);\n      vOrigDist.push_back(space->IndexTimeDistance(data[id1], data[id2]));\n    }\n\n    CHECK(vId1.size() == vId2.size());\n    CHECK(vId1.size() == vOrigDist.size());\n  \n\n    size_t iter = 0;\n    size_t startId = vOrigDist.size();\n\n    for (size_t i = 0; i < sampleKNNQueryQty; ++i) {\n      IdType id1 = RandomInt() % N;\n\n      KNNQuery<dist_t> query(*space, data[id1], knn);\n\n      // Brute force search\n      for (size_t i = 0; i < N; ++i) {\n        query.CheckAndAddToResult(data[i]);\n      }\n\n      unique_ptr<KNNQueue<dist_t>> knnQ(query.Result()->Clone());\n\n      // Extracting results\n      while (!knnQ->Empty()) {\n        // Reservoir sampling\n        int selectIndex = -1;\n        ++iter;\n        if (iter > sampleKNNTotalQty) {\n          selectIndex = RandomInt() % iter; // from 0 to iter\n        } else {\n          vOrigDist.push_back(-1);\n          vId1.push_back(-1);\n          vId2.push_back(-1);\n          selectIndex = vOrigDist.size() - 1 - startId;\n        }\n\n        if (selectIndex >= 0 && selectIndex < vOrigDist.size() - startId) {\n          size_t replIndex = selectIndex + startId;\n          vOrigDist[replIndex] = knnQ->TopDistance(); \n          vId1[replIndex] = id1;\n          vId2[replIndex] = knnQ->TopObject()->id();\n        }\n\n        knnQ->Pop(); \n      }\n    }\n\n    for (size_t i = 0; i < vOrigDist.size(); ++i) {\n      projObj->compProj(NULL, data[vId1[i]], &v1[0]);\n      projObj->compProj(NULL, data[vId2[i]], &v2[0]);\n\n      CHECK(vId1[i] >= 0);\n      CHECK(vId2[i] >= 0);\n\n      unique_ptr<Object> obj1(ps->CreateObjFromVect(-1, -1, v1));\n      unique_ptr<Object> obj2(ps->CreateObjFromVect(-1, -1, v2));\n\n      float projDist = ps->IndexTimeDistance(obj1.get(), obj2.get());\n\n      out << vOrigDist[i] << \"\\t\" << projDist << endl;\n    }\n  }\n}\n\nint main(int argc, char *argv[]) {\n  string      spaceType, distType, projSpaceType;\n  string      inFile, outFile;\n  string      projType;\n  string      logFile;\n  unsigned    maxNumData = 0;\n  unsigned    sampleRandPairQty = 0;\n  unsigned    sampleKNNQueryQty = 0;\n  unsigned    sampleKNNTotalQty = 0;\n  unsigned    nIntermDim   = 0;\n  unsigned    binThreshold = 0;\n  unsigned    nDstDim;\n  unsigned    knn = 0;\n  unsigned    repeatQty = 1;\n\n\n  po::options_description ProgOptDesc(\"Allowed options\");\n  ProgOptDesc.add_options()\n    (\"help,h\", \"produce help message\")\n    (\"spaceType,s\",     po::value<string>(&spaceType)->required(),\n                        \"space type, e.g., l1, l2, lp:p=0.5\")\n    (\"projSpaceType\",   po::value<string>(&projSpaceType)->default_value(\"l2\"),\n                        \"space type in the projection space, e.g., l1, l2, lp:p=0.5. \"\n                        \"should be a dense vector space!\")\n    (\"distType\",        po::value<string>(&distType)->default_value(DIST_TYPE_FLOAT),\n                        \"distance value type: float, double\")\n    (\"inFile,i\",        po::value<string>(&inFile)->required(),\n                        \"input data file\")\n    (\"outFile,o\",       po::value<string>(&outFile)->required(),\n                        \"output data file\")\n    (\"projType,p\",      po::value<string>(&projType)->required(),\n                        \"projection type\")\n    (\"sampleRandPairQty\",po::value<unsigned>(&sampleRandPairQty)->default_value(0),\n                        \"number of randomly selected pairs\")\n    (\"sampleKNNQueryQty\",po::value<unsigned>(&sampleKNNQueryQty)->default_value(0),\n                        \"number of randomly selected queries\")\n    (\"sampleKNNTotalQty\",po::value<unsigned>(&sampleKNNTotalQty)->default_value(0),\n                        \"a total number of randomly selected queries' nearest neighbors (should be >= sampleKNNQueryQty)\")\n    (\"knn,k\",           po::value<unsigned>(&knn)->default_value(0),\n                        \"use this number of nearest neighbors (should be > 0 if sampleKNNQueryQty > 0)\")\n    (\"repeat,r\",        po::value<unsigned>(&repeatQty)->default_value(10),\n                        \"recreate projections this number of times\")\n    (\"intermDim\",       po::value<unsigned>(&nIntermDim)->default_value(0),\n                        \"intermediate dimensionality, used only for sparse vector spaces\")\n    (\"projDim\",          po::value<unsigned>(&nDstDim)->required(),\n                        \"dimensionality in the target space (where we project to)\")\n    (\"binThreshold\",    po::value<unsigned>(&binThreshold)->default_value(0),\n                        \"binarization threshold, used only for permutations\")\n    (\"maxNumData\",      po::value<unsigned>(&maxNumData)->default_value(0),\n                        \"if non-zero, only the first maxNumData elements are used\")\n    (\"logFile,l\",       po::value<string>(&logFile)->default_value(\"\"),\n                        \"log file\")\n     ;\n\n  po::variables_map vm;\n\n  try {\n    po::store(po::parse_command_line(argc, argv, ProgOptDesc), vm);\n    po::notify(vm);\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << e.what();\n  }\n\n  if (vm.count(\"help\")  ) {\n    Usage(argv[0], ProgOptDesc);\n    exit(0);\n  }\n\n  initLibrary(logFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, logFile.c_str());\n\n  LOG(LIB_INFO) << \"Program arguments are processed\";\n  \n\n  ToLower(distType);\n\n\n  try {\n    if (sampleKNNQueryQty) {\n      if (!knn) LOG(LIB_FATAL) << \"Please, specify knn > 0\";\n      if (sampleKNNTotalQty < sampleKNNQueryQty) {\n        LOG(LIB_FATAL) << \"sampleKNNTotalQty should be at least as large as sampleKNNQueryQty\";\n      }\n    }\n    if (distType == DIST_TYPE_FLOAT) {\n      benchProjection<float>(repeatQty, spaceType, inFile, outFile,\n                             projType, knn, projSpaceType,\n                             nIntermDim, nDstDim, binThreshold,\n                             maxNumData,\n                             sampleRandPairQty, sampleKNNQueryQty, sampleKNNTotalQty);\n    } else if (distType == DIST_TYPE_DOUBLE) {\n      benchProjection<double>(repeatQty, spaceType, inFile, outFile,\n                             projType, knn, projSpaceType,\n                             nIntermDim, nDstDim, binThreshold,\n                             maxNumData,\n                             sampleRandPairQty, sampleKNNQueryQty, sampleKNNTotalQty);\n    } else {\n      LOG(LIB_FATAL) << \"Unsupported distance type: '\" << distType << \"'\";\n    }\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  }\n\n    \n\n  return 0;\n};\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bunit.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <stdlib.h>\n\n#include <string>\n\n#include \"bunit.h\"\n#include \"init.h\"\n\nnamespace similarity {\n\nTestRunner& TestRunner::Instance() {\n  static TestRunner instance;\n  return instance;\n}\n\nvoid TestRunner::AddTest(const std::string& test_name, TestBase* test_instance) {\n  const size_t pos = test_name.find(kDisable);\n  bool disabled = false;\n  if (pos != std::string::npos) {\n    if (pos == 0) {\n      disabled = true;\n    } else {\n      std::cout << \"Incorrect test name \" << test_name << std::endl;\n      exit(1);\n    }\n  }\n  tests_.push_back(std::make_tuple(test_name, test_instance, disabled));\n}\n\nint TestRunner::RunAllTests() {\n  int num_failed = 0;\n  int num_disabled = 0;\n  for (auto it = tests_.begin(); it != tests_.end(); ++it) {\n    std::cout << \"----- \" << std::get<0>(*it) << \" -----\" << std::endl;\n    if (std::get<2>(*it)) {\n      ++num_disabled;\n      std::cout << yellow << \"disabled\" << no_color << std::endl;\n    } else {\n      try {\n        std::get<1>(*it)->Test();\n        std::cout << green << \"passed\" << no_color << std::endl;\n      } catch (const TestException& ex) {\n          ++num_failed;\n          std::cout << red << \"failed\" << no_color << std::endl;\n          std::cout << ex.what() << std::endl;\n      } catch (const std::exception& ex) {\n        ++num_failed;\n        std::cout << red << \"failed\" << no_color << std::endl;\n        std::cout << ex.what() << std::endl;\n      } catch (...) {\n        std::cout << red << \"failed\" << no_color << std::endl;\n        std::cout << \"unknown cause\" << std::endl;\n      }\n    }\n  }\n\n  std::cout << \"======================================\" << std::endl;\n  std::cout << green << \"In total \" << tests_.size() << \" testcases\";\n  if (num_disabled > 0) {\n    std::cout << \" (\" << num_disabled << \" tests disabled)\";\n  }\n  std::cout << no_color << std::endl;\n\n  if (num_failed == 0) {\n    std::cout << green << \"ALL TESTS PASSED\" << no_color << std::endl;\n  } else {\n    std::cout << red << \"FAILED \" << num_failed\n              << \" TESTS !!!\" << no_color << std::endl;\n  }\n  std::cout << \"======================================\" << std::endl;\n\n  return num_failed;\n}\n\n}     // namespace similarity\n\nint main(int argc, char *argv[]) {\n  std::string LogFile;\n  if (argc == 2) LogFile = argv[1];\n  similarity::initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n  return similarity::TestRunner::Instance().RunAllTests();\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bunit.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/).\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n\n#ifndef _BUNIT_H_\n#define _BUNIT_H_\n\n#include <vector>\n#include <string>\n#include <sstream>\n#include <iostream>\n#include <functional>\n#include <utility>\n#include <tuple>\n#include <cmath>\n#include <exception>\n\n// Uncomment this to disable tests taking long time\n//#define DISABLE_LONG_TESTS\n\nnamespace similarity {\n\nusing TestFunc = std::function<void()>;\n\nclass TestException : public std::exception {\n public:\n  TestException(const std::string& msg) : msg_(msg) {}\n  const char* what() const \n#ifndef _MSC_VER\n// TODO: @leo/bileg Do we really need noexcept here, MSVS chokes on it\n\t  noexcept \n#endif\n  { return msg_.c_str(); }\n private:\n  const std::string msg_;\n};\n\nconst std::string kDisable = \"DISABLE_\";\n\nclass TestBase {\npublic:\n  virtual void Test() = 0;\n  virtual ~TestBase(){}\n};\n\nclass TestRunner {\n public:\n  ~TestRunner() {}\n\n  static TestRunner& Instance();\n  void AddTest(const std::string& test_name, TestBase* test_instance);\n  int RunAllTests();\n\n private:\n  TestRunner() {}\n  // <test_name, test_instance, is_disabled>\n  std::vector<std::tuple<std::string,TestBase*,bool>> tests_;\n};\n\n#define TEST(test_name) \\\n  class _Test_##test_name##_ : TestBase { \\\n   public: \\\n    _Test_##test_name##_() { \\\n      similarity::TestRunner::Instance().AddTest(#test_name, this); \\\n    } \\\n    virtual ~_Test_##test_name##_() {} \\\n   private: \\\n    virtual void Test(); \\\n  }; \\\n  similarity::_Test_##test_name##_ _test_##test_name##_; \\\n  void _Test_##test_name##_::Test()\n\n\ntemplate <typename T>\ninline bool EQ(const T& x, const T& y, T eps) {\n  return x == y;\n}\n\ntemplate <>\ninline bool EQ<float>(const float& x, const float& y, float eps) {\n  // In C++ 11, std::abs is also defined for real-valued arguments\n  return std::abs(x - y) <= eps;\n}\n\ntemplate <>\ninline bool EQ<double>(const double& x, const double& y, double eps) {\n  // In C++ 11, std::abs is also defined for real-valued arguments\n  return std::abs(x - y) <= eps;\n}\n\ntemplate <typename T>\nstatic inline void Expect_EQ(const std::string& msg,\n                             const T& expected,\n                             const T& actual,\n                             const std::string& file_name,\n                             int line_num,\n                             T eps = static_cast<T>(1e-10)) {\n  if (!EQ(expected, actual, eps)) {\n    std::stringstream ss;\n    ss << file_name << \"(\" << line_num << \"): \"\n       << \"EXPECT_EQ(\" << msg << \") \" << std::endl\n       << \"   expected: \" << expected << std::endl\n       << \"   actual  : \" << actual\n       << std::endl;\n    throw TestException(ss.str());\n  }\n}\n\ntemplate <typename T>\nstatic inline void Expect_NE(const std::string& msg,\n                             const T& expected,\n                             const T& actual,\n                             const std::string& file_name,\n                             int line_num,\n                             T eps = static_cast<T>(1e-10)) {\n  if (EQ(expected, actual, eps)) {\n    std::stringstream ss;\n    ss << file_name << \"(\" << line_num << \"): \"\n       << \"EXPECT_NE(\" << msg << \") \" << std::endl\n       << \"   expected: \" << expected << std::endl\n       << \"   actual  : \" << actual\n       << std::endl;\n    throw TestException(ss.str());\n  }\n}\n\nstatic inline void Expect_True(const std::string& msg,\n                               const int condition,\n                               const std::string& file_name,\n                               int line_num) {\n  if (!condition) {\n    std::stringstream ss;\n    ss << file_name << \"(\" << line_num << \"): \"\n       << \"EXPECT_TRUE(\" << msg << \") \" << std::endl;\n    throw TestException(ss.str());\n  }\n}\n\nstatic inline void Expect_False(const std::string& msg,\n                                const int condition,\n                                const std::string& file_name,\n                                int line_num) {\n  if (condition) {\n    std::stringstream ss;\n    ss << file_name << \"(\" << line_num << \"): \"\n       << \" EXPECT_FALSE(\" << msg << \") \" << std::endl;\n    throw TestException(ss.str());\n  }\n}\n\n#define EXPECT_EQ(expected, actual) \\\n  similarity::Expect_EQ(#expected \", \" #actual, (expected), (actual), __FILE__, __LINE__)\n\n#define EXPECT_EQ_EPS(expected, actual, eps) \\\n  similarity::Expect_EQ(#expected \", \" #actual, (expected), (actual), __FILE__, __LINE__, eps)\n\n#define EXPECT_NE(expected, actual) \\\n  similarity::Expect_NE(#expected \", \" #actual, (expected), (actual), __FILE__, __LINE__)\n\n#define EXPECT_NE_EPS(expected, actual, eps) \\\n  similarity::Expect_NE(#expected \", \" #actual, (expected), (actual), __FILE__, __LINE__, eps)\n\n#define EXPECT_TRUE(condition) \\\n  similarity::Expect_True(#condition, (condition), __FILE__, __LINE__)\n\n#define EXPECT_FALSE(condition) \\\n  similarity::Expect_False(#condition, (condition), __FILE__, __LINE__)\n\n#ifdef __linux\nconst std::string green = \"\\x1b[32m\";\nconst std::string red = \"\\x1b[31m\";\nconst std::string yellow = \"\\x1b[33m\";\nconst std::string no_color = \"\\x1b[0m\";\n#else\nconst std::string green;\nconst std::string red;\nconst std::string yellow;\nconst std::string no_color;\n#endif\n\n}     // namespace similarity\n\n#endif    // _BUNIT_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bunit.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{111510A1-E568-49D8-8EFE-196F5053EA0C}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>bunit</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">bunit</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">bunit</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">bunit</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\bunit\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n      <ProfileGuidedDatabase>$(OutDir)$(TargetName)$(TargetExt).pgd</ProfileGuidedDatabase>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"bunit.cc\" />\n    <ClCompile Include=\"test_distfunc.cc\" />\n    <ClCompile Include=\"test_editdist.cc\" />\n    <ClCompile Include=\"test_eval.cc\" />\n    <ClCompile Include=\"test_lpnorm.cc\" />\n    <ClCompile Include=\"test_object.cc\" />\n    <ClCompile Include=\"test_proj.cc\" />\n    <ClCompile Include=\"test_sqfd.cc\" />\n    <ClCompile Include=\"test_timer.cc\" />\n    <ClCompile Include=\"test_fp.cc\" />\n    <ClCompile Include=\"test_space_serial.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"bunit.h\" />\n    <ClInclude Include=\"testdataset.h\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bunit.vcxproj.filters",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup>\n    <ClCompile Include=\"bunit.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_distfunc.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_editdist.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_lpnorm.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_timer.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_object.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_fp.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_sqfd.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_eval.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_proj.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n    <ClCompile Include=\"test_space_serial.cc\">\n      <Filter>Source Files</Filter>\n    </ClCompile>\n  </ItemGroup>\n  <ItemGroup>\n    <Filter Include=\"Source Files\">\n      <UniqueIdentifier>{3EF538C7-CC7F-4CC0-AA2E-461C0B950388}</UniqueIdentifier>\n    </Filter>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"testdataset.h\">\n      <Filter>Source Files</Filter>\n    </ClInclude>\n    <ClInclude Include=\"bunit.h\">\n      <Filter>Source Files</Filter>\n    </ClInclude>\n  </ItemGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/test/bunit.vcxproj.user",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <PropertyGroup />\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/test/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/NMSLIB/code/test\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"Release\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/genrand_vect.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef GENRAND_VECT_HPP\n#define GENRAND_VECT_HPP\n\n#include \"space/space_sparse_vector.h\"\n\nnamespace similarity {\n\ntemplate <class T> \ninline void Normalize(T* pVect, size_t qty) {\n  T sum = 0;\n  for (size_t i = 0; i < qty; ++i) {\n    sum += pVect[i];\n  }\n  if (sum != 0) {\n    for (size_t i = 0; i < qty; ++i) {\n      pVect[i] /= sum;\n    }\n  }\n}\n\n\ntemplate <class T> \ninline void GenRandVect(T* pVect, size_t qty, T MinElem = T(0), T MaxElem = T(1), bool DoNormalize = false) {\n  T sum = 0;\n  for (size_t i = 0; i < qty; ++i) {\n    pVect[i] = MinElem + (MaxElem - MinElem) * RandomReal<T>();\n    sum += fabs(pVect[i]);\n  }\n  if (DoNormalize && sum != 0) {\n    for (size_t i = 0; i < qty; ++i) {\n      pVect[i] /= sum;\n    }\n  }\n}\n\ninline void GenRandIntVect(int* pVect, size_t qty) {\n  for (size_t i = 0; i < qty; ++i) {\n    pVect[i] = RandomInt();\n  }\n}\n\ntemplate <class T> \ninline void SetRandZeros(T* pVect, size_t qty, double pZero) {\n    for (size_t j = 0; j < qty; ++j) if (RandomReal<T>() < pZero) pVect[j] = T(0);\n}\n\ntemplate <typename dist_t>\nvoid GenSparseVectZipf(size_t maxSize, vector<SparseVectElem<dist_t>>& res) {\n  maxSize = max(maxSize, (size_t)1);\n\n  for (size_t i = 1; i < maxSize; ++i) {\n    float f = RandomReal<float>();\n    if (f <= sqrt((float)i)/i) { // This is a bit ad hoc, but is ok for testing purposes\n      res.push_back(SparseVectElem<dist_t>(i, RandomReal<float>()));\n    }\n  }\n};\n\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/report_intr_dim.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <iostream>\n#include <string>\n\n#include <boost/program_options.hpp>\n\n#include \"space.h\"\n#include \"params.h\"\n#include \"init.h\"\n#include \"report_intr_dim.h\"\n#include \"spacefactory.h\"\n\nusing namespace similarity;\nusing namespace std;\n\nnamespace po = boost::program_options;\n\nconst unsigned defaultSampleQty = 1000000;\n\nstatic void Usage(const char *prog,\n                  const po::options_description& desc) {\n    std::cout << prog << std::endl\n              << desc << std::endl;\n}\n\ntemplate <typename dist_t>\nvoid ComputeMuDeffect(const Space<dist_t>& space, \n                    const ObjectVector& dataset,\n                    double & dleft, double & dright,\n                    size_t SampleQty = 1000000) {\n  dleft = dright = -1;\n  for (size_t n = 0; n < SampleQty; ++n) {\n    size_t r1 = RandomInt() % dataset.size();\n    size_t r2 = RandomInt() % dataset.size();\n    size_t r3 = RandomInt() % dataset.size();\n    CHECK(r1 < dataset.size());\n    CHECK(r2 < dataset.size());\n    CHECK(r3 < dataset.size());\n    const Object* q = dataset[r1];\n    const Object* a = dataset[r2];\n    const Object* b = dataset[r3];\n    {\n      dist_t d1 = space.IndexTimeDistance(q, a);\n      dist_t d2 = space.IndexTimeDistance(q, b);\n      dist_t d3 = space.IndexTimeDistance(a, b);\n      if (ISNAN(d1) || ISNAN(d2) || ISNAN(d3)) {\n        throw runtime_error(\"!!! Bug: a distance returned NAN!\");\n      }\n      if (d3 != 0) {\n        dright = max(dright, (double)fabs(double(d1)-double(d2))/double(d3));\n      }\n    }\n    {\n      dist_t d1 = space.IndexTimeDistance(a, q);\n      dist_t d2 = space.IndexTimeDistance(b, q);\n      dist_t d3 = space.IndexTimeDistance(b, a);\n      if (ISNAN(d1) || ISNAN(d2) || ISNAN(d3)) {\n        throw runtime_error(\"!!! Bug: a distance returned NAN!\");\n      }\n      if (d3 != 0) {\n        dleft = max(dleft, (double)fabs(double(d1)-double(d2))/double(d3));\n      }\n    }\n  }\n}\n\ntemplate <typename dist_t>\nvoid TestSpace(\n                string spaceDesc,\n                string dataFile,\n                bool compMuDeffect,\n                unsigned maxNumData,\n                unsigned sampleQty\n               ) {\n  string          spaceType;\n  vector<string>  vSpaceArgs;\n\n  ParseSpaceArg(spaceDesc, spaceType, vSpaceArgs);\n  AnyParams   spaceParams({AnyParams(vSpaceArgs)});\n\n  unique_ptr<Space<dist_t>> space(SpaceFactoryRegistry<dist_t>::\n                                Instance().CreateSpace(spaceType, spaceParams));\n\n  ObjectVector    data;\n  vector<string>  tmp;\n  unique_ptr<DataFileInputState> inpState(space->ReadDataset(data, tmp, dataFile, maxNumData));\n  space->UpdateParamsFromFile(*inpState);\n\n  // Prints the report\n  ReportIntrinsicDimensionality(\"********\", *space, data, sampleQty);\n  if (compMuDeffect) {\n    double    dleft, dright;\n    ComputeMuDeffect<dist_t>(\n                  *space,\n                  data,\n                  dleft, dright,\n                  sampleQty\n                 );\n    LOG(LIB_INFO) << \"### left mu-defect. : \" << dleft << \" right mu-defect. :\" << dright;\n  }\n}\n\nint main(int argc, char* argv[]) {\n  string    spaceDesc, distType;\n  string    dataFile;\n  unsigned  maxNumData;\n  unsigned  sampleQty;\n  bool      compMuDeffect;\n\n  po::options_description ProgOptDesc(\"Allowed options\");\n  ProgOptDesc.add_options()\n    (\"help,h\", \"produce help message\")\n    (\"spaceType,s\",     po::value<string>(&spaceDesc)->required(),\n                        \"space type, e.g., l1, l2, lp:p=0.5\")\n    (\"distType\",        po::value<string>(&distType)->default_value(DIST_TYPE_FLOAT),\n                        \"distance value type: int, float, double\")\n    (\"dataFile,i\",      po::value<string>(&dataFile)->required(),\n                        \"input data file\")\n    (\"maxNumData\",      po::value<unsigned>(&maxNumData)->default_value(0),\n                        \"if non-zero, only the first maxNumData elements are used\")\n    (\"sampleQty\",       po::value<unsigned>(&sampleQty)->default_value(defaultSampleQty),\n                        \"a number of samples (a sample is a pair of data points)\")\n    (\"muDeffect,m\",     po::value<bool>(&compMuDeffect)->default_value(false),\n                        \"estimate the left and the right mu deffectiveness\")\n    \n  ;\n\n  po::variables_map vm;\n  try {\n    po::store(po::parse_command_line(argc, argv, ProgOptDesc), vm);\n    po::notify(vm);\n\n    if (!DoesFileExist(dataFile)) {\n      PREPARE_RUNTIME_ERR(err) << \"data file \" << dataFile << \" doesn't exist\";\n      THROW_RUNTIME_ERR(err);\n    }\n\n    initLibrary(LIB_LOGSTDERR);\n\n    if (DIST_TYPE_INT == distType) {\n      TestSpace<int>(\n                  spaceDesc,\n                  dataFile,\n                  compMuDeffect,\n                  maxNumData,\n                  sampleQty\n                );\n    } else if (DIST_TYPE_FLOAT == distType) {\n      TestSpace<float>(\n                  spaceDesc,\n                  dataFile,\n                  compMuDeffect,\n                  maxNumData,\n                  sampleQty\n                 );\n    } else if (DIST_TYPE_DOUBLE == distType) {\n      TestSpace<double>(\n                  spaceDesc,\n                  dataFile,\n                  compMuDeffect,\n                  maxNumData,\n                  sampleQty\n                 );\n    }\n\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << e.what();\n  }\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_clust.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2015\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n\n#include <cmath>\n#include <memory>\n#include <limits>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <fstream>\n#include <map>\n\n#include <boost/program_options.hpp>\n#include <cluster_util.h>\n\n#include \"init.h\"\n#include \"global.h\"\n#include \"utils.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"tune.h\"\n#include \"method/vptree.h\"\n#include \"method/proj_vptree.h\"\n#include \"method/perm_bin_vptree.h\"\n#include \"logging.h\"\n#include \"spacefactory.h\"\n#include \"cluster_util.h\"\n#include \"params_def.h\"\n\n#include \"meta_analysis.h\"\n#include \"params.h\"\n\nusing namespace similarity;\n\n#define CLUST_TYPE_PARAM_OPT \"clustType,t\"\nconst string CLUST_TYPE_PARAM_MSG=\"A type of cluster: \" + CLUST_TYPE_CLARAN + \",\" + CLUST_TYPE_FIRMAL;\n#define CLUST_QTY_PARAM_OPT \"clustQty,c\"\n#define CLUST_QTY_PARAM_MSG \"A # of clusters\"\nconst IdTypeUnsign CLUST_QTY_PARAM_DEFAULT = 100;\n#define IN_CLUST_SWAP_ATT_PARAM_OPT \"swapAtt,W\"\n#define IN_CLUST_SWAP_ATT_PARAM_MSG \"The number of in claster swap attempts (in order to find a better center)\"\nconst IdTypeUnsign IN_CLUST_SWAP_ATT_PARAM_DEFAULT = CLARANS_SWAP_ATTEMPTS;\n#define IN_CLUST_SAMPLE_QTY_PARAM_OPT \"clustSampleQty,Q\"\n#define IN_CLUST_SAMPLE_QTY_PARAM_MSG \"The number of sampled points inside the cluster to compute a cluster configuration cost\"\nconst IdTypeUnsign IN_CLUST_SAMPLE_QTY_PARAM_DEFAULT = CLARANS_SAMPLE_QTY;\n#define RAND_REST_QTY_PARAM_OPT \"randRestartQty,R\"\n#define RAND_REST_QTY_PARAM_MSG \"The number of random restarts\"\nconst size_t RAND_REST_QTY_PARAM_DEFAULT = 5;\n#define SEARCH_CLOSE_ITER_QTY_PARAM_OPT \"searchCloseIterQty,I\"\n#define SEARCH_CLOSE_ITER_QTY_PARAM_MSG \"A number of search iterations to find a point that is close to already selected centers\"\nconst IdTypeUnsign SEARCH_CLOSE_ITER_QTY_PARAM_DEFAULT = 200;\n#define DIST_SAMPLE_QTY_PARAM_OPT \"distSampleQty,S\"\n#define DIST_SAMPLE_QTY_PARAM_MSG \"A number of samples to determine the distribution of distances\"\nconst IdTypeUnsign DIST_SAMPLE_QTY_PARAM_DEFAULT = SAMPLE_LIST_CLUST_DEFAULT_SAMPLE_QTY;\n#define MAX_META_ITER_QTY_PARAM_OPT \"maxMetaIterQty,M\"\n#define MAX_META_ITER_QTY_PARAM_MSG \"A maximum number of meta iterations\"\nconst IdTypeUnsign MAX_META_ITER_QTY_PARAM_DEFAULT = 10;\n#define KEEP_FRAC_QTY_PARAM_OPT \"keepFrac,F\"\n#define KEEP_FRAC_QTY_PARAM_MSG \"Percentage of assigned points kept after a meta-iteration is finished\"\nconst float KEEP_FRAC_QTY_PARAM_DEFAULT = 0.2;\n\nusing std::vector;\nusing std::map;\nusing std::make_pair;\nusing std::string;\nusing std::stringstream;\n\nnamespace po = boost::program_options;\n\nstatic void Usage(const char *prog,\n                  const po::options_description& desc) {\n    std::cout << prog << std::endl\n              << desc << std::endl;\n}\n\ntemplate <typename dist_t>\nvoid RunExper(\n    bool                   PrintProgress,\n    const string&          DistType,\n    const string&          SpaceType,\n    shared_ptr<AnyParams>  SpaceParams,\n    const string&          DataFile,\n    IdTypeUnsign           MaxNumData,\n    const string&          ClustType,\n    IdTypeUnsign           ClustQty,\n    // reductive CLARANS parameters\n    IdTypeUnsign           maxMetaIterQty,\n    float                  keepFrac,\n    // CLARANS & reductive CLARANS parameters\n    IdTypeUnsign           inClusterSwapAttempts,\n    IdTypeUnsign           inClusterSampleQty, // Number of random points to estimate if the swap was beneficial\n    size_t                 randRestQty,\n    // FIRMAL parameters\n    size_t                 searchCloseIterQty, // A # of search iterations to find a point that is close to already selected centers\n                                          // For good performance it should be in the order of sqrt(data.size())\n    size_t                 sampleDistQty      // A # of sample to determine the distribution of distances)\n) {\n\n  unique_ptr<Space<dist_t>> space (SpaceFactoryRegistry<dist_t>::\n                                   Instance().CreateSpace(SpaceType, *SpaceParams));\n\n  ObjectVector              data;\n  vector<string>            tmp;\n\n  unique_ptr<DataFileInputState> inpState(space->ReadDataset(data, tmp, DataFile, MaxNumData));\n  space->UpdateParamsFromFile(*inpState);\n\n  LOG(LIB_INFO) << \"Read: \" << data.size() << \" entries.\";\n\n  ObjectVector                                      vCenters;\n  ObjectVector                                      vUnassigned;\n  vector<shared_ptr<DistObjectPairVector<dist_t>>>  vClusterAssign;\n\n  if (ClustType == CLUST_TYPE_CLARAN) {\n    ClusterUtils<dist_t>::doCLARANS(PrintProgress, *space, data, ClustQty, vCenters, vClusterAssign,\n                                    inClusterSwapAttempts, inClusterSampleQty, randRestQty);\n  } else if (ClustType == CLUST_TYPE_REDUCT_CLARAN) {\n    ClusterUtils<dist_t>::doReductiveCLARANS(PrintProgress, *space, data,\n                                             maxMetaIterQty, keepFrac,\n                                             ClustQty, vCenters, vClusterAssign, vUnassigned,\n                                             inClusterSwapAttempts, inClusterSampleQty);\n  } else if (ClustType == CLUST_TYPE_FIRMAL) {\n    ClusterUtils<dist_t>::doFIRMAL(PrintProgress, *space, data, ClustQty, vCenters, vClusterAssign, vUnassigned,\n                                   searchCloseIterQty, sampleDistQty);\n  } else {\n    throw runtime_error(\"Unsupported clustering type: \" + ClustType);\n  }\n\n  LOG(LIB_INFO) << \"The number of unassigned points: \" << vUnassigned.size();\n\n  ClusterUtils<dist_t>::printAndVerifyClusterStat(*space, vCenters, vClusterAssign, 1000);\n}\n\nvoid ParseCommandLineForClustering(int argc, char*argv[],\n   bool&                   PrintProgress,\n   string&                 LogFile,\n   string&                 DistType,\n   string&                 SpaceType,\n   shared_ptr<AnyParams>&  SpaceParams,\n   string&                 DataFile,\n   unsigned&               MaxNumData,\n   string&                 ClustType,\n   IdTypeUnsign&           ClustQty,\n// reductive CLARANS parameters\n   IdTypeUnsign&           maxMetaIterQty,\n   float&                  keepFrac,\n// CLARANS parameters\n   IdTypeUnsign&           inClusterSwapAttempts,\n   IdTypeUnsign&           inClusterSampleQty, // Number of random points to estimate if the swap was beneficial\n   IdTypeUnsign&           RandRestQty,\n// FIRMAL parameters\n   IdTypeUnsign&           SearchCloseIterQty,// A # of search iterations to find a point that is close to already selected centers\n// For good performance it should be in the order of sqrt(data.size())\n   IdTypeUnsign&           SampleDistQty      // A # of sample to determine the distribution of distances)\n\n) {\n  bool NoPrintProgress;\n\n\n  po::options_description ProgOptDesc(\"Allowed options\");\n  ProgOptDesc.add_options()\n      (HELP_PARAM_OPT,          HELP_PARAM_MSG)\n      (NO_PROGRESS_PARAM_OPT,   po::bool_switch(&NoPrintProgress), NO_PROGRESS_PARAM_MSG)\n      (SPACE_TYPE_PARAM_OPT,    po::value<string>(&SpaceType)->required(),                    SPACE_TYPE_PARAM_MSG)\n      (DIST_TYPE_PARAM_OPT,     po::value<string>(&DistType)->default_value(DIST_TYPE_FLOAT), DIST_TYPE_PARAM_MSG)\n      (DATA_FILE_PARAM_OPT,     po::value<string>(&DataFile)->required(),                     DATA_FILE_PARAM_MSG)\n      (MAX_NUM_DATA_PARAM_OPT,  po::value<unsigned>(&MaxNumData)->default_value(MAX_NUM_DATA_PARAM_DEFAULT), MAX_NUM_DATA_PARAM_MSG)\n      (LOG_FILE_PARAM_OPT,      po::value<string>(&LogFile)->default_value(LOG_FILE_PARAM_DEFAULT),          LOG_FILE_PARAM_MSG)\n      (CLUST_TYPE_PARAM_OPT,    po::value<string>(&ClustType)->required(),      CLUST_TYPE_PARAM_MSG.c_str())\n      (CLUST_QTY_PARAM_OPT,    po::value<IdTypeUnsign>(&ClustQty)->default_value(CLUST_QTY_PARAM_DEFAULT), CLUST_QTY_PARAM_MSG)\n      (IN_CLUST_SWAP_ATT_PARAM_OPT, po::value<IdTypeUnsign>(&inClusterSwapAttempts)->default_value(IN_CLUST_SWAP_ATT_PARAM_DEFAULT), IN_CLUST_SWAP_ATT_PARAM_MSG)\n      (IN_CLUST_SAMPLE_QTY_PARAM_OPT, po::value<IdTypeUnsign>(&inClusterSampleQty)->default_value(IN_CLUST_SAMPLE_QTY_PARAM_DEFAULT), IN_CLUST_SAMPLE_QTY_PARAM_MSG)\n      (RAND_REST_QTY_PARAM_OPT, po::value<IdTypeUnsign>(&RandRestQty)->default_value(RAND_REST_QTY_PARAM_DEFAULT), RAND_REST_QTY_PARAM_MSG)\n      (SEARCH_CLOSE_ITER_QTY_PARAM_OPT,po::value<IdTypeUnsign>(&SearchCloseIterQty)->default_value(SEARCH_CLOSE_ITER_QTY_PARAM_DEFAULT), SEARCH_CLOSE_ITER_QTY_PARAM_MSG)\n      (DIST_SAMPLE_QTY_PARAM_OPT, po::value<IdTypeUnsign>(&SampleDistQty)->default_value(DIST_SAMPLE_QTY_PARAM_DEFAULT), DIST_SAMPLE_QTY_PARAM_MSG)\n      (MAX_META_ITER_QTY_PARAM_OPT, po::value<IdTypeUnsign>(&maxMetaIterQty)->default_value(MAX_META_ITER_QTY_PARAM_DEFAULT), MAX_META_ITER_QTY_PARAM_MSG)\n      (KEEP_FRAC_QTY_PARAM_OPT, po::value<float>(&keepFrac)->default_value(KEEP_FRAC_QTY_PARAM_DEFAULT), KEEP_FRAC_QTY_PARAM_MSG)\n      ;\n\n  PrintProgress = !NoPrintProgress;\n\n  po::variables_map vm;\n  try {\n    po::store(po::parse_command_line(argc, argv, ProgOptDesc), vm);\n    po::notify(vm);\n  } catch (const exception& e) {\n    Usage(argv[0], ProgOptDesc);\n    LOG(LIB_FATAL) << e.what();\n  }\n\n  if (vm.count(\"help\")  ) {\n    Usage(argv[0], ProgOptDesc);\n    exit(0);\n  }\n\n  ToLower(ClustType);\n  ToLower(SpaceType);\n  \n  try {\n    {\n      vector<string> SpaceDesc;\n      string str = SpaceType;\n      ParseSpaceArg(str, SpaceType, SpaceDesc);\n      SpaceParams = shared_ptr<AnyParams>(new AnyParams(SpaceDesc));\n    }\n\n    if (DataFile.empty()) {\n      LOG(LIB_FATAL) << \"data file is not specified!\";\n    }\n\n    if (!DoesFileExist(DataFile)) {\n      LOG(LIB_FATAL) << \"data file \" << DataFile << \" doesn't exist\";\n    }\n    CHECK_MSG(MaxNumData < MAX_DATASET_QTY, \"The maximum number of points should not exceed\" + ConvertToString(MAX_DATASET_QTY));\n  } catch (const exception& e) {\n    LOG(LIB_FATAL) << \"Exception: \" << e.what();\n  }\n}\n\nint main(int argc, char* argv[]) {\n  WallClockTimer timer;\n  timer.reset();\n\n  bool                    PrintProgress;\n  string                  LogFile;\n  string                  DistType;\n  string                  SpaceType;\n  shared_ptr<AnyParams>   SpaceParams;\n  string                  ClustType;\n  IdTypeUnsign            ClustQty;\n  string                  DataFile;\n  IdTypeUnsign            MaxNumData;\n\n// reductive CLARANS parameters\n  IdTypeUnsign            maxMetaIterQty;\n  float                   keepFrac;\n  // CLARANS parameters\n  IdTypeUnsign           inClusterSwapAttempts;\n  IdTypeUnsign           inClusterSampleQty; // Number of random points to estimate if the swap was beneficial\n  IdTypeUnsign           RandRestQty;\n  // FIRMAL parameters\n  IdTypeUnsign           SearchCloseIterQty;// A # of search iterations to find a point that is close to already selected centers\n  // For good performance it should be in the order of sqrt(data.size())\n  IdTypeUnsign           SampleDistQty;      // A # of sample to determine the distribution of distances)\n\n  ParseCommandLineForClustering(argc, argv,\n                                PrintProgress,\n                                LogFile,\n                                DistType,\n                                SpaceType,\n                                SpaceParams,\n                                DataFile,\n                                MaxNumData,\n                                ClustType,\n                                ClustQty,\n      // Reductive CLARANS parameters\n                                maxMetaIterQty,\n                                keepFrac,\n      // CLARANS parameters\n                                inClusterSwapAttempts,\n                                inClusterSampleQty,\n                                RandRestQty,\n      // FIRMAL paramaters\n                                SearchCloseIterQty,\n                                SampleDistQty\n  );\n\n  initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n  ToLower(DistType);\n  ToLower(ClustType);\n\n  if (!SpaceParams) {\n    LOG(LIB_FATAL) << \"Failed to initialized space parameters!\";\n  }\n\n\n  if (DIST_TYPE_INT == DistType) {\n    RunExper<int>(PrintProgress,\n                  DistType,\n                  SpaceType,\n                  SpaceParams,\n                  DataFile,\n                  MaxNumData,\n                  ClustType,\n                  ClustQty,\n                  maxMetaIterQty,\n                  keepFrac,\n                  inClusterSwapAttempts,\n                  inClusterSampleQty,\n                  RandRestQty,\n                  SearchCloseIterQty,\n                  SampleDistQty\n    );\n  } else if (DIST_TYPE_FLOAT == DistType) {\n    RunExper<float>(PrintProgress,\n                    DistType,\n                    SpaceType,\n                    SpaceParams,\n                    DataFile,\n                    MaxNumData,\n                    ClustType,\n                    ClustQty,\n                    maxMetaIterQty,\n                    keepFrac,\n                    inClusterSwapAttempts,\n                    inClusterSampleQty,\n                    RandRestQty,\n                    SearchCloseIterQty,\n                    SampleDistQty);\n  } else if (DIST_TYPE_DOUBLE == DistType) {\n    RunExper<double>(PrintProgress,\n                     DistType,\n                     SpaceType,\n                     SpaceParams,\n                     DataFile,\n                     MaxNumData,\n                     ClustType,\n                     ClustQty,\n                     maxMetaIterQty,\n                     keepFrac,\n                     inClusterSwapAttempts,\n                     inClusterSampleQty,\n                     RandRestQty,\n                     SearchCloseIterQty,\n                     SampleDistQty);\n  } else {\n    LOG(LIB_FATAL) << \"Unknown distance value type: \" << DistType;\n  }\n\n  timer.split();\n  LOG(LIB_INFO) << \"Time elapsed = \" << timer.elapsed() / 1e6;\n  LOG(LIB_INFO) << \"Finished at \" << LibGetCurrentTime();\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_distfunc.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifdef _MSC_VER\n#define _SCL_SECURE_NO_WARNINGS\n#endif\n\n#include <iostream>\n#include <memory>\n#include <cmath>\n\n#include \"bunit.h\"\n#include \"space.h\"\n#include \"space/space_sparse_lp.h\"\n#include \"space/space_sparse_scalar.h\"\n#include \"space/space_sparse_vector_inter.h\"\n#include \"space/space_sparse_scalar_fast.h\"\n#include \"space/space_sparse_vector.h\"\n#include \"space/space_scalar.h\"\n#include \"testdataset.h\"\n#include \"distcomp.h\"\n#include \"genrand_vect.h\"\n#include \"permutation_utils.h\"\n#include \"ztimer.h\"\n#include \"pow.h\"\n\n#define RANGE          8.0f\n#define RANGE_SMALL    1e-6f\n\nnamespace similarity {\n\nusing namespace std;\n\n\n/*\n\n#ifdef  __INTEL_COMPILER\n\n// TODO: @Leo figure out how to use this function with Intel and cmake\n\n#include \"mkl.h\"\n\nTEST(set_intel) {\n    vmlSetMode(VML_HA);\n    LOG(LIB_INFO) << \"Set high-accuracy mode.\";\n}\n\n#endif\n\n*/\n\n\nTEST(Platform64) {\n  EXPECT_EQ(8 == sizeof(size_t), true);\n}\n\ntemplate <typename dist_t>\nbool checkElemVectEq(const vector<SparseVectElem<dist_t>>& source,\n                     const vector<SparseVectElem<dist_t>>& target) {\n  if (source.size() != target.size()) return false;\n\n  for (size_t i = 0; i < source.size(); ++i)\n    if (source[i] != target[i]) return false;\n\n  return true;\n}\n\ntemplate <typename dist_t>\nvoid TestSparsePackUnpack() {\n  for (size_t maxSize = 1024 ; maxSize < 1024*1024; maxSize += 8192) {\n    vector<SparseVectElem<dist_t>> source;\n    GenSparseVectZipf(maxSize, source);\n\n    LOG(LIB_INFO) << \"testing maxSize: \" << maxSize << \"\\nqty: \" <<  source.size()\n              << \" maxId: \" << source.back().id_;\n\n    char*     pBuff = NULL; \n    size_t    dataLen = 0;\n\n    PackSparseElements(source, pBuff, dataLen);\n    \n    vector<SparseVectElem<dist_t>> target;\n    UnpackSparseElements(pBuff, dataLen, target);\n\n    bool eqFlag = checkElemVectEq(source, target);\n\n    if (!eqFlag) {\n      LOG(LIB_INFO) << \"Different source and target, source.size(): \" << source.size()\n                << \" target.size(): \" << target.size();\n      // Let's print the first different in the case of equal # of elements\n      size_t i = 0;\n      for (; i < min(source.size(), target.size()); ++i) {\n        if (!(source[i] == target[i])) {\n          LOG(LIB_INFO) << \"First diff, i = \" << i << \" \" << source[i] << \" vs \" << target[i];\n          break;\n        }\n      }\n    }\n\n    EXPECT_EQ(eqFlag, true);\n  }\n}\n\nTEST(BlockZeros) {\n  for (size_t id = 0 ; id <= 3*65536; id++) {\n    size_t id1 = removeBlockZeros(id);\n   \n    size_t id2 = addBlockZeros(id1); \n    EXPECT_EQ(id, id2);\n  }\n}\n\n#ifdef DISABLE_LONG_TESTS\nTEST(DISABLE_SparsePackUnpack) {\n#else\nTEST(SparsePackUnpack) {\n#endif\n  TestSparsePackUnpack<float>();\n  TestSparsePackUnpack<double>();\n}\n\nTEST(TestEfficientPower) {\n  double f = 2.0;\n\n  for (unsigned i = 1; i <= 64; i++) {\n    double p1 = std::pow(f, i);\n    double p2 = EfficientPow(f, i);\n\n    EXPECT_EQ(p1, p2);\n  }\n}\n\nTEST(TestEfficientFract) {\n  unsigned MaxNumDig = 16;\n\n  for (float a = 1.1f ; a <= 2.0f; a+= 0.1f) {\n    for (unsigned NumDig = 1; NumDig < MaxNumDig; ++NumDig) {\n      uint64_t MaxFract = uint64_t(1) << NumDig;\n\n      for (uint64_t intFract = 0; intFract < MaxFract; ++intFract) {\n        float fract = float(intFract) / float(MaxFract);\n        float v1 = pow(a, fract);\n        float v2 = EfficientFractPow(a, fract, NumDig);\n\n        EXPECT_EQ_EPS(v1, v2, 1e-5f);\n      }\n    }\n  }  \n}\n\ntemplate <class T>\nbool TestScalarProductAgree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    float maxRelDiff = 1e-6f;\n    float maxAbsDiff = 1e-6f;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(1), T(2), true /* do normalize */);\n            GenRandVect(pVect2, dim, T(1), T(2), true /* do normalize */);\n\n            T val1 = ScalarProduct(pVect1, pVect2, dim);\n            T val2 = ScalarProductSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n            T diff = fabs(val1 - val2);\n            T diffRel = diff/max(max(fabs(val1),fabs(val2)),T(1e-18));\n            if (diffRel > maxRelDiff && diff > maxAbsDiff) {\n                bug = true;\n                cerr << \"Bug ScalarProduct !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 <<  \" diff=\" << diff << \" diffRel=\" << diffRel << endl;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n    return true;\n}\n\ntemplate <class T>\nbool TestNormScalarProductAgree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    float maxRelDiff = 1e-6f;\n    float maxAbsDiff = 1e-6f;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(1), T(2), true /* do normalize */);\n            GenRandVect(pVect2, dim, T(1), T(2), true /* do normalize */);\n\n            T val1 = NormScalarProduct(pVect1, pVect2, dim);\n            T val2 = NormScalarProductSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n            T diff = fabs(val1 - val2);\n            T diffRel = diff/max(max(fabs(val1),fabs(val2)),T(1e-18));\n            if (diffRel > maxRelDiff && diff > maxAbsDiff) {\n                bug = true;\n                cerr << \"Bug NormScalarProduct !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 <<  \" diff=\" << diff << \" diffRel=\" << diffRel << endl;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n    return true;\n}\n\n// Agreement test functions\ntemplate <class T>\nbool TestLInfAgree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, -T(RANGE), T(RANGE));\n            GenRandVect(pVect2, dim, -T(RANGE), T(RANGE));\n\n            T val1 = LInfNormStandard(pVect1, pVect2, dim);\n            T val2 = LInfNorm(pVect1, pVect2, dim);\n            T val3 = LInfNormSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n\n            if (fabs(val1 - val2)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug LInf !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 << endl;\n                bug = true;\n            }\n            if (fabs(val1 - val3)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug LInf !!! Dim = \" << dim << \" val1 = \" << val1 << \" val3 = \" << val3 << endl;\n                bug = true;\n            }\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestL1Agree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, -T(RANGE), T(RANGE));\n            GenRandVect(pVect2, dim, -T(RANGE), T(RANGE));\n\n            T val1 = L1NormStandard(pVect1, pVect2, dim);\n            T val2 = L1Norm(pVect1, pVect2, dim);\n            T val3 = L1NormSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n\n            if (fabs(val1 - val2)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug L1 !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 << endl;\n                bug = true;\n            }\n            if (fabs(val1 - val3)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug L1 !!! Dim = \" << dim << \" val1 = \" << val1 << \" val3 = \" << val3 << endl;\n                bug = true;\n            }\n            if (bug) return false;\n        }\n    }\n\n    return true;\n}\n\ntemplate <class T>\nbool TestL2Agree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, -T(RANGE), T(RANGE));\n            GenRandVect(pVect2, dim, -T(RANGE), T(RANGE));\n\n            T val1 = L2NormStandard(pVect1, pVect2, dim);\n            T val2 = L2Norm(pVect1, pVect2, dim);\n            T val3 = L2NormSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n\n            if (fabs(val1 - val2)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug L2 !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 << endl;\n                bug = true;\n            }\n            if (fabs(val1 - val3)/max(max(val1,val2),T(1e-18)) > 1e-6) {\n                cerr << \"Bug L2 !!! Dim = \" << dim << \" val1 = \" << val1 << \" val3 = \" << val3 << endl;\n                bug = true;\n            }\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestItakuraSaitoAgree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n    vector<T> precompVect1(dim *2), precompVect2(dim * 2);\n    T* pPrecompVect1 = &precompVect1[0];\n    T* pPrecompVect2 = &precompVect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(RANGE_SMALL), T(1.0), true);\n            GenRandVect(pVect2, dim, T(RANGE_SMALL), T(1.0), true);\n\n            copy(pVect1, pVect1 + dim, pPrecompVect1); \n            copy(pVect2, pVect2 + dim, pPrecompVect2); \n    \n            PrecompLogarithms(pPrecompVect1, dim);\n            PrecompLogarithms(pPrecompVect2, dim);\n\n            T val0 = ItakuraSaito(pVect1, pVect2, dim);\n            T val1 = ItakuraSaitoPrecomp(pPrecompVect1, pPrecompVect2, dim);\n            T val2 = ItakuraSaitoPrecompSIMD(pPrecompVect1, pPrecompVect2, dim);\n\n            bool bug = false;\n\n            T AbsDiff1 = fabs(val1 - val0);\n            T RelDiff1 = AbsDiff1/max(max(fabs(val1),fabs(val0)),T(1e-18));\n\n            if (RelDiff1 > 1e-5 && AbsDiff1 > 1e-5) {\n                cerr << \"Bug ItakuraSaito !!! Dim = \" << dim << \" val1 = \" << val1 << \" val0 = \" << val0 << \" Diff: \" << (val1 - val0) << \" RelDiff1: \" << RelDiff1 << \" << AbsDiff1: \" << AbsDiff1 << endl;\n                bug = true;\n            }\n\n            T AbsDiff2 = fabs(val1 - val2);\n            T RelDiff2 = AbsDiff2/max(max(fabs(val1),fabs(val2)),T(1e-18));\n            if (RelDiff2 > 1e-5 && AbsDiff2 > 1e-5) {\n                cerr << \"Bug ItakuraSaito !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 << \" Diff: \" << (val1 - val2) << \" RelDiff2: \" << RelDiff2 << \" AbsDiff2: \" << AbsDiff2 << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestKLAgree(size_t N, size_t dim, size_t Rep) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n    vector<T> precompVect1(dim *2), precompVect2(dim * 2);\n    T* pPrecompVect1 = &precompVect1[0];\n    T* pPrecompVect2 = &precompVect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(RANGE_SMALL), T(1.0), true);\n            GenRandVect(pVect2, dim, T(RANGE_SMALL), T(1.0), true);\n\n            copy(pVect1, pVect1 + dim, pPrecompVect1); \n            copy(pVect2, pVect2 + dim, pPrecompVect2); \n    \n            PrecompLogarithms(pPrecompVect1, dim);\n            PrecompLogarithms(pPrecompVect2, dim);\n\n            T val0 = KLStandard(pVect1, pVect2, dim);\n            T val1 = KLStandardLogDiff(pVect1, pVect2, dim);\n            T val2 = KLPrecomp(pPrecompVect1, pPrecompVect2, dim);\n            T val3 = KLPrecompSIMD(pPrecompVect1, pPrecompVect2, dim);\n\n            bool bug = false;\n\n            /* \n             * KLStandardLog has a worse accuracy due to computing the log of ratios\n             * as opposed to difference of logs, but it is more efficient (log can be\n             * expensive to compute)\n             */\n\n            T AbsDiff1 = fabs(val1 - val0);\n            T RelDiff1 = AbsDiff1/max(max(fabs(val1),fabs(val0)),T(1e-18));\n            if (RelDiff1 > 1e-5 && AbsDiff1 > 1e-5) {\n                cerr << \"Bug KL !!! Dim = \" << dim << \" val0 = \" << val0 << \" val1 = \" << val1 << \" Diff: \" << (val0 - val1) << \" RelDiff1: \" << RelDiff1 << \" AbsDiff1: \" << AbsDiff1 << endl;\n                bug = true;\n            }\n\n            T AbsDiff2 = fabs(val1 - val2);\n            T RelDiff2 = AbsDiff2/max(max(fabs(val1),fabs(val2)),T(1e-18));\n            if (RelDiff2 > 1e-5 && AbsDiff2 > 1e-5) {\n                cerr << \"Bug KL !!! Dim = \" << dim << \" val2 = \" << val2 << \" val1 = \" << val1 << \" Diff: \" << (val2 - val1) << \" RelDiff2: \" << RelDiff2 << \" AbsDiff2: \" << AbsDiff2 << endl;\n                bug = true;\n            }\n\n            T AbsDiff3 = fabs(val1 - val3);\n            T RelDiff3 = AbsDiff3/max(max(fabs(val1),fabs(val3)),T(1e-18));\n            if (RelDiff3 > 1e-5 && AbsDiff3 > 1e-5) {\n                cerr << \"Bug KL !!! Dim = \" << dim << \" val3 = \" << val3 << \" val1 = \" << val1 << \" Diff: \" << (val3 - val1) << \" RelDiff3: \" << RelDiff3 << \" AbsDiff3: \" << AbsDiff3 << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestKLGeneralAgree(size_t N, size_t dim, size_t Rep) {\n    T* pVect1 = new T[dim];\n    T* pVect2 = new T[dim];\n    T* pPrecompVect1 = new T[dim * 2];\n    T* pPrecompVect2 = new T[dim * 2];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(RANGE_SMALL), T(1.0), false);\n            GenRandVect(pVect2, dim, T(RANGE_SMALL), T(1.0), false);\n\n            copy(pVect1, pVect1 + dim, pPrecompVect1); \n            copy(pVect2, pVect2 + dim, pPrecompVect2); \n    \n            PrecompLogarithms(pPrecompVect1, dim);\n            PrecompLogarithms(pPrecompVect2, dim);\n\n            T val0 = KLGeneralStandard(pVect1, pVect2, dim);\n            T val2 = KLGeneralPrecomp(pPrecompVect1, pPrecompVect2, dim);\n            T val3 = KLGeneralPrecompSIMD(pPrecompVect1, pPrecompVect2, dim);\n\n            bool bug = false;\n\n            T AbsDiff1 = fabs(val2 - val0);\n            T RelDiff1 = AbsDiff1/max(max(fabs(val2),fabs(val0)),T(1e-18));\n            if (RelDiff1 > 1e-5 && AbsDiff1 > 1e-5) {\n                cerr << \"Bug KL !!! Dim = \" << dim << \" val0 = \" << val0 << \" val2 = \" << val2 << \" Diff: \" << (val0 - val2) << \" RelDiff1: \" << RelDiff1 << \" AbsDiff1: \" << AbsDiff1 << endl;\n                bug = true;\n            }\n\n            T AbsDiff2 = fabs(val3 - val2);\n            T RelDiff2 = AbsDiff2/max(max(fabs(val3),fabs(val2)),T(1e-18));\n            if (RelDiff2 > 1e-5 && AbsDiff2 > 1e-5) {\n                cerr << \"Bug KL !!! Dim = \" << dim << \" val2 = \" << val2 << \" val3 = \" << val3 << \" Diff: \" << (val2 - val3) << \" RelDiff2: \" << RelDiff2 << \" AbsDiff2: \" << AbsDiff2 << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestJSAgree(size_t N, size_t dim, size_t Rep, double pZero) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n    vector<T> precompVect1(dim *2), precompVect2(dim * 2);\n    T* pPrecompVect1 = &precompVect1[0];\n    T* pPrecompVect2 = &precompVect2[0];\n\n    T Dist = 0;\n    T Error = 0;\n    T TotalQty = 0;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, T(RANGE_SMALL), T(1.0), true);\n            SetRandZeros(pVect1, dim, pZero);\n            Normalize(pVect1, dim);\n            GenRandVect(pVect2, dim, T(RANGE_SMALL), T(1.0), true);\n            SetRandZeros(pVect2, dim, pZero);\n            Normalize(pVect2, dim);\n\n            copy(pVect1, pVect1 + dim, pPrecompVect1); \n            copy(pVect2, pVect2 + dim, pPrecompVect2); \n    \n            PrecompLogarithms(pPrecompVect1, dim);\n            PrecompLogarithms(pPrecompVect2, dim);\n\n            T val0 = JSStandard(pVect1, pVect2, dim);\n            T val1 = JSPrecomp(pPrecompVect1, pPrecompVect2, dim);\n\n            bool bug = false;\n\n            T AbsDiff1 = fabs(val1 - val0);\n            T RelDiff1 = AbsDiff1/max(max(fabs(val1),fabs(val0)),T(1e-18));\n\n            if (RelDiff1 > 1e-5 && AbsDiff1 > 1e-5) {\n                cerr << \"Bug JS (1) \" << typeid(T).name() << \" !!! Dim = \" << dim << \" val0 = \" << val0 << \" val1 = \" << val1 << \" Diff: \" << (val0 - val1) << \" RelDiff1: \" << RelDiff1 << \" AbsDiff1: \" << AbsDiff1 << endl;\n                bug = true;\n            }\n\n            T val2 = JSPrecompApproxLog(pPrecompVect1, pPrecompVect2, dim);\n            T val3 = JSPrecompSIMDApproxLog(pPrecompVect1, pPrecompVect2, dim);\n\n            T AbsDiff2 = fabs(val2 - val3);\n            T RelDiff2 = AbsDiff2/max(max(fabs(val2),fabs(val3)),T(1e-18));\n\n            if (RelDiff2 > 1e-5 && AbsDiff2 > 1e-5) {\n                cerr << \"Bug JS (2) \" << typeid(T).name() << \" !!! Dim = \" << dim << \" val2 = \" << val2 << \" val3 = \" << val3 << \" Diff: \" << (val2 - val3) << \" RelDiff2: \" << RelDiff2 << \" AbsDiff2: \" << AbsDiff2 << endl;\n                bug = true;\n            }\n\n            T AbsDiff3 = fabs(val1 - val2);\n            T RelDiff3 = AbsDiff3/max(max(fabs(val1),fabs(val2)),T(1e-18));\n\n            Dist += val1;\n            Error += AbsDiff3;\n            ++TotalQty;\n\n            if (RelDiff3 > 1e-4 && AbsDiff3 > 1e-4) {\n                cerr << \"Bug JS (3) \" << typeid(T).name() << \" !!! Dim = \" << dim << \" val1 = \" << val1 << \" val2 = \" << val2 << \" Diff: \" << (val1 - val2) << \" RelDiff3: \" << RelDiff3 << \" AbsDiff2: \" << AbsDiff3 << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n    LOG(LIB_INFO) << typeid(T).name() << \" JS approximation error: average absolute: \" << Error / TotalQty << \n                                \" avg. dist: \" << Dist / TotalQty << \" average relative: \" << Error/Dist;\n\n\n    return true;\n}\n\nbool TestSpearmanFootruleAgree(size_t N, size_t dim, size_t Rep) {\n    vector<PivotIdType> vect1(dim), vect2(dim);\n    PivotIdType* pVect1 = &vect1[0]; \n    PivotIdType* pVect2 = &vect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandIntVect(pVect1, dim);\n            GenRandIntVect(pVect2, dim);\n\n            int val0 = SpearmanFootrule(pVect1, pVect2, dim);\n            int val1 = SpearmanFootruleSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n\n\n            if (val0 != val1) {\n                cerr << \"Bug SpearmanFootrule  !!! Dim = \" << dim << \" val0 = \" << val0 << \" val1 = \" << val1  << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\nbool TestSpearmanRhoAgree(size_t N, size_t dim, size_t Rep) {\n    vector<PivotIdType> vect1(dim), vect2(dim);\n    PivotIdType* pVect1 = &vect1[0]; \n    PivotIdType* pVect2 = &vect2[0];\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandIntVect(pVect1, dim);\n            GenRandIntVect(pVect2, dim);\n\n            int val0 = SpearmanRho(pVect1, pVect2, dim);\n            int val1 = SpearmanRhoSIMD(pVect1, pVect2, dim);\n\n            bool bug = false;\n\n\n            if (val0 != val1) {\n                cerr << \"Bug SpearmanRho !!! Dim = \" << dim << \" val0 = \" << val0 << \" val1 = \" << val1 << \" Diff: \" << (val0 - val1) << endl;\n                bug = true;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n\n    return true;\n}\n\ntemplate <class T>\nbool TestLPGenericAgree(size_t N, size_t dim, size_t Rep, T power) {\n    vector<T> vect1(dim), vect2(dim);\n    T* pVect1 = &vect1[0]; \n    T* pVect2 = &vect2[0];\n\n    T  TotalQty = 0, Error = 0, Dist = 0;\n\n    for (size_t i = 0; i < Rep; ++i) {\n        for (size_t j = 1; j < N; ++j) {\n            GenRandVect(pVect1, dim, -T(RANGE), T(RANGE));\n            GenRandVect(pVect2, dim, -T(RANGE), T(RANGE));\n\n            T val0 = LPGenericDistance(pVect1, pVect2, dim, power);\n            T val1 = LPGenericDistanceOptim(pVect1, pVect2, dim, power);\n\n            bool bug = false;\n\n            T AbsDiff1 = fabs(val1 - val0);\n            T RelDiff1 = AbsDiff1/max(max(fabs(val1),fabs(val0)),T(1e-18));\n\n            T maxRelDiff = 1e-5f;\n            T maxAbsDiff = 1e-5f;\n            /* \n             * For large powers, the difference can be larger,\n             * because our approximations are efficient, but not very\n             * precise\n             */\n            if (power > 8) { maxAbsDiff = maxRelDiff = 1e-3f;}\n            if (power > 12) { maxAbsDiff = maxRelDiff = 0.01f;}\n            if (power > 22) { maxAbsDiff = maxRelDiff = 0.1f;}\n\n            ++TotalQty;\n            Error += RelDiff1;\n            Dist += val0;\n\n            if (RelDiff1 > maxRelDiff && AbsDiff1 > maxAbsDiff) {\n                cerr << \"Bug LP\" << power << \" !!! Dim = \" << dim << \n                \" val1 = \" << val1 << \" val0 = \" << val0 << \n                \" Diff: \" << (val1 - val0) << \n                \" RelDiff1: \" << RelDiff1 << \n                \" (max for this power: \" << maxRelDiff << \")  \" <<\n                \" AbsDiff1: \" << AbsDiff1 << \" (max for this power: \" << maxAbsDiff << \")\" << endl;\n            }\n\n            if (bug) return false;\n        }\n    }\n\n    if (power < 4) {\n      LOG(LIB_INFO) << typeid(T).name() << \" LP approximation error: average absolute \" << Error / TotalQty << \" avg. dist: \" << Dist / TotalQty << \" average relative: \" << Error/Dist;\n\n    }\n\n    return true;\n}\n\nbool TestBitHammingAgree(size_t N, size_t dim, size_t Rep) {\n    size_t WordQty = (dim + 31)/32; \n    vector<uint32_t> arr(N * WordQty);\n    uint32_t*        pArr = &arr[0];\n\n    uint32_t *p = pArr;\n    for (size_t i = 0; i < N; ++i, p+= WordQty) {\n        vector<PivotIdType> perm(dim);\n        GenRandIntVect(&perm[0], dim);\n        for (unsigned j = 0; j < dim; ++j)\n          perm[j] = perm[j] % 2;\n        vector<uint32_t> h;\n        Binarize(perm, 1, h); \n        CHECK(h.size() == WordQty);\n        memcpy(p, &h[0], WordQty * sizeof(h[0]));\n    }\n\n    WallClockTimer  t;\n\n    t.reset();\n\n    bool res = true;\n\n    for (size_t j = 1; j < N; ++j) {\n        uint32_t* pVect1 = pArr + j*WordQty;\n        uint32_t* pVect2 = pArr + (j-1)*WordQty;\n        int d1 =  BitHamming(pVect1, pVect2, WordQty);\n        int d2 = 0;\n\n        for (unsigned t = 0; t < WordQty; ++t) {\n          for (unsigned k = 0; k < 32; ++k) {\n            d2 += ((pVect1[t]>>k)&1) != ((pVect2[t]>>k)&1);\n          }\n        }\n        if (d1 != d2) {\n          cerr << \"Bug bit hamming, WordQty = \" << WordQty << \" d1 = \" << d1 << \" d2 = \" << d2 << endl;\n          res = false;\n          break;\n        }\n    }\n\n    return res;\n}\n\n\nbool TestSparseAngularDistanceAgree(const string& dataFile, size_t N, size_t Rep) {\n    typedef float T;\n\n    unique_ptr<SpaceSparseAngularDistanceFast>     spaceFast(new SpaceSparseAngularDistanceFast());\n    unique_ptr<SpaceSparseAngularDistance<float>>  spaceReg(new SpaceSparseAngularDistance<T>());\n\n    ObjectVector                                 elemsFast;\n    ObjectVector                                 elemsReg;\n    vector<string>                               tmp;\n\n    unique_ptr<DataFileInputState> inpStateFast(spaceFast->ReadDataset(elemsFast, tmp, dataFile, N));\n    spaceFast->UpdateParamsFromFile(*inpStateFast);\n    unique_ptr<DataFileInputState> inpStateReg(spaceReg->ReadDataset(elemsReg, tmp, dataFile, N));\n    spaceReg->UpdateParamsFromFile(*inpStateReg);\n\n    CHECK(elemsFast.size() == elemsReg.size());\n\n    N = min(N, elemsReg.size());\n\n    bool bug = false;\n\n    float maxRelDiff = 2e-5f;\n    float maxAbsDiff = 1e-6f;\n\n    for (size_t j = Rep; j < N; ++j)\n        for (size_t k = j - Rep; k < j; ++k) {\n        float val1 = spaceFast->IndexTimeDistance(elemsFast[k], elemsFast[j]);\n        float val2 = spaceReg->IndexTimeDistance(elemsReg[k], elemsReg[j]);\n\n        float AbsDiff1 = fabs(val1 - val2);\n        float RelDiff1 = AbsDiff1 / max(max(fabs(val1), fabs(val2)), T(1e-18));\n\n        if (RelDiff1 > maxRelDiff && AbsDiff1 > maxAbsDiff) {\n            cerr << \"Bug fast vs non-fast angular dist \" <<\n                \" val1 = \" << val1 << \" val2 = \" << val2 <<\n                \" Diff: \" << (val1 - val2) <<\n                \" RelDiff1: \" << RelDiff1 <<\n                \" AbsDiff1: \" << AbsDiff1 << endl;\n            bug = true;\n        }\n\n        if (bug) return false;\n        }\n\n    return true;\n}\n\n\n\nbool TestSparseCosineSimilarityAgree(const string& dataFile, size_t N, size_t Rep) {\n    typedef float T;\n\n    unique_ptr<SpaceSparseCosineSimilarityFast>     spaceFast(new SpaceSparseCosineSimilarityFast());\n    unique_ptr<SpaceSparseCosineSimilarity<float>>  spaceReg (new SpaceSparseCosineSimilarity<T>());\n\n    ObjectVector                                 elemsFast;\n    ObjectVector                                 elemsReg;\n    vector<string>                               tmp;\n\n    unique_ptr<DataFileInputState> inpStateFast(spaceFast->ReadDataset(elemsFast, tmp, dataFile,  N)); \n    spaceFast->UpdateParamsFromFile(*inpStateFast);\n    unique_ptr<DataFileInputState> inpStateReg(spaceReg->ReadDataset(elemsReg, tmp, dataFile,  N)); \n    spaceReg->UpdateParamsFromFile(*inpStateReg);\n\n    CHECK(elemsFast.size() == elemsReg.size());\n\n    N = min(N, elemsReg.size());\n\n    bool bug = false;\n\n    float maxRelDiff = 1e-6f;\n    float maxAbsDiff = 1e-6f;\n\n    for (size_t j = Rep; j < N; ++j) \n    for (size_t k = j - Rep; k < j; ++k) {\n        float val1 = spaceFast->IndexTimeDistance(elemsFast[k], elemsFast[j]);\n        float val2 = spaceReg->IndexTimeDistance(elemsReg[k], elemsReg[j]);\n\n        float AbsDiff1 = fabs(val1 - val2);\n        float RelDiff1 = AbsDiff1/max(max(fabs(val1),fabs(val2)),T(1e-18));\n\n        if (RelDiff1 > maxRelDiff && AbsDiff1 > maxAbsDiff) {\n            cerr << \"Bug fast vs non-fast cosine \" << \n            \" val1 = \" << val1 << \" val2 = \" << val2 << \n            \" Diff: \" << (val1 - val2) << \n            \" RelDiff1: \" << RelDiff1 << \n            \" AbsDiff1: \" << AbsDiff1 << endl;\n            bug = true;\n        }\n\n        if (bug) return false;\n    }\n\n    return true;\n}\n\n#ifdef DISABLE_LONG_TESTS\nTEST(DISABLE_TestAgree) {\n#else\nTEST(TestAgree) {\n#endif\n    int nTest  = 0;\n    int nFail = 0;\n\n    nTest++;\n    nFail += !TestSparseAngularDistanceAgree(sampleDataPrefix + \"sparse_5K.txt\", 1000, 200);\n\n    nTest++;\n    nFail += !TestSparseAngularDistanceAgree(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 200);\n\n    nTest++;\n    nFail += !TestSparseCosineSimilarityAgree(sampleDataPrefix + \"sparse_5K.txt\", 1000, 200);\n\n    nTest++;\n    nFail += !TestSparseCosineSimilarityAgree(sampleDataPrefix + \"sparse_wiki_5K.txt\", 1000, 200);\n   \n    /* \n     * 32 should be more than enough for almost all methods,\n     * where loop-unrolling  includes at most 16 distance computations.\n     *\n     * Bit-Hamming is an exception.\n     * \n     */\n    for (unsigned dim = 1; dim <= 1024; dim+=2) {\n        LOG(LIB_INFO) << \"Dim = \" << dim;\n\n        nFail += !TestBitHammingAgree(1000, dim, 1000);\n    }\n\n    for (unsigned dim = 1; dim <= 32; ++dim) {\n        LOG(LIB_INFO) << \"Dim = \" << dim;\n\n        /* \n         * This is a costly check, we don't need to do it for large # dimensions.\n         * Anyways, the function is not using any loop unrolling, so 8 should be sufficient.\n         */\n        if (dim <= 8) {\n\n          for (float power = 0.125; power <= 32; power += 0.125) {\n            TestLPGenericAgree(1024, dim, 10, power);\n          }\n\n          for (double power = 0.125; power <= 32; power += 0.125) {\n            TestLPGenericAgree(1024, dim, 10, power);\n          }\n        }\n\n        nTest++;\n        nFail += !TestNormScalarProductAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestNormScalarProductAgree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestScalarProductAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestScalarProductAgree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestSpearmanFootruleAgree(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestSpearmanRhoAgree(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestJSAgree<float>(1024, dim, 10, 0.5);\n        nTest++;\n        nFail += !TestJSAgree<double>(1024, dim, 10, 0.5);\n\n        nTest++;\n        nFail += !TestKLGeneralAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestKLGeneralAgree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestLInfAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestLInfAgree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestL1Agree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestL1Agree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestL2Agree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestL2Agree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestKLAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestKLAgree<double>(1024, dim, 10);\n\n        nTest++;\n        nFail += !TestItakuraSaitoAgree<float>(1024, dim, 10);\n        nTest++;\n        nFail += !TestItakuraSaitoAgree<double>(1024, dim, 10);\n    }\n\n    LOG(LIB_INFO) << nTest << \" (sub) tests performed \" << nFail << \" failed\";\n\n    EXPECT_EQ(0, nFail);\n}\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_editdist.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <memory>\n#include <string>\n\n#include \"space/space_leven.h\"\n#include \"distcomp_edist.h\"\n#include \"bunit.h\"\n#include \"testdataset.h\"\n\nnamespace similarity {\n\nconst size_t NUM_TEST_SHORT_STR = 16;\n\nusing namespace std;\n\nconst char* pTestArr[NUM_TEST_SHORT_STR] = {\n  \"xyz\", \"beagcfa\", \"cea\", \"cb\",\n  \"d\", \"c\", \"bdaf\", \"ddcd\",\n  \"egbfa\", \"a\", \"fba\", \"bcccfe\",\n  \"ab\", \"bfgbfdc\", \"bcbbgf\", \"bfbb\"\n};\n\nclass ShortStringDataSet : public TestDataset {\n public:\n  ShortStringDataSet(SpaceLevenshtein& space) {\n\n    for (unsigned i = 0; i < NUM_TEST_SHORT_STR; ++i) {\n      dataobjects_.push_back(space.CreateObjFromStr(i, -1, pTestArr[i], NULL).release());\n    }\n  }\n};\n\n\nTEST(EditDistanceShort) {\n  unique_ptr<SpaceLevenshtein> space(new SpaceLevenshtein());\n\n  ShortStringDataSet dataset(*space);\n  const ObjectVector& dataobjects = dataset.GetDataObjects();\n\n  const int expected[16][16] = {\n    {0, 7, 3, 3, 3, 3, 4, 4, 5, 3, 3, 6, 3, 7, 6, 4},\n    {7, 0, 5, 6, 7, 6, 4, 6, 3, 6, 6, 4, 6, 5, 5, 6},\n    {3, 5, 0, 2, 3, 2, 3, 4, 4, 2, 2, 5, 3, 7, 5, 4},\n    {3, 6, 2, 0, 2, 1, 4, 3, 4, 2, 2, 5, 1, 6, 4, 3},\n    {3, 7, 3, 2, 0, 1, 3, 3, 5, 1, 3, 6, 2, 6, 6, 4},\n    {3, 6, 2, 1, 1, 0, 4, 3, 5, 1, 3, 5, 2, 6, 5, 4},\n    {4, 4, 3, 4, 3, 4, 0, 3, 4, 3, 3, 4, 3, 5, 4, 3},\n    {4, 6, 4, 3, 3, 3, 3, 0, 5, 4, 4, 5, 4, 6, 6, 4},\n    {5, 3, 4, 4, 5, 5, 4, 5, 0, 4, 3, 5, 4, 4, 5, 4},\n    {3, 6, 2, 2, 1, 1, 3, 4, 4, 0, 2, 6, 1, 7, 6, 4},\n    {3, 6, 2, 2, 3, 3, 3, 4, 3, 2, 0, 6, 2, 5, 5, 2},\n    {6, 4, 5, 5, 6, 5, 4, 5, 5, 6, 6, 0, 6, 5, 4, 5},\n    {3, 6, 3, 1, 2, 2, 3, 4, 4, 1, 2, 6, 0, 6, 5, 3},\n    {7, 5, 7, 6, 6, 6, 5, 6, 4, 7, 5, 5, 6, 0, 5, 4},\n    {6, 5, 5, 4, 6, 5, 4, 6, 5, 6, 5, 4, 5, 5, 0, 3},\n    {4, 6, 4, 3, 4, 4, 3, 4, 4, 4, 2, 5, 3, 4, 3, 0} };\n\n  for (size_t i = 0; i < NUM_TEST_SHORT_STR; ++i) {\n    for (size_t j = 0; j < NUM_TEST_SHORT_STR; ++j) {\n      const int d = space->IndexTimeDistance(dataobjects[i], dataobjects[j]);\n      if (expected[i][j] != d) {\n        LOG(LIB_ERROR) << \"Bug, expected: \" << expected[i][j] << \" got \" << d\n                       << \"Strings: '\" << pTestArr[i] << \"' vs '\" << pTestArr[j] << \"'\";\n      }\n      EXPECT_EQ(expected[i][j], d);\n    }\n  }\n}\n\n/*\n * This test is needed to merely verify the correctness\n * of the hybrid memory allocation strategy:\n * relatively short strings will use stack memory,\n * for longer ones we use malloc-based methods.\n */\n\nstring str1, str2;\n\nclass LongStringDataSet : public TestDataset {\n public:\n  LongStringDataSet(SpaceLevenshtein& space) {\n\n    str1 = string(MAX_LEVEN_BUFFER_QTY + 1, 'a');\n    str2 = string(MAX_LEVEN_BUFFER_QTY, 'c') + str1 + string(MAX_LEVEN_BUFFER_QTY, 'b');\n\n    dataobjects_.push_back(space.CreateObjFromStr(0, -1, str1, NULL).release());\n    dataobjects_.push_back(space.CreateObjFromStr(0, -1, str2, NULL).release());\n  }\n};\n\n\nTEST(EditDistanceLong) {\n  unique_ptr<SpaceLevenshtein> space(new SpaceLevenshtein());\n\n  LongStringDataSet dataset(*space);\n  const ObjectVector& dataobjects = dataset.GetDataObjects();\n\n  int d = space->IndexTimeDistance(dataobjects[0], dataobjects[1]);\n  EXPECT_EQ(2 * MAX_LEVEN_BUFFER_QTY, d);\n  d = space->IndexTimeDistance(dataobjects[1], dataobjects[0]);\n  EXPECT_EQ(2 * MAX_LEVEN_BUFFER_QTY, d);\n\n}\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_eval.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"logging.h\"\n#include \"utils.h\"\n#include \"bunit.h\"\n\n#include <limits>\n#include <iostream>\n\n#include <eval_metrics.h>\n\nusing namespace std;\n\nnamespace similarity {\n\ntemplate <class dist_t, class EvalObj>\nvoid testMetric(\n          size_t ExactResultSize,\n          vector<ResultEntry<dist_t>> exactEntries,\n          vector<ResultEntry<dist_t>> approxEntries,\n          const double expVal) {\n  unordered_set<IdType> exactIds;\n  unordered_set<IdType> approxIds;\n\n  // Let's sort the entries\n  std::sort(exactEntries.begin(), exactEntries.end());\n  std::sort(approxEntries.begin(), approxEntries.end());\n\n  {\n    size_t i = 0;\n    for (const auto& e:exactEntries) {\n      ++i;\n      if (i > ExactResultSize) break;\n      exactIds.insert(e.mId);\n    }\n  }\n  for (const auto& e:approxEntries) approxIds.insert(e.mId);\n\n  double val = EvalObj()(ExactResultSize, exactEntries, exactIds, approxEntries, approxIds);\n\n  EXPECT_EQ_EPS(expVal, val, 1e-4);\n};\n\ntypedef ResultEntry<float>  RESF;\ntypedef ResultEntry<double>  RESD;\ntypedef ResultEntry<int>    RESI;\n\nconst float  EPSF = numeric_limits<float>::min();\nconst double EPSD = numeric_limits<double>::min();\n\nconst size_t KNN = 10;\n\nTEST(TestRecallDouble) {\n  vector<vector<RESD>> exactEntries = {\n    {},\n    {},\n    {RESD(0, 0, 100)},\n    { RESD(0, 0, 1), RESD(1, 0, 2), RESD(3, 0, 3), RESD(4, 0, 4), RESD(5, 0, 5), RESD(6, 0, 6), RESD(7, 0, 7), RESD(8, 0, 8), RESD(9, 0, 9), RESD(10, 0, 10), },\n    { RESD(0, 0, 1), RESD(1, 0, 2), RESD(3, 0, 3), RESD(4, 0, 4), RESD(5, 0, 5), RESD(6, 0, 6), RESD(7, 0, 7), RESD(8, 0, 8), RESD(9, 0, 9), RESD(10, 0, 10), },\n  };\n  vector<vector<RESD>> approxEntries = {\n    {},\n    {RESD(0, 0, 100)},\n    {},\n    { RESD(0, 0, 1), RESD(3, 0, 3), RESD(5, 0, 5), RESD(7, 0, 7), RESD(9, 0, 9), },\n    { RESD(0, 0, 1), RESD(1, 0, 2), RESD(3, 0, 3), RESD(4, 0, 4), RESD(5, 0, 5), RESD(6, 0, 6), RESD(7, 0, 7), RESD(8, 0, 8), RESD(9, 0, 9), RESD(10, 0, 10), },\n  };\n  vector<double> expRecall {\n    1,\n    1,\n    0.0,\n    0.5,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expRecall.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<double,EvalRecall<double>>(KNN, exactEntries[i], approxEntries[i], expRecall[i]); \n    // In a special case when there are no results recall should be equal to 1\n    testMetric<double,EvalRecall<double>>(0, exactEntries[i], approxEntries[i], 1.0);\n  }\n}\n\n\nTEST(TestRecallFloat) {\n  vector<vector<RESF>> exactEntries = {\n    {},\n    {},\n    {RESF(0, 0, 100)},\n    { RESF(0, 0, 1), RESF(1, 0, 2), RESF(3, 0, 3), RESF(4, 0, 4), RESF(5, 0, 5), RESF(6, 0, 6), RESF(7, 0, 7), RESF(8, 0, 8), RESF(9, 0, 9), RESF(10, 0, 10), },\n    { RESF(0, 0, 1), RESF(1, 0, 2), RESF(3, 0, 3), RESF(4, 0, 4), RESF(5, 0, 5), RESF(6, 0, 6), RESF(7, 0, 7), RESF(8, 0, 8), RESF(9, 0, 9), RESF(10, 0, 10), },\n  };\n  vector<vector<RESF>> approxEntries = {\n    {},\n    {RESF(0, 0, 100)},\n    {},\n    { RESF(0, 0, 1), RESF(3, 0, 3), RESF(5, 0, 5), RESF(7, 0, 7), RESF(9, 0, 9), },\n    { RESF(0, 0, 1), RESF(1, 0, 2), RESF(3, 0, 3), RESF(4, 0, 4), RESF(5, 0, 5), RESF(6, 0, 6), RESF(7, 0, 7), RESF(8, 0, 8), RESF(9, 0, 9), RESF(10, 0, 10), },\n  };\n  vector<double> expRecall {\n    1,\n    1,\n    0.0,\n    0.5,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expRecall.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<float,EvalRecall<float>>(KNN, exactEntries[i], approxEntries[i], expRecall[i]); \n    // In a special case when there are no results recall should be equal to 1\n    testMetric<float,EvalRecall<float>>(0, exactEntries[i], approxEntries[i], 1.0);\n  }\n}\n\nTEST(TestRecallInt) {\n  vector<vector<RESI>> exactEntries = {\n    {},\n    {},\n    {RESI(0, 0, 100)},\n    { RESI(0, 0, 1), RESI(1, 0, 2), RESI(3, 0, 3), RESI(4, 0, 4), RESI(5, 0, 5), RESI(6, 0, 6), RESI(7, 0, 7), RESI(8, 0, 8), RESI(9, 0, 9), RESI(10, 0, 10), },\n    { RESI(0, 0, 1), RESI(1, 0, 2), RESI(3, 0, 3), RESI(4, 0, 4), RESI(5, 0, 5), RESI(6, 0, 6), RESI(7, 0, 7), RESI(8, 0, 8), RESI(9, 0, 9), RESI(10, 0, 10), },\n  };\n  vector<vector<RESI>> approxEntries = {\n    {},\n    {RESI(0, 0, 100)},\n    {},\n    { RESI(0, 0, 1), RESI(3, 0, 3), RESI(5, 0, 5), RESI(7, 0, 7), RESI(9, 0, 9), },\n    { RESI(0, 0, 1), RESI(1, 0, 2), RESI(3, 0, 3), RESI(4, 0, 4), RESI(5, 0, 5), RESI(6, 0, 6), RESI(7, 0, 7), RESI(8, 0, 8), RESI(9, 0, 9), RESI(10, 0, 10), },\n  };\n  vector<double> expRecall {\n    1,\n    1,\n    0.0,\n    0.5,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expRecall.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<int,EvalRecall<int>>(KNN, exactEntries[i], approxEntries[i], expRecall[i]); \n    // In a special case when there are no results recall should be equal to 1\n    testMetric<int,EvalRecall<int>>(0, exactEntries[i], approxEntries[i], 1.0);\n  }\n}\n\nTEST(TestNumCloserDouble) {\n  vector<vector<RESD>> exactEntries = {\n    {},\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n  };\n  vector<vector<RESD>> approxEntries = {\n    {},\n    {},\n    { RESD(33, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(33, 0, EPSD), RESD(1, 0, 1 + EPSD), RESD(2, 0, 2 + EPSD) },\n    { RESD(11, 0, 2), RESD(12, 0, 2.0001), RESD(13, 0, 2.0001) },\n  };\n  vector<double> expNumCloser {\n    0,\n    static_cast<double>(exactEntries[1].size()),\n    0,\n    0,\n    2\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<double,EvalNumberCloser<double>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results the number of points that are closer is 0 \n    testMetric<double,EvalNumberCloser<double>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestNumCloserFloat) {\n  vector<vector<RESF>> exactEntries = {\n    {},\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n  };\n  vector<vector<RESF>> approxEntries = {\n    {},\n    {},\n    { RESF(33, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(33, 0, EPSF), RESF(1, 0, 1 + EPSF), RESF(2, 0, 2 + EPSF) },\n    { RESF(11, 0, 2), RESF(12, 0, 2.0001), RESF(13, 0, 2.0001) },\n  };\n  vector<double> expNumCloser {\n    0,\n    static_cast<double>(exactEntries[1].size()),\n    0,\n    0,\n    2\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<float,EvalNumberCloser<float>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results the number of points that are closer is 0 \n    testMetric<float,EvalNumberCloser<float>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestNumCloserInt) {\n  vector<vector<RESI>> exactEntries = {\n    {},\n    { RESI(0, 0, 1), RESI(1, 0, 1), RESI(2, 0, 1) },\n    { RESI(0, 0, 1), RESI(1, 0, 1), RESI(2, 0, 1) },\n    { RESI(0, 0, 1), RESI(1, 0, 3), RESI(2, 0, 3) },\n    { RESI(0, 0, 1), RESI(1, 0, 1), RESI(2, 0, 1) },\n  };\n  vector<vector<RESI>> approxEntries = {\n    {},\n    {},\n    { RESI(0, 0, 1), RESI(1, 0, 1), RESI(2, 0, 1) },\n    { RESI(33, 0, 2), RESI(1, 0, 3), RESI(2, 0, 3) },\n    { RESI(10, 0, 1), RESI(11, 0, 1), RESI(12, 0, 1) },\n  };\n  vector<double> expNumCloser {\n    0,\n    static_cast<double>(exactEntries[1].size()),\n    0,\n    1,\n    0\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<int,EvalNumberCloser<int>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results the number of points that are closer is 0 \n    testMetric<int,EvalNumberCloser<int>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestRelPosErrorDouble) {\n  vector<vector<RESD>> exactEntries = {\n    {},\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2), RESD(3, 0, 3) },\n    { RESD(0, 0, 33), RESD(1, 0, 33), RESD(2, 0, 33) },\n    { RESD(0, 0, 33), RESD(1, 0, 33), RESD(2, 0, 33) },\n  };\n  vector<vector<RESD>> approxEntries = {\n    {},\n    {},\n    { RESD(10, 0, 1), RESD(11, 0, 3) },\n    { RESD(10, 0, 33), RESD(11, 0, 33), RESD(12, 0, 33) },\n    { RESD(10, 0, 33 + + numeric_limits<double>::epsilon()), RESD(11, 0, 33 + + numeric_limits<double>::epsilon()), RESD(12, 0, 33 + numeric_limits<double>::epsilon()) },\n  };\n  vector<double> expNumCloser {\n    0,\n    log(static_cast<double>(exactEntries[1].size())),\n    log(2),\n    0,\n    0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<double,EvalLogRelPosError<double>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    /* \n     * In a special case when there are no results the relative position error should be 1.0 and\n     * its logarithm should be zero\n     */\n    testMetric<double,EvalLogRelPosError<double>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestRelPosErrorFloat) {\n  vector<vector<RESF>> exactEntries = {\n    {},\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2), RESF(3, 0, 3) },\n    { RESF(0, 0, 33), RESF(1, 0, 33), RESF(2, 0, 33) },\n    { RESF(0, 0, 33), RESF(1, 0, 33), RESF(2, 0, 33) },\n  };\n  vector<vector<RESF>> approxEntries = {\n    {},\n    {},\n    { RESF(10, 0, 1), RESF(11, 0, 3) },\n    { RESF(10, 0, 33), RESF(11, 0, 33), RESF(12, 0, 33) },\n    { RESF(10, 0, 33 + + numeric_limits<float>::epsilon()), RESF(11, 0, 33 + + numeric_limits<float>::epsilon()), RESF(12, 0, 33 + numeric_limits<float>::epsilon()) },\n  };\n  vector<double> expNumCloser {\n    0,\n    log(static_cast<double>(exactEntries[1].size())),\n    log(2),\n    0,\n    0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<float,EvalLogRelPosError<float>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    /* \n     * In a special case when there are no results the relative position error should be 1.0 and\n     * its logarithm should be zero\n     */\n    testMetric<float,EvalLogRelPosError<float>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestRelPosErrorInt) {\n  vector<vector<RESI>> exactEntries = {\n    {},\n    { RESI(0, 0, 0), RESI(1, 0, 1), RESI(2, 0, 2) },\n    { RESI(0, 0, 0), RESI(1, 0, 1), RESI(2, 0, 2), RESI(3, 0, 3) },\n    { RESI(0, 0, 33), RESI(1, 0, 33), RESI(2, 0, 33) },\n  };\n  vector<vector<RESI>> approxEntries = {\n    {},\n    {},\n    { RESI(10, 0, 1), RESI(11, 0, 3) },\n    { RESI(10, 0, 33), RESI(11, 0, 33), RESI(12, 0, 33) },\n  };\n  vector<double> expNumCloser {\n    0,\n    log(static_cast<double>(exactEntries[1].size())),\n    log(2),\n    0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<int,EvalLogRelPosError<int>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    /* \n     * In a special case when there are no results the relative position error should be 1.0 and\n     * its logarithm should be zero\n     */\n    testMetric<int,EvalLogRelPosError<int>>(0, exactEntries[i], approxEntries[i], 0.0); \n  }\n}\n\nTEST(TestPrecisionOfApproxDouble) {\n  vector<vector<RESD>> exactEntries = {\n    {},\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2) },\n    { RESD(0, 0, 0), RESD(1, 0, 1), RESD(2, 0, 2), RESD(3, 0, 3) },\n    { RESD(0, 0, 33), RESD(1, 0, 33), RESD(2, 0, 33) },\n    { RESD(0, 0, 33), RESD(1, 0, 33), RESD(2, 0, 33) },\n  };\n  vector<vector<RESD>> approxEntries = {\n    {},\n    {},\n    { RESD(10, 0, 1), RESD(11, 0, 3) },\n    { RESD(10, 0, 33), RESD(11, 0, 33), RESD(12, 0, 33) },\n    { RESD(10, 0, 33 + + numeric_limits<double>::epsilon()), RESD(11, 0, 33 + + numeric_limits<double>::epsilon()), RESD(12, 0, 33 + numeric_limits<double>::epsilon()) },\n  };\n  vector<double> expNumCloser {\n    1.0,\n    0.0,\n    0.5,\n    1.0,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<double,EvalPrecisionOfApprox<double>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results, the precision of approximation should be equal to 1.0\n    testMetric<double,EvalPrecisionOfApprox<double>>(0, exactEntries[i], approxEntries[i], 1.0); \n  }\n}\n\nTEST(TestPrecisionOfApproxFloat) {\n  vector<vector<RESF>> exactEntries = {\n    {},\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2) },\n    { RESF(0, 0, 0), RESF(1, 0, 1), RESF(2, 0, 2), RESF(3, 0, 3) },\n    { RESF(0, 0, 33), RESF(1, 0, 33), RESF(2, 0, 33) },\n    { RESF(0, 0, 33), RESF(1, 0, 33), RESF(2, 0, 33) },\n  };\n  vector<vector<RESF>> approxEntries = {\n    {},\n    {},\n    { RESF(10, 0, 1), RESF(11, 0, 3) },\n    { RESF(10, 0, 33), RESF(11, 0, 33), RESF(12, 0, 33) },\n    { RESF(10, 0, 33 + + numeric_limits<float>::epsilon()), RESF(11, 0, 33 + + numeric_limits<float>::epsilon()), RESF(12, 0, 33 + numeric_limits<float>::epsilon()) },\n  };\n  vector<double> expNumCloser {\n    1.0,\n    0.0,\n    0.5,\n    1.0,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<float,EvalPrecisionOfApprox<float>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results, the precision of approximation should be equal to 1.0\n    testMetric<float,EvalPrecisionOfApprox<float>>(0, exactEntries[i], approxEntries[i], 1.0); \n  }\n}\n\nTEST(TestPrecisionOfApproxInt) {\n  vector<vector<RESI>> exactEntries = {\n    {},\n    { RESI(0, 0, 0), RESI(1, 0, 1), RESI(2, 0, 2) },\n    { RESI(0, 0, 0), RESI(1, 0, 1), RESI(2, 0, 2), RESI(3, 0, 3) },\n    { RESI(0, 0, 33), RESI(1, 0, 33), RESI(2, 0, 33) },\n  };\n  vector<vector<RESI>> approxEntries = {\n    {},\n    {},\n    { RESI(10, 0, 1), RESI(11, 0, 3) },\n    { RESI(10, 0, 33), RESI(11, 0, 33), RESI(12, 0, 33) },\n  };\n  vector<double> expNumCloser {\n    1.0,\n    0.0,\n    0.5,\n    1.0,\n  };\n  \n  EXPECT_EQ(exactEntries.size(), approxEntries.size());\n  EXPECT_EQ(exactEntries.size(), expNumCloser.size());\n\n  for (size_t i = 0; i < exactEntries.size(); ++i) {\n    testMetric<int,EvalPrecisionOfApprox<int>>(KNN, exactEntries[i], approxEntries[i], expNumCloser[i]); \n    // In a special case when there are no results, the precision of approximation should be equal to 1.0\n    testMetric<int,EvalPrecisionOfApprox<int>>(0, exactEntries[i], approxEntries[i], 1.0); \n  }\n}\n\ntemplate <class dist_t>\nvoid testResultEntryIO(string fileName, const vector<ResultEntry<dist_t>>& testData) {\n  unique_ptr<fstream>      cacheGSBinary;\n\n  cacheGSBinary.reset(new fstream(fileName.c_str(),\n                      std::ios::trunc | std::ios::out | ios::binary));\n  for (const ResultEntry<dist_t>& e: testData) {\n    e.writeBinary(*cacheGSBinary);\n  }\n\n  cacheGSBinary->close();\n  \n  cacheGSBinary.reset(new fstream(fileName.c_str(),\n                                  std::ios::in | ios::binary));\n\n  ResultEntry<dist_t> tmp;\n  for (size_t i = 0; i < testData.size(); ++i) {\n    EXPECT_FALSE(cacheGSBinary->eof());\n    tmp.readBinary(*cacheGSBinary);\n    EXPECT_EQ(testData[i], tmp);\n  }\n\n  cacheGSBinary->close();\n}\n\nTEST(TestResultEntryIntIO) {\n  vector<RESI> testData;\n\n  for (int i = 0; i < 300000; ++i) {\n    testData.push_back(RESI(i, i % 10, i * 2));\n  }\n\n  testResultEntryIO(\"tmpfile.bin\", testData);\n}\n\n\nTEST(TestResultEntryFloatIO) {\n  vector<RESF> testData;\n\n  for (int i = 0; i < 300000; ++i) {\n    testData.push_back(RESF(i, i % 10, i * 0.01f));\n  }\n\n  testResultEntryIO(\"tmpfile.bin\", testData);\n}\n\nTEST(TestResultEntryDoubleIO) {\n  vector<RESD> testData;\n\n  for (int i = 0; i < 300000; ++i) {\n    testData.push_back(RESD(i, i % 10, i * 0.01));\n  }\n\n  testResultEntryIO(\"tmpfile.bin\", testData);\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_fp.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"logging.h\"\n#include \"utils.h\"\n#include \"bunit.h\"\n\n#include <limits>\n\nusing namespace std;\n\nnamespace similarity {\n\ntemplate <class dist_t>\nvoid testEqualInt(dist_t num1, dist_t num2) {\n  EXPECT_TRUE(ApproxEqual(num1, num2, 4));\n}\n\ntemplate <class dist_t>\nvoid testNotEqualInt(dist_t num1, dist_t num2) {\n  EXPECT_FALSE(ApproxEqual(num1, num2, 4));\n}\n\ntemplate <class dist_t>\nvoid testEqualFP(dist_t baseNum, float epsFact) {\n  EXPECT_TRUE(ApproxEqual(baseNum, baseNum * (1 + epsFact * numeric_limits<dist_t>::epsilon()), 4));\n  EXPECT_TRUE(ApproxEqual(-baseNum, -baseNum * (1 + epsFact * numeric_limits<dist_t>::epsilon()), 4));\n}\n\ntemplate <class dist_t>\nvoid testNotEqualFP(dist_t baseNum, float epsFact) {\n  EXPECT_FALSE(ApproxEqual(baseNum, baseNum * (1 + epsFact * numeric_limits<dist_t>::epsilon()), 4));\n  EXPECT_FALSE(ApproxEqual(-baseNum, -baseNum * (1 + epsFact * numeric_limits<dist_t>::epsilon()), 4));\n}\n\nTEST(FP_Char1) {\n  testEqualInt<char>(1, 1);\n}\n\nTEST(FP_Char2) {\n  testEqualInt<char>(125, 125);\n}\n\nTEST(FP_Char3) {\n  testNotEqualInt<char>(1, 2);\n}\n\nTEST(FP_Char4) {\n  testNotEqualInt<char>(0, -1);\n}\n\nTEST(FP_Short1) {\n  testEqualInt<short>(1, 1);\n}\n\nTEST(FP_Short2) {\n  testEqualInt<short>(32767, 32767);\n}\n\nTEST(FP_Short3) {\n  testNotEqualInt<short>(1, 2);\n}\n\nTEST(FP_Short4) {\n  testNotEqualInt<short>(0, -1);\n}\n\nTEST(FP_Int1) {\n  testEqualInt<int>(1, 1);\n}\n\nTEST(FP_Int2) {\n  testEqualInt<int>(65535, 65535);\n}\n\nTEST(FP_Int3) {\n  testNotEqualInt<int>(1, 2);\n}\n\nTEST(FP_Int4) {\n  testNotEqualInt<int>(0, -1);\n}\n\nTEST(FP_Unsigned1) {\n  testEqualInt<unsigned>(1, 1);\n}\n\nTEST(FP_Unsigned2) {\n  testEqualInt<unsigned>(65535, 65535);\n}\n\nTEST(FP_Unsigned3) {\n  testNotEqualInt<unsigned>(1, 2);\n}\n\nTEST(FP_Float1) {\n  testEqualFP<float>(1.0, 1);\n  testEqualFP<float>(1.0, 2);\n  testEqualFP<float>(1.0, 3);\n  testEqualFP<float>(1.0, 4);\n}\n\nTEST(FP_Float2) {\n  testEqualFP<float>(1e4f, 1);\n  testEqualFP<float>(1e4f, 2);\n  testEqualFP<float>(1e4f, 3);\n}\n\nTEST(FP_Float3) {\n  testEqualFP<float>(1e-5f, 1);\n  testEqualFP<float>(1e-5f, 2);\n  testEqualFP<float>(1e-5f, 3);\n}\n\nTEST(FP_Float4) {\n  testNotEqualFP<float>(1.0, 5);\n}\n\nTEST(FP_Float5) {\n  testNotEqualFP<float>(0.5, 5);\n}\n\nTEST(FP_Double1) {\n  testEqualFP<double>(1.0, 1);\n  testEqualFP<double>(1.0, 2);\n  testEqualFP<double>(1.0, 3);\n  testEqualFP<double>(1.0, 4);\n}\n\nTEST(FP_Double2) {\n  testEqualFP<double>(1e7, 1);\n  testEqualFP<double>(1e7, 2);\n  testEqualFP<double>(1e7, 3);\n}\n\nTEST(FP_Double3) {\n  testEqualFP<double>(1e-6, 1);\n  testEqualFP<double>(1e-6, 2);\n  testEqualFP<double>(1e-6, 3);\n}\n\nTEST(FP_Double4) {\n  testNotEqualFP<double>(1.0, 5);\n}\n\nTEST(FP_Double5) {\n  testNotEqualFP<double>(0.5, 5);\n}\n\nTEST(FP_LongDouble1) {\n  testEqualFP<long double>(1.0, 1);\n  testEqualFP<long double>(1.0, 2);\n  testEqualFP<long double>(1.0, 3);\n}\n\nTEST(FP_LongDouble2) {\n  testEqualFP<long double>(2, 1);\n  testEqualFP<long double>(2, 2);\n  testEqualFP<long double>(2, 3);\n}\n\nTEST(FP_LongDouble3) {\n  testNotEqualFP<long double>(1.0, 5);\n  testNotEqualFP<long double>(10.0, 5);\n  testNotEqualFP<long double>(10e10, 5);\n}\n\nTEST(FP_LongDouble4) {\n  testNotEqualFP<long double>(0.5, 5);\n  testNotEqualFP<long double>(0.05, 5);\n  testNotEqualFP<long double>(1e-10, 5);\n}\n\nTEST(FP_NANFloat) {\n  static float __nan = numeric_limits<float>::quiet_NaN();\n  testNotEqualFP<float>(__nan, __nan);\n  testNotEqualFP<float>(__nan, -__nan);\n};\n\nTEST(FP_NANDouble) {\n    static double __nan = numeric_limits<double>::quiet_NaN();\n  testNotEqualFP<double>(__nan, __nan);\n  testNotEqualFP<double>(__nan, -__nan);\n};\n\nTEST(FP_NANLongDouble) {\n  static long double __nan = numeric_limits<long double>::quiet_NaN();\n  testNotEqualFP<long double>(__nan, __nan);\n  testNotEqualFP<long double>(__nan, -__nan);\n};\n\nTEST(FP_ZEROFloat) {\n  EXPECT_TRUE(ApproxEqual(0.0f, -0.0f));\n  EXPECT_TRUE(ApproxEqual(0.0f, numeric_limits<float>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0f, 1.9f*numeric_limits<float>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0f, 5000000.0f*numeric_limits<float>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0f, -numeric_limits<float>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0f, -1.9f*numeric_limits<float>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0f, -5000000.0f*numeric_limits<float>::min()));\n}\n\nTEST(FP_ZERODouble) {\n  EXPECT_TRUE(ApproxEqual(0.0, -0.0));\n  EXPECT_TRUE(ApproxEqual(0.0, numeric_limits<double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0, 1.9*numeric_limits<double>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0, 2.1*numeric_limits<double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0, -numeric_limits<double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0, -1.9*numeric_limits<double>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0, -2.1*numeric_limits<double>::min()));\n}\n\nTEST(FP_ZEROLongDouble) {\n  EXPECT_TRUE(ApproxEqual(0.0l, -0.0l));\n  EXPECT_TRUE(ApproxEqual(0.0l, numeric_limits<long double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0l, 1.9*numeric_limits<long double>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0l, 100.1*numeric_limits<long double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0l, -numeric_limits<long double>::min()));\n  EXPECT_TRUE(ApproxEqual(0.0l, -1.9*numeric_limits<long double>::min()));\n  EXPECT_FALSE(ApproxEqual(0.0l, -10.1*numeric_limits<long double>::min()));\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_integr.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <time.h>\n\n#include <cmath>\n#include <limits>\n#include <string>\n#include <sstream>\n#include <vector>\n#include <fstream>\n#include <set>\n\n#include \"init.h\"\n#include \"global.h\"\n#include \"utils.h\"\n#include \"memory.h\"\n#include \"ztimer.h\"\n#include \"experiments.h\"\n#include \"experimentconf.h\"\n#include \"space.h\"\n#include \"spacefactory.h\"\n#include \"logging.h\"\n#include \"methodfactory.h\"\n\n#include \"meta_analysis.h\"\n#include \"params.h\"\n\n#include \"test_integr_util.h\"\n#include \"testdataset.h\"\n\nusing namespace similarity;\n\nusing std::set;\nusing std::multimap;\nusing std::vector;\nusing std::string;\nusing std::stringstream;\n\n//#define MAX_THREAD_QTY 4\n#define MAX_THREAD_QTY 1\n#define TEST_SET_QTY   20\n#define MAX_NUM_QUERY  100\n\nvector<MethodTestCase>    vTestCaseDesc = {\n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"nonmetr_list_clust\", \"clusterType=clarans,centerQty=10\", \"dbScanFrac=0.1\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.85, 0.95, 0.01, 5, 2, 7),  \n  // ************** Tests for non-metric clustering *********** //\n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"nonmetr_list_clust\", \"clusterType=firmal,centerQty=10\", \"dbScanFrac=0.1\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.8, 0.92, 0.1, 20, 2.5, 6),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"nonmetr_list_clust\", \"clusterType=reduct_clarans,centerQty=10\", \"dbScanFrac=0.1\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.85, 0.95, 0.01, 5, 2, 7),  \n#if 1\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"napp\", \"numPivot=8,numPivotIndex=8,chunkIndexSize=102\", \"numPivotSearch=8\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n\n  MethodTestCase(DIST_TYPE_FLOAT, \"cosinesimil\", \"final8_10K.txt\", \"hnsw\", \"efConstruction=50,M=10,skip_optimized_index=1\", \"ef=50\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.97, 1, 0, 0.1, 40, 60),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"hnsw\", \"efConstruction=50,M=10,skip_optimized_index=1\", \"ef=50\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.97, 1, 0, 0.1, 40, 60),  \n  // *************** NEW versions of permutation & projection-based filtering method tests ******************** //\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"seq_search\", \"\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0, 0, 1, 1),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"seq_search\", \"\", \"\",\n                0 /* no-knn search */, 0.2 /* range 0.2 */ , 1.0, 1.0, 0, 0, 1, 1),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"seq_search\", \"multiThread=1,threadQty=4\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0, 0, 1, 1),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"seq_search\", \"multiThread=1,threadQty=4\", \"\",\n                0 /* no-knn search */, 0.2 /* range 0.2 */ , 1.0, 1.0, 0, 0, 1, 1),  \n#if !defined(_MSC_VER)\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"nndes\", \"NN=10,rho=0.5,delta=0.001\", \"initSearchAttempts=10\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.0, 0, 1.0, 5, 12),  \n#endif\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"small_world_rand\", \"NN=10,initIndexAttempts=1\", \"initSearchAttempts=1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.0, 0, 1.0, 40, 52),  \n  // 4 different types of projections\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=perm,projDim=4\", \"dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=rand,projDim=4\", \"dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=fastmap,projDim=4\", \"dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=randrefpt,projDim=4\", \"dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n\n  // Proj. VP-tree\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_vptree\", \"projType=perm,projDim=4\", \"alphaLeft=2,alphaRight=2,dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\",\"pp-index\", \"numPivot=4,prefixLength=4\", \"minCandidate=10000\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mi-file\", \"numPivot=16,numPivotIndex=16\", \"numPivotSearch=16,dbScanFrac=1.0\",\n\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"napp\", \"numPivot=8,numPivotIndex=8,chunkIndexSize=102\", \"numPivotSearch=8\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n\n  // Binarized permutations\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"perm_incsort_bin\", \"numPivot=32\", \"dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"perm_bin_vptree\", \"numPivot=32\", \"alphaLeft=2,alphaRight=2,dbScanFrac=1.0\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0, 0.01, 0.99, 1.01),  \n\n\n  // 4 different types of projections\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=perm,projDim=4\", \"dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.4, 0.7, 0.5, 4, 8, 12),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=rand,projDim=4\", \"dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.01, 0.0, 0.2, 8, 12),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=fastmap,projDim=4\", \"dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.01, 0.0, 0.2, 8, 12),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_incsort\", \"projType=randrefpt,projDim=4\", \"dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.01, 0.0, 0.2, 8, 12),  \n\n  // Proj. VP-tree\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"proj_vptree\", \"projType=perm,projDim=4\", \"alphaLeft=2,alphaRight=2,dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.4, 0.7, 0.5, 4, 8, 12),  \n\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\",\"pp-index\", \"numPivot=4,prefixLength=4\", \"minCandidate=100\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.8, 1.0, 0.1, 2, 3, 8),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mi-file\", \"numPivot=16,numPivotIndex=16\", \"numPivotSearch=16,dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.95, 1.0, 0, 0.5, 8, 12),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"napp\", \"numPivot=32,numPivotIndex=8,chunkIndexSize=102\", \"numPivotSearch=8\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.6, 0.8, 1, 4, 22, 37),\n\n  // Binarized\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"perm_incsort_bin\", \"numPivot=32\", \"dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.0, 0.01, 0.3, 8, 12),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"perm_bin_vptree\", \"numPivot=32\", \"alphaLeft=2,alphaRight=2,dbScanFrac=0.1\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.9, 1.0, 0.01, 0.5, 8, 12),  \n\n\n  // *************** omedrank tests ******************** //\n\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"omedrank\", \"numPivot=4,chunkIndexSize=16536\", \"dbScanFrac=0.01,minFreq=0.5\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.7, 0.97, 0.1, 3, 70, 120),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"omedrank\", \"numPivot=4,chunkIndexSize=16536\", \"dbScanFrac=0.01,minFreq=0.5\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.6, 0.9, 0.1, 3, 70, 120),  \n\n  // *************** VP-tree tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\",  \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 40, 70),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"alphaLeft=2,alphaRight=2\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.93, 0.97, 0.03, 0.09, 120, 160),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final128_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 1.5, 1.8),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final128_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"alphaLeft=2,alphaRight=2\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.98, 1.0, 0.0, 0.02, 2.8, 3.4),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 20, 24),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"alphaLeft=2,alphaRight=2\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.93, 0.96, 0.0, 0.02, 56, 63),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final128_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 1.1, 1.3),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final128_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"alphaLeft=2,alphaRight=2\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.99, 0.999, 0.0, 0.01, 1.5, 2.5),  \n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"\",\n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 1.0, 1.0, 0.0, 0.0, 23, 26),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"vptree\", \"chunkBucket=1,bucketSize=10\", \"\",\n                0 /* no KNN */, 0.5 /* range search radius 0.5 */ , 1.0, 1.0, 0.0, 0.0, 2.4, 3),  \n\n  // *************** MVP-tree tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 120, 140),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 40, 50),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\", \"maxLeavesToVisit=10\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.82, 0.9, 0.2, 3.5, 230, 250),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\", \"maxLeavesToVisit=20\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.75, 0.82, 0.2, 2.0, 85, 100),  \n\n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\",  \"\",\n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 1.0, 1.0, 0.0, 0.0, 40, 55),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"mvptree\", \"maxPathLen=4,bucketSize=10\",  \"\",\n                0 /* no KNN */, 0.5 /* range search radius 0.5*/ , 1.0, 1.0, 0.0, 0.0, 3, 4),  \n\n  // *************** GH-tree tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\",  \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 28, 35),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\",  \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 8, 10.2),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\", \"maxLeavesToVisit=10\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.8, 0.87, 0.2, 1.5, 95, 115),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\", \"maxLeavesToVisit=20\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.75, 0.82, 0.1, 1.0, 52, 62),  \n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\", \"\", \n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 1.0, 1.0, 0.0, 0.0, 10, 16),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"ghtree\", \"bucketSize=10\", \"\",\n                0 /* no KNN */, 0.5 /* range search radius 0.5*/ , 1.0, 1.0, 0.0, 0.0, 1, 1.2),  \n\n  // *************** SA-tree tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"satree\", \"bucketSize=10\", \"\", \n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 25, 33),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"satree\", \"bucketSize=10\", \"\", \n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 10, 25),  \n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"satree\", \"bucketSize=10\", \"\", \n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 1.0, 1.0, 0.0, 0.0, 13, 18),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"satree\", \"bucketSize=10\", \"\", \n                0 /* no KNN */, 0.5 /* range search radius 0.5*/ , 1.0, 1.0, 0.0, 0.0, 2.8, 3.4),  \n\n  // *************** List of clusters tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"\", \n                1 /* KNN-1 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 9.5, 11.5),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"\", \n                10 /* KNN-10 */, 0 /* no range search */ , 1.0, 1.0, 0.0, 0.0, 7.5, 8.5),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"maxLeavesToVisit=10\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.78, 0.9, 0.2, 1.5, 9.5, 11.5),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"maxLeavesToVisit=20\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.85, 0.97, 0.05, 0.7, 8.5, 10.5),  \n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"\",\n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 1.0, 1.0, 0.0, 0.0, 8, 10),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"list_clusters\", \"strategy=random,useBucketSize=1,bucketSize=10\", \"\",\n                0 /* no KNN */, 0.5 /* range search radius 0.5*/ , 1.0, 1.0, 0.0, 0.0, 2.4, 3.4),  \n\n  // *************** bbtree tests ******************** //\n  // knn\n  /* \n   * TODO @leo \n   *      bbtree seems to be a bit wacky (missing a tiny fraction of answers), \n   *      need to debug it in the future.\n   *      Therefore, we expect a slightly imperfect recall sometimes.\n   */\n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.999, 1.0, 0.0, 0.0, 9.5, 11.5),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 0.999, 1.0, 0.0, 0.0, 5.5, 8),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"maxLeavesToVisit=10\", \n                1 /* KNN-1 */, 0 /* no range search */ , 0.75, 0.85, 0.3, 1.5, 48, 52),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"maxLeavesToVisit=20\", \n                10 /* KNN-10 */, 0 /* no range search */ , 0.7, 0.78, 0.3, 1.6, 28, 37),  \n  // range\n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"\",\n                0 /* no KNN */, 0.1 /* range search radius 0.1 */ , 0.999, 1.0, 0.0, 0.0, 4.5, 6.5),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"kldivgenfast\", \"final8_10K.txt\", \"bbtree\", \"bucketSize=10\", \"\",\n                0 /* no KNN */, 0.5 /* range search radius 0.5*/ , 0.999, 1.0, 0.0, 0.0, 1.2, 2.4),  \n\n#ifndef _MSC_VER\n  // no LSH for Windows\n  // *************** multi-probe LSH tests ******************** //\n  // knn\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"lsh_multiprobe\", \"desiredRecall=0.5,tuneK=1,T=5,L=25,H=16535\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.45, 0.6, 45, 80, 90, 130),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"lsh_multiprobe\", \"desiredRecall=0.5,tuneK=10,T=5,L=25,H=16535\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 0.45, 0.6, 10, 40, 80, 120),  \n  // *************** Guassian LSH tests ******************** //\n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"lsh_gaussian\", \"W=2,L=5,M=40,H=16535\", \"\",\n\n                1 /* KNN-1 */, 0 /* no range search */ , 0.85, 0.95, 0.1, 40, 90, 130),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l2\", \"final8_10K.txt\", \"lsh_gaussian\", \"W=2,L=5,M=40,H=16535\", \"\",\n\n                10 /* KNN-10 */, 0 /* no range search */ , 0.68, 0.82, 0.1, 50, 80, 120),  \n  // *************** Cauchy LSH tests ******************** //\n  MethodTestCase(DIST_TYPE_FLOAT, \"l1\", \"final8_10K.txt\", \"lsh_cauchy\", \"W=2,L=5,M=10,H=16535\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.7, 0.9, 0.1, 50, 90, 130),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l1\", \"final8_10K.txt\", \"lsh_cauchy\", \"W=2,L=5,M=10,H=16535\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 0.5, 0.8, 0.1, 50, 80, 120),  \n  // *************** Thresholding LSH tests ******************** //\n  MethodTestCase(DIST_TYPE_FLOAT, \"l1\", \"final8_10K.txt\", \"lsh_threshold\", \"L=5,M=60,H=16535\", \"\",\n                1 /* KNN-1 */, 0 /* no range search */ , 0.8, 0.99, 0.1, 50, 40, 70),  \n  MethodTestCase(DIST_TYPE_FLOAT, \"l1\", \"final8_10K.txt\", \"lsh_threshold\", \"L=5,M=60,H=16535\", \"\",\n                10 /* KNN-10 */, 0 /* no range search */ , 0.65, 0.85, 0.1, 50, 40, 70),  \n#endif\n#endif\n};\n\n\nint main(int ac, char* av[]) {\n  // This should be the first function called before\n  string LogFile;\n  if (ac == 2) LogFile = av[1];\n\n  initLibrary(LogFile.empty() ? LIB_LOGSTDERR:LIB_LOGFILE, LogFile.c_str());\n\n  WallClockTimer timer;\n  timer.reset();\n\n  set<string>           setDistType;\n  set<string>           setSpaceType;\n  set<string>           setDataSet;\n  set<unsigned>         setKNN;\n  set<float>            setRange;\n\n  for (const auto& testCase: vTestCaseDesc) {\n    setDistType.insert(testCase.mDistType);\n    setSpaceType.insert(testCase.mSpaceType);\n    setDataSet.insert(testCase.mDataSet);\n    if (testCase.mKNN > 0)\n      setKNN.insert(testCase.mKNN);\n    if (testCase.mRange > 0)\n      setRange.insert(testCase.mRange);\n  };  \n\n  size_t nTest = 0;\n  size_t nFail = 0;\n\n  try {\n    /* \n     * 1. Let's iterate over all combinations of data sets,\n     * distance, and space types. \n     * 2. For each combination, we select test cases \n     * with exactly same data set, distance and space type. \n     * 3. Create an array of arguments in the same format\n     *    as used by the main benchmarking utility.\n     * 4. Use a standard function to parse these arguments.\n     */\n    for (string dataSet  : setDataSet)\n    for (string distType : setDistType)\n    for (string spaceType: setSpaceType) {\n      string dataFile = sampleDataPrefix + dataSet;\n\n      for (unsigned K: setKNN) {\n        vector<MethodTestCase>  vTestCases; \n\n        // Select appropriate test cases to share the same gold-standard data\n        for (const auto& testCase: vTestCaseDesc) {\n          if (testCase.mDataSet == dataSet &&\n              testCase.mDistType == distType && \n              testCase.mSpaceType == spaceType &&\n              testCase.mKNN  == K) {\n            vTestCases.push_back(MethodTestCase(testCase));\n          }\n        }\n\n        if (!vTestCases.empty())  { // Not all combinations of spaces, data sets, and search types are non-empty\n          for (size_t threadQty = 1; threadQty <= MAX_THREAD_QTY; ++threadQty) {\n            nTest += vTestCases.size();\n            nFail += RunOneTest(vTestCases, \n                                distType,\n                                spaceType,\n                                threadQty,\n                                TEST_SET_QTY,\n                                dataFile,\n                                \"\",\n                                0,\n                                MAX_NUM_QUERY,\n                                ConvertToString(K),\n                                0,\n                                \"\"\n                               );\n          }\n        }\n      }\n\n      for (float R: setRange) {\n        vector<MethodTestCase>  vTestCases; \n\n\n        // Select appropriate test cases to share the same gold-standard data\n        for (const auto& testCase: vTestCaseDesc) {\n          if (testCase.mDataSet == dataSet &&\n              testCase.mDistType == distType && \n              testCase.mSpaceType == spaceType &&\n              testCase.mRange  == R) {\n            vTestCases.push_back(MethodTestCase(testCase));\n          }\n        }\n\n        if (!vTestCases.empty())  { // Not all combinations of spaces, data sets, and search types are non-empty\n          for (size_t threadQty = 1; threadQty <= MAX_THREAD_QTY; ++threadQty) {\n            nTest += vTestCases.size();\n            nFail += RunOneTest(vTestCases, \n                                distType,\n                                spaceType,\n                                threadQty,\n                                TEST_SET_QTY,\n                                dataFile,\n                                \"\",\n                                0,\n                                MAX_NUM_QUERY,\n                                \"\",\n                                0,\n                                ConvertToString(R)\n                               );\n          }\n        }\n\n      }\n\n    }\n\n  } catch (const std::exception& e) {\n    cout << red << \"Failure to test due to exception: \" << e.what() << no_color << endl;\n    ++nFail;\n  } catch (...) {\n    ++nFail;\n    cout << red << \"Failure to test due to unknown exception: \" << no_color << endl;\n  }\n\n  timer.split();\n\n  LOG(LIB_INFO) << \"Time elapsed = \" << timer.elapsed() / 1e6;\n  LOG(LIB_INFO) << \"Finished at \" << LibGetCurrentTime();\n\n  cerr << endl << \"==================================================\" << endl;\n  cerr << (nFail ? \"FAILURE\" : \"SUCCESS\") << endl;\n  cerr << \"Carried out: \" << nTest << \"  tests. Failed: \" << nFail << \" tests\" << endl;\n\n  return nFail ? 1:0;\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_integr.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <ItemGroup Label=\"ProjectConfigurations\">\n    <ProjectConfiguration Include=\"Debug|x64\">\n      <Configuration>Debug</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"Release|x64\">\n      <Configuration>Release</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n    <ProjectConfiguration Include=\"RelWithDebInfo|x64\">\n      <Configuration>RelWithDebInfo</Configuration>\n      <Platform>x64</Platform>\n    </ProjectConfiguration>\n  </ItemGroup>\n  <PropertyGroup Label=\"Globals\">\n    <ProjectGUID>{B078DA10-B28A-4CB8-B07E-61E93B100B1F}</ProjectGUID>\n    <Keyword>Win32Proj</Keyword>\n    <Platform>Win32</Platform>\n    <ProjectName>test_integr</ProjectName>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\" Label=\"Configuration\">\n    <ConfigurationType>Application</ConfigurationType>\n    <UseOfMfc>false</UseOfMfc>\n    <CharacterSet>MultiByte</CharacterSet>\n    <PlatformToolset>v140</PlatformToolset>\n  </PropertyGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n  <ImportGroup Label=\"ExtensionSettings\">\n  </ImportGroup>\n  <ImportGroup Label=\"PropertySheets\">\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\n  </ImportGroup>\n  <PropertyGroup Label=\"UserMacros\" />\n  <PropertyGroup>\n    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">test_integr</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">test_integr</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">false</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">true</GenerateManifest>\n    <TargetName Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">test_integr</TargetName>\n    <TargetExt Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">.exe</TargetExt>\n    <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</LinkIncremental>\n    <GenerateManifest Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">true</GenerateManifest>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</IntDir>\n  </PropertyGroup>\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <OutDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</OutDir>\n    <IntDir>$(SolutionDir)$(Platform)\\$(Configuration)\\test_integr\\</IntDir>\n  </PropertyGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Debug/</AssemblerListingLocation>\n      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\n      <Optimization>Disabled</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\\\"Debug\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n      <ProfileGuidedDatabase>$(OutDir)$(TargetName)$(TargetExt).pgd</ProfileGuidedDatabase>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>Release/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <DebugInformationFormat>\n      </DebugInformationFormat>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"Release\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>false</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'\">\n    <ClCompile>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <AssemblerListingLocation>RelWithDebInfo/</AssemblerListingLocation>\n      <CompileAs>CompileAsCpp</CompileAs>\n      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\n      <ExceptionHandling>Sync</ExceptionHandling>\n      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\n      <Optimization>MaxSpeed</Optimization>\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\n      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\n      <RuntimeTypeInfo>true</RuntimeTypeInfo>\n      <WarningLevel>Level3</WarningLevel>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <ObjectFileName>$(IntDir)</ObjectFileName>\n      <ProgramDataBaseFileName>$(OutDir)$(TargetName)$(TargetExt)_compile.pdb</ProgramDataBaseFileName>\n      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\n      <FloatingPointModel>Fast</FloatingPointModel>\n      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\n      <IntrinsicFunctions>true</IntrinsicFunctions>\n      <OpenMPSupport>true</OpenMPSupport>\n    </ClCompile>\n    <ResourceCompile>\n      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\\\"RelWithDebInfo\\\";%(PreprocessorDefinitions)</PreprocessorDefinitions>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n    </ResourceCompile>\n    <Midl>\n      <AdditionalIncludeDirectories>c:\\local\\boost_1_59_0;$(SolutionDir)\\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\n      <OutputDirectory>$(IntDir)</OutputDirectory>\n      <HeaderFileName>%(Filename).h</HeaderFileName>\n      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>\n      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>\n      <ProxyFileName>%(Filename)_p.c</ProxyFileName>\n    </Midl>\n    <Link>\n      <AdditionalOptions> /machine:X64 /debug %(AdditionalOptions)</AdditionalOptions>\n      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;NonMetricSpaceLib.lib</AdditionalDependencies>\n      <AdditionalLibraryDirectories>c:/local/boost_1_59_0/lib64-msvc-14.0;$(SolutionDir)$(Platform)\\$(Configuration)\\MainLib\\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\n      <GenerateDebugInformation>true</GenerateDebugInformation>\n      <ImportLibrary>\n      </ImportLibrary>\n      <ProgramDataBaseFile>$(OutDir)$(TargetName)$(TargetExt)_link.pdb</ProgramDataBaseFile>\n      <SubSystem>Console</SubSystem>\n      <Version>\n      </Version>\n    </Link>\n    <ProjectReference>\n      <LinkLibraryDependencies>false</LinkLibraryDependencies>\n    </ProjectReference>\n  </ItemDefinitionGroup>\n  <ItemGroup>\n    <ClCompile Include=\"..\\src\\params_cmdline.cc\" />\n    <ClCompile Include=\"test_integr.cc\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"$(SolutionDir)src\\NonMetricSpaceLib.vcxproj\">\n      <Project>08B5B5CC-2938-4C1C-B835-A3868076D791</Project>\n    </ProjectReference>\n  </ItemGroup>\n  <ItemGroup>\n    <ClInclude Include=\"test_integr_util.h\" />\n  </ItemGroup>\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n  <ImportGroup Label=\"ExtensionTargets\">\n  </ImportGroup>\n</Project>"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_integr_util.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef TEST_INTEGR_UTILS_H\n#define TEST_INTEGR_UTILS_H\n\n#include <string>\n#include <sstream>\n#include <vector>\n#include <algorithm>\n#include <map>\n\n#include \"utils.h\"\n#include \"bunit.h\"\n#include \"report.h\"\n#include \"params_def.h\"\n#include \"params_cmdline.h\"\n#include \"report_intr_dim.h\"\n\nusing std::set;\nusing std::multimap;\nusing std::vector;\nusing std::copy;\nusing std::string;\nusing std::stringstream;\n\nusing namespace similarity;\n\n/*\n * A data structure that defines \n * 1) Search parameters\n * 2) Method parameters\n * 3) Search outcome (recall range, range for the improvement in distance computation)\n */\nstruct MethodTestCase {\n  string  mDistType;\n  string  mSpaceType;\n  string  mDataSet;\n  string  mMethodName;\n  string  mIndexParams;\n  string  mQueryTimeParams;\n  float   mRecallMin;\n  float   mRecallMax;\n  float   mNumCloserMin;\n  float   mNumCloserMax;\n  float   mImprDistCompMin;\n  float   mImprDistCompMax;\n\n  unsigned   mKNN;\n  float      mRange;\n\n  MethodTestCase(\n               string distType,\n               string spaceType,\n               string dataSet,\n               string methodName,\n               string indexParams,\n               string queryTimeParams,\n               unsigned  knn,\n               float range, \n               float recallMin = 0, \n               float recallMax = 0,\n               float numCloserMin = 0, \n               float numCloserMax = 0,\n               float imprDistCompMin = 0, \n               float imprDistCompMax = 0) :\n                   mDistType(distType),\n                   mSpaceType(spaceType),\n                   mDataSet(dataSet),\n                   mMethodName(methodName),\n                   mIndexParams(indexParams),\n                   mQueryTimeParams(queryTimeParams),\n                   mRecallMin(recallMin),\n                   mRecallMax(recallMax),\n                   mNumCloserMin(numCloserMin),\n                   mNumCloserMax(numCloserMax),\n                   mImprDistCompMin(imprDistCompMin),\n                   mImprDistCompMax(imprDistCompMax),\n                   mKNN(knn), mRange(range)\n                {\n                  ToLower(mDistType);\n                  ToLower(spaceType);\n                }\n};\n\ntemplate <typename dist_t>\nbool ProcessAndCheckResults(\n                    const string& cmdStr,\n                    const string& distType,\n                    const string& spaceType,\n                    const MethodTestCase& testCase,\n                    const ExperimentConfig<dist_t>& config,\n                    MetaAnalysis& ExpRes,\n                    string& PrintStr // For display\n                    ) {\n  std::stringstream Print, Data, Header;\n\n  ExpRes.ComputeAll();\n\n  PrintStr  = produceHumanReadableReport(config, ExpRes, testCase.mMethodName, testCase.mIndexParams, testCase.mQueryTimeParams);\n\n  bool bFail = false;\n\n  if (ExpRes.GetRecallAvg() < testCase.mRecallMin) {\n    cerr << \"Failed to meet min recall requirement, expect >= \" << testCase.mRecallMin \n         << \" got \" << ExpRes.GetRecallAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  if (ExpRes.GetRecallAvg() > testCase.mRecallMax) {\n    cerr << \"Failed to meet max recall requirement, expect <= \" << testCase.mRecallMax \n         << \" got \" << ExpRes.GetRecallAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  if (ExpRes.GetNumCloserAvg() < testCase.mNumCloserMin) {\n    cerr << \"Failed to meet min # of points closer requirement, expect >= \" << testCase.mNumCloserMin \n         << \" got \" << ExpRes.GetNumCloserAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  if (ExpRes.GetNumCloserAvg() > testCase.mNumCloserMax) {\n    cerr << \"Failed to meet max # of points closer requirement, expect <= \" << testCase.mNumCloserMax \n         << \" got \" << ExpRes.GetNumCloserAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  if (ExpRes.GetImprDistCompAvg() < testCase.mImprDistCompMin) {\n    cerr << \"Failed to meet min improvement requirement in the # of distance computations, expect >= \"\n         << testCase.mImprDistCompMin << \" got \" << ExpRes.GetImprDistCompAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  if (ExpRes.GetImprDistCompAvg() > testCase.mImprDistCompMax) {\n    cerr << \"Failed to meet max improvement requirement in the # of distance computations, expect <= \"\n         << testCase.mImprDistCompMax << \" got \" << ExpRes.GetImprDistCompAvg() << endl \n         << \" method: \" << testCase.mMethodName << \" ; \"\n         << \" index-time params: \" << testCase.mIndexParams << \" ; \"\n         << \" query-time params: \" << testCase.mQueryTimeParams << \" ; \"\n         << \" data set: \" << testCase.mDataSet << \" ; \"\n         << \" dist value  type: \" << distType << \" ; \"\n         << \" space type: \" << spaceType << endl << cmdStr << endl;\n    bFail = true;\n  }\n\n  return !bFail;\n};\n\ninline string getFirstParam(const string& paramDef) {\n  vector<string>  vParDefs;\n  \n  if (!SplitStr(paramDef, vParDefs, ',')) {\n    PREPARE_RUNTIME_ERR(err) << \"Cannot comma-split the parameter definition: '\" << paramDef << \"'\";\n    THROW_RUNTIME_ERR(err);\n  }\n  if (vParDefs.empty()) {\n    PREPARE_RUNTIME_ERR(err) << \"Empty definition list in the parameter definition: '\" << paramDef << \"'\";\n    THROW_RUNTIME_ERR(err);\n  }\n  return \"--\" + vParDefs[0];  \n}\n\ninline string quoteEmpty(const string& str) {\n  return str.empty() ? string(\"\\\"\\\"\") : str;\n};\n\nstring CreateCmdStr(\n             const MethodTestCase&        testCase,\n             bool                         isRange,\n             const string&                rangeOrKnnArg,\n             const string&                DistType, \n             string                       SpaceTypeStr,\n             unsigned                     ThreadTestQty,\n             unsigned                     TestSetQty,\n             const string&                DataFile,\n             const string&                QueryFile,\n             IdTypeUnsign                 MaxNumData,\n             IdTypeUnsign                 MaxNumQuery,\n             const                        float eps) {\n  stringstream res;\n  // our test data files shouldn't have spaces, so we won't escape them\n  // anyways, this is only a debug output \n  res << getFirstParam(DATA_FILE_PARAM_OPT)    << \" \" << DataFile << \" \" \n      << getFirstParam(MAX_NUM_DATA_PARAM_OPT) << \" \" << MaxNumData << \" \" \n      << getFirstParam(DIST_TYPE_PARAM_OPT)    << \" \" << DistType << \" \" \n      << getFirstParam(SPACE_TYPE_PARAM_OPT)   << \" \" << SpaceTypeStr << \" \" \n      << getFirstParam(THREAD_TEST_QTY_PARAM_OPT)<< \" \" << ThreadTestQty << \" \" \n      << getFirstParam(EPS_PARAM_OPT)          << \" \" << eps << \" \" ;\n   if (QueryFile.empty())\n     res << getFirstParam(TEST_SET_QTY_PARAM_OPT) << \" \" << TestSetQty << \" \" ;\n   else\n     res << getFirstParam(QUERY_FILE_PARAM_OPT) << \" \" << QueryFile << \" \" ;\n\n  res << getFirstParam(MAX_NUM_QUERY_PARAM_OPT) << \" \" << MaxNumQuery << \" \" \n      << getFirstParam(isRange ? RANGE_PARAM_OPT : KNN_PARAM_OPT)    << \" \" << rangeOrKnnArg << \" \" \n      << getFirstParam(METHOD_PARAM_OPT)        << \" \" << testCase.mMethodName << \" \" \n      << getFirstParam(INDEX_TIME_PARAMS_PARAM_OPT) << \" \" << quoteEmpty(testCase.mIndexParams) << \" \" \n      << getFirstParam(QUERY_TIME_PARAMS_PARAM_OPT) << \" \" << quoteEmpty(testCase.mQueryTimeParams);\n\n  return res.str();\n};\n                    \n\n/*\n * returns the # of failed tests\n */\ntemplate <typename dist_t>\nsize_t RunTestExper(const vector<MethodTestCase>& vTestCases,\n             const string&                DistType, \n             string                       SpaceTypeStr,\n             unsigned                     ThreadTestQty,\n             unsigned                     TestSetQty,\n             const string&                DataFile,\n             const string&                QueryFile,\n             IdTypeUnsign                 MaxNumData,\n             IdTypeUnsign                 MaxNumQuery,\n             const string&                KnnArg,\n             const                        float eps,\n             const string&                RangeArg\n)\n{\n  vector<unsigned> knn;\n  vector<dist_t>   range;\n\n  size_t nFail = 0;\n\n  if (!KnnArg.empty()) {\n    if (!SplitStr(KnnArg, knn, ',')) {\n      PREPARE_RUNTIME_ERR(err) << \"Wrong format of the knn argument: '\" << KnnArg << \"' Should be a list of coma-separated int > 0 values.\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n\n  if (!RangeArg.empty()) {\n    if (!SplitStr(RangeArg, range, ',')) {\n      PREPARE_RUNTIME_ERR(err) << \"Wrong format of the range argument: '\" << RangeArg << \"' Should be a list of coma-separated distance-type values.\";\n      THROW_RUNTIME_ERR(err);\n    }\n  }\n\n  ToLower(SpaceTypeStr);\n  string SpaceType;\n\n  shared_ptr<AnyParams> SpaceParams;\n\n  {\n    vector<string>     desc;\n    ParseSpaceArg(SpaceTypeStr, SpaceType, desc);\n    SpaceParams = shared_ptr<AnyParams>(new AnyParams(desc));\n  }\n\n\n  unique_ptr<Space<dist_t>> space(SpaceFactoryRegistry<dist_t>::\n                                  Instance().CreateSpace(SpaceType, *SpaceParams));\n\n  if (NULL == space.get()) {\n    PREPARE_RUNTIME_ERR(err) << \"Cannot create space: '\" << SpaceType;\n    THROW_RUNTIME_ERR(err);\n  }\n \n  ExperimentConfig<dist_t> config(*space,\n                                  DataFile, QueryFile, TestSetQty,\n                                  MaxNumData, MaxNumQuery,\n                                  knn, eps, range);\n\n  config.ReadDataset();\n  MemUsage  mem_usage_measure;\n\n\n  std::vector<std::string>          MethDescStr;\n  std::vector<std::string>          MethParams;\n  vector<double>                    MemUsage;\n\n  vector<vector<MetaAnalysis*>> ExpResRange(config.GetRange().size(),\n                                                vector<MetaAnalysis*>(vTestCases.size()));\n  vector<vector<MetaAnalysis*>> ExpResKNN(config.GetKNN().size(),\n                                              vector<MetaAnalysis*>(vTestCases.size()));\n\n  for (size_t MethNum = 0; MethNum < vTestCases.size(); ++MethNum) {\n    for (size_t i = 0; i < config.GetRange().size(); ++i) {\n      ExpResRange[i][MethNum] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n    for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n      ExpResKNN[i][MethNum] = new MetaAnalysis(config.GetTestSetToRunQty());\n    }\n  }\n\n\n  for (int TestSetId = 0; TestSetId < config.GetTestSetToRunQty(); ++TestSetId) {\n    config.SelectTestSet(TestSetId);\n\n    LOG(LIB_INFO) << \">>>> Test set id: \" << TestSetId << \" (set qty: \" << config.GetTestSetToRunQty() << \")\";\n\n    GoldStandardManager<dist_t> managerGS(config);\n    managerGS.Compute(ThreadTestQty, 0); // Keeping all GS entries, should be Ok here because our data sets are smallish\n    \n    for (size_t MethNum = 0; MethNum < vTestCases.size(); ++MethNum) {\n      const string& MethodName  = vTestCases[MethNum].mMethodName;\n\n      shared_ptr<AnyParams>           IndexParams; \n      vector<shared_ptr<AnyParams>>   vQueryTimeParams;\n\n      {\n        vector<string>     desc;\n        ParseArg(vTestCases[MethNum].mIndexParams, desc);\n        IndexParams = shared_ptr<AnyParams>(new AnyParams(desc));\n      }\n\n      {\n        vector<string>     desc;\n        ParseArg(vTestCases[MethNum].mQueryTimeParams, desc);\n        vQueryTimeParams.push_back(shared_ptr<AnyParams>(new AnyParams(desc)));\n      }\n\n      LOG(LIB_INFO) << \">>>> Index type : \" << MethodName;\n      LOG(LIB_INFO) << \">>>> Index-time parameters: \" << IndexParams->ToString();\n\n      const double vmsize_before = mem_usage_measure.get_vmsize();\n\n      WallClockTimer wtm;\n\n      wtm.reset();\n      \n\n      LOG(LIB_INFO) << \"Creating a new index\" ;\n\n      shared_ptr<Index<dist_t>> IndexPtr(\n                         MethodFactoryRegistry<dist_t>::Instance().\n                         CreateMethod(false /* don't print progress */,\n                                      MethodName, \n                                      SpaceType, config.GetSpace(), \n                                      config.GetDataObjects())\n                         );\n\n      IndexPtr->CreateIndex(*IndexParams);\n\n      LOG(LIB_INFO) << \"==============================================\";\n\n      const double vmsize_after = mem_usage_measure.get_vmsize();\n\n      const double data_size = DataSpaceUsed(config.GetDataObjects()) / 1024.0 / 1024.0;\n\n      const double TotalMemByMethod = vmsize_after - vmsize_before + data_size;\n\n      wtm.split();\n\n      LOG(LIB_INFO) << \">>>> Process memory usage: \" << vmsize_after << \" MBs\";\n      LOG(LIB_INFO) << \">>>> Virtual memory usage: \" << TotalMemByMethod << \" MBs\";\n      LOG(LIB_INFO) << \">>>> Data size:            \" << data_size << \" MBs\";\n      LOG(LIB_INFO) << \">>>> Time elapsed:         \" << (wtm.elapsed()/double(1e6)) << \" sec\";\n\n      /* \n       * We need to repackage MetaAnalysis arrays:\n       * RunAll will deal with only a single method and \n       * a single set of query-time parameters.\n       */ \n\n      vector<vector<MetaAnalysis*>> ExpResRangeTmp(config.GetRange().size(), vector<MetaAnalysis*>(1));\n      vector<vector<MetaAnalysis*>> ExpResKNNTmp(config.GetKNN().size(), vector<MetaAnalysis*>(1));\n\n\n      for (size_t i = 0; i < config.GetRange().size(); ++i) {\n        MetaAnalysis* res = ExpResRange[i][MethNum];\n        res->SetMem(TestSetId, TotalMemByMethod);\n        ExpResRangeTmp[i][0] = res;\n      }\n      for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n        MetaAnalysis* res = ExpResKNN[i][MethNum];\n        res->SetMem(TestSetId, TotalMemByMethod);\n        ExpResKNNTmp[i][0] = res;\n      }\n\n      CHECK_MSG(vQueryTimeParams.size() == 1, \n                \"Test integration code is currently can execute only one set of query-time parameters!\");\n\n      Experiments<dist_t>::RunAll(true /* print progress */, \n                                  ThreadTestQty,\n                                  TestSetId,\n                                  managerGS,\n                                  ExpResRangeTmp, ExpResKNNTmp,\n                                  config, \n                                  *IndexPtr, \n                                  vQueryTimeParams);\n\n      }\n\n  }\n\n  for (size_t MethNum = 0; MethNum < vTestCases.size(); ++MethNum) {\n    string Print, Data, Header;\n\n    for (size_t i = 0; i < config.GetRange().size(); ++i) {\n      MetaAnalysis* res = ExpResRange[i][MethNum];\n\n      string cmdStr = CreateCmdStr(vTestCases[MethNum],\n                                             true,\n                                             ConvertToString(config.GetRange()[i]),\n                                             DistType, \n                                             SpaceTypeStr,\n                                             ThreadTestQty,\n                                             TestSetQty,\n                                             DataFile,\n                                             QueryFile,\n                                             MaxNumData,\n                                             MaxNumQuery,\n                                             eps);\n      cout << cmdStr << endl;\n      LOG(LIB_INFO) << \"Command line params: \" << cmdStr;\n      if (!ProcessAndCheckResults(cmdStr, \n                                  DistType, SpaceType, \n                                  vTestCases[MethNum], config, *res, Print)) {\n        nFail++;\n        cout << red << \"failed\" << no_color << \" (see logs for more details) \" << endl;\n      } else {\n        cout << green << \"passed\" << no_color << endl;\n      }\n      LOG(LIB_INFO) << \"Range: \" << config.GetRange()[i];\n      LOG(LIB_INFO) << Print;\n      LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n      delete res;\n    }\n\n    for (size_t i = 0; i < config.GetKNN().size(); ++i) {\n      MetaAnalysis* res = ExpResKNN[i][MethNum];\n\n      string cmdStr = CreateCmdStr(vTestCases[MethNum],\n                                             false,\n                                             ConvertToString(config.GetKNN()[i]),\n                                             DistType, \n                                             SpaceTypeStr,\n                                             ThreadTestQty,\n                                             TestSetQty,\n                                             DataFile,\n                                             QueryFile,\n                                             MaxNumData,\n                                             MaxNumQuery,\n                                             eps);\n\n      cout << cmdStr << endl;\n      LOG(LIB_INFO) << \"Command line params: \" << cmdStr;\n      if (!ProcessAndCheckResults(cmdStr,\n                                  DistType, SpaceType, \n                                  vTestCases[MethNum], config, *res, Print)) {\n        cout << red << \"failed\" << no_color << \" (see logs for more details) \" << endl;\n        nFail++;\n      } else {\n        cout << green << \"passed\" << no_color << endl;\n      }\n      LOG(LIB_INFO) << \"KNN: \" << config.GetKNN()[i];\n      LOG(LIB_INFO) << Print;\n      LOG(LIB_INFO) << \"Data: \" << Header << Data;\n\n      delete res;\n    }\n  }\n\n  return nFail;\n}\n\ninline bool RunOneTest(const vector<MethodTestCase>& vTestCases,\n               string                       DistType, \n               string                       SpaceTypeStr,\n               unsigned                     ThreadTestQty,\n               unsigned                     TestSetQty,\n               const string&                DataFile,\n               const string&                QueryFile,\n               IdTypeUnsign                 MaxNumData,\n               IdTypeUnsign                 MaxNumQuery,\n               const string&                KnnArg,\n               const                        float eps,\n               const string&                RangeArg) {\n  bool bTestRes = false;\n  ToLower(DistType);\n  if (DIST_TYPE_INT == DistType) {\n    bTestRes = RunTestExper<int>(vTestCases,\n                  DistType,\n                  SpaceTypeStr,\n                  ThreadTestQty,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  KnnArg,\n                  eps,\n                  RangeArg\n                 );\n  } else if (DIST_TYPE_FLOAT == DistType) {\n    bTestRes = RunTestExper<float>(vTestCases,\n                  DistType,\n                  SpaceTypeStr,\n                  ThreadTestQty,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  KnnArg,\n                  eps,\n                  RangeArg\n                 );\n  } else if (DIST_TYPE_DOUBLE == DistType) {\n    bTestRes = RunTestExper<double>(vTestCases,\n                  DistType,\n                  SpaceTypeStr,\n                  ThreadTestQty,\n                  TestSetQty,\n                  DataFile,\n                  QueryFile,\n                  MaxNumData,\n                  MaxNumQuery,\n                  KnnArg,\n                  eps,\n                  RangeArg\n                 );\n  } else {\n    PREPARE_RUNTIME_ERR(err) << \"Unknown distance value type: \" << DistType;\n    THROW_RUNTIME_ERR(err);\n  }\n\n  return bTestRes;\n};\n\n#endif\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_lpnorm.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <memory>\n\n#include \"space/space_lp.h\"\n#include \"bunit.h\"\n#include \"testdataset.h\"\n\nnamespace similarity {\n\n#define FLOAT_TYPE double\n\nclass VectorDataset1 : public TestDataset {\n public:\n  VectorDataset1() {\n    FLOAT_TYPE arr[8][5] = {\n      {0.459, 0.04, 0.086, 0.599, 0.555},\n      {0.842, 0.572, 0.801, 0.136, 0.87},\n      {0.42, 0.773, 0.554, 0.198, 0.461},\n      {0.958, 0.057, 0.376, 0.663, 0.419},\n      {0.261, 0.312, 0.7, 0.108, 0.588},\n      {0.079, 0.663, 0.921, 0.901, 0.564},\n      {0.463, 0.806, 0.672, 0.388, 0.225},\n      {0.174, 0.884, 0.801, 0.563, 0.092}\n    };\n\n    for (int i = 0; i < 8; ++i) {\n      dataobjects_.push_back(new Object(i + 1, -1, 5 * sizeof(FLOAT_TYPE), &arr[i]));\n    }\n  }\n};\n\n\nTEST(EuclideanDistance) {\n  VectorDataset1 dataset;\n  const ObjectVector& dataobjects = dataset.GetDataObjects();\n\n  unique_ptr<Space<FLOAT_TYPE>> space(new SpaceLp<FLOAT_TYPE>(2));\n  const FLOAT_TYPE expected[8][8] = {\n    {0.0, 1.120059, 0.96305295, 0.59664227, 0.85577684, 1.1493646, 1.04095581, 1.23306569},\n    {1.120059, 0.0, 0.67128161, 0.96976079, 0.70403835, 1.1330097, 0.83340686, 1.15376817},\n    {0.96305295, 0.67128161, 0.0, 1.02555984, 0.53230348, 0.87629218, 0.32963312, 0.63500551},\n    {0.59664227, 0.96976079, 1.02555984, 0.0, 0.99619074, 1.23067908, 1.00344556, 1.26338394},\n    {0.85577684, 0.70403835, 0.53230348, 0.99619074, 0.0, 0.91355952, 0.70412569, 0.89330565},\n    {1.1493646, 1.1330097, 0.87629218, 1.23067908, 0.91355952, 0.0, 0.77974098, 0.63976089},\n    {1.04095581, 0.83340686, 0.32963312, 1.00344556, 0.70412569, 0.77974098, 0.0, 0.39314119},\n    {1.23306569, 1.15376817, 0.63500551, 1.26338394, 0.89330565, 0.63976089, 0.39314119, 0.0}\n  };\n\n  for (size_t i = 0; i < 8; ++i) {\n    for (size_t j = 0; j < 8; ++j) {\n      const FLOAT_TYPE d = space->IndexTimeDistance(dataobjects[i], dataobjects[j]);\n      EXPECT_EQ_EPS(expected[i][j], d, 1e-5);\n    }\n  }\n}\n\nTEST(ManhattanDistance) {\n  VectorDataset1 dataset;\n  const ObjectVector& dataobjects = dataset.GetDataObjects();\n\n  unique_ptr<Space<FLOAT_TYPE>> space(new SpaceLp<FLOAT_TYPE>(1));\n  const FLOAT_TYPE expected[8][8] = {\n    {0.0, 2.408, 1.735, 1.006, 1.608, 2.149, 1.897, 2.343},\n    {2.408, 0.0, 1.341, 2.034, 1.252, 2.045, 1.639, 2.185},\n    {1.735, 1.341, 0.0, 1.939, 0.98299999, 1.624, 0.62, 1.338},\n    {1.006, 2.034, 1.939, 0.0, 2.0, 2.41299999, 2.009, 2.463},\n    {1.608, 1.252, 0.98299999, 2.0, 0.0, 1.571, 1.367, 1.711},\n    {2.149, 2.045, 1.624, 2.41299999, 1.571, 0.0, 1.628, 1.246},\n    {1.897, 1.639, 0.62, 2.009, 1.367, 1.628, 0.0, 0.804},\n    {2.343, 2.185, 1.338, 2.463, 1.711, 1.246, 0.804, 0.0}\n  };\n\n  for (size_t i = 0; i < 8; ++i) {\n    for (size_t j = 0; j < 8; ++j) {\n      const FLOAT_TYPE d = space->IndexTimeDistance(dataobjects[i], dataobjects[j]);\n      EXPECT_EQ_EPS(expected[i][j], d, 1e-5);\n    }\n  }\n}\n\nTEST(ChebyshevDistance) {\n  VectorDataset1 dataset;\n  const ObjectVector& dataobjects = dataset.GetDataObjects();\n\n  unique_ptr<Space<FLOAT_TYPE>> space(new SpaceLp<FLOAT_TYPE>(-1));\n  const FLOAT_TYPE expected[8][8] = {\n    {0.0, 0.715, 0.733, 0.499, 0.614, 0.835, 0.766, 0.844},\n    {0.715, 0.0, 0.422, 0.527, 0.581, 0.765, 0.645, 0.778},\n    {0.733, 0.422, 0.0, 0.716, 0.461, 0.703, 0.236, 0.369},\n    {0.499, 0.527, 0.716, 0.0, 0.697, 0.879, 0.749, 0.827},\n    {0.614, 0.581, 0.461, 0.697, 0.0, 0.793, 0.494, 0.572},\n    {0.835, 0.765, 0.703, 0.879, 0.793, 0.0, 0.513, 0.472},\n    {0.766, 0.645, 0.236, 0.749, 0.494, 0.513, 0.0, 0.289},\n    {0.844, 0.778, 0.369, 0.827, 0.572, 0.472, 0.289, 0.0}\n  };\n\n  for (size_t i = 0; i < 8; ++i) {\n    for (size_t j = 0; j < 8; ++j) {\n      const FLOAT_TYPE d = space->IndexTimeDistance(dataobjects[i], dataobjects[j]);\n      EXPECT_EQ_EPS(expected[i][j], d, 1e-5);\n    }\n  }\n}\n\n\n}  // namespace similarity\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_object.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include <string.h>\n#include \"object.h\"\n#include \"bunit.h\"\n\n#include <vector>\n#include <string>\n\nusing namespace std;\n\nnamespace similarity {\n\nTEST(Object) {\n  vector<string> strs = {\n      \"xyz\", \"beagcfa\", \"cea\", \"cb\",\n      \"d\", \"c\", \"bdaf\", \"ddcd\",\n      \"egbfa\", \"a\", \"fba\", \"bcccfe\",\n      \"ab\", \"bfgbfdc\", \"bcbbgf\", \"bfbb\"\n  };\n\n  for (int i = 0; i < 16; ++i) {\n    LabelType label = i * 1000 + i;\n    IdType    id = i + 1;\n    Object* obj = new Object(id, label, strs[i].size(), strs[i].c_str());\n    EXPECT_EQ(id, obj->id()); \n    EXPECT_EQ(label, obj->label()); \n    EXPECT_EQ(strs[i].size(), obj->datalength());\n\n    string tmp(obj->data(), obj->datalength());\n    EXPECT_TRUE(tmp == strs[i]);\n    delete obj;\n  }\n}\n\nTEST(ExtractLabel) {\n  string str;\n  int lab;\n\n  str = \"label:3456 12 34 56\";\n  lab = Object::extractLabel(str); \n\n  EXPECT_EQ(lab, 3456);\n  EXPECT_TRUE(str == \"12 34 56\");\n\n  str = \"label:9 1\";\n\n  lab = Object::extractLabel(str); \n\n  EXPECT_EQ(lab, 9);\n  EXPECT_TRUE(str == \"1\");\n\n  str = \"33\";\n\n  lab = Object::extractLabel(str); \n\n  EXPECT_EQ(lab, EMPTY_LABEL);\n  EXPECT_TRUE(str == \"33\");\n}\n\nTEST(AddLabel) {\n  string str = \"1 23 4 5 6\";\n  Object::addLabel(str, 2345);\n  \n  EXPECT_TRUE(str == \"label:2345 1 23 4 5 6\");\n}\n\n\n}  // namespace similarity\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_proj.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#include \"bunit.h\"\n#include \"distcomp.h\"\n#include \"randproj_util.h\"\n#include \"genrand_vect.h\"\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <class dist_t>\nbool TestRandProj(size_t srcDim, size_t dstDim, size_t rep, dist_t eps) {\n  vector<vector<dist_t>>  projMatr;\n\n  for (size_t r = 0; r < rep; ++r) {\n    // 1. Generate the random matrix\n    initRandProj(srcDim, dstDim, \n                 true, // yes, do create an orthonormal basis\n                 projMatr);  \n    // 2. Check if we got an orthonormal basis\n    for (int i = 0; i < dstDim; ++i) {\n      dist_t v = ScalarProductSIMD(&projMatr[i][0], &projMatr[i][0], srcDim);\n      if (fabs(v - static_cast<dist_t>(1)) >  eps) {\n        LOG(LIB_ERROR) << \"Expected norm 1, got: \" << v \n                       << \" srcDim = \" << srcDim << \" dstDim = \" << dstDim\n                       << \" type: \" << typeid(dist_t).name();\n        return false;\n      }\n      for (int k = i + 1; k < dstDim; ++k) {\n        v = ScalarProductSIMD(&projMatr[i][0], &projMatr[k][0], srcDim);\n        if (fabs(v - static_cast<dist_t>(0)) >  eps) {\n          LOG(LIB_ERROR) << \"Expected product 0, got: \" << v \n                         << \" srcDim = \" << srcDim << \" dstDim = \" << dstDim\n                       << \" type: \" << typeid(dist_t).name();\n          return false;\n        }\n      }\n    }\n  } \n  return true;\n}\n\nTEST(TestRandProj) {\n    int nTest  = 0;\n    int nFail = 0;\n\n    for (int srcDim = 1; srcDim <= 128; ) {\n      for (int dstDim = 1; dstDim < srcDim; ) {\n        ++nTest;\n        nFail += !TestRandProj<float>(srcDim, dstDim, 2, 1e-4f);\n        ++nTest;\n        nFail += !TestRandProj<double>(srcDim, dstDim, 2, 1e-8);\n        dstDim += (srcDim < 32 ? 1:8);\n      }\n      srcDim += (srcDim < 32 ? 1:8);\n    }\n\n    LOG(LIB_INFO) << nTest << \" (sub) tests performed \" << nFail << \" failed\";\n\n    EXPECT_EQ(0, nFail);\n}\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_space_serial.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifdef _MSC_VER\n#define _SCL_SECURE_NO_WARNINGS\n#endif\n\n#include <iostream>\n#include <memory>\n#include <cmath>\n#include <string>\n#include <vector>\n#include <sstream>\n\n#include \"bunit.h\"\n#include \"space.h\"\n#include \"spacefactory.h\"\n#include \"testdataset.h\"\n#include \"params.h\"\n#include \"space/space_sparse_lp.h\"\n#include \"space/space_sparse_scalar.h\"\n#include \"space/space_sparse_vector_inter.h\"\n#include \"space/space_sparse_scalar_fast.h\"\n#include \"space/space_sparse_vector.h\"\n#include \"space/space_scalar.h\"\n#include \"space/space_word_embed.h\"\n\n#define MAX_NUM_REC 10\n\nnamespace similarity {\n\nusing namespace std;\n\ntemplate <typename dist_t>\nbool fullTestCommon(Space<dist_t>* pSpace, const ObjectVector& dataSet1, const vector<string>& vExternIds1, size_t maxNumRec, const string& tmpFileName,bool bTestExternId) {\n  pSpace->WriteDataset(dataSet1, vExternIds1, tmpFileName);\n\n  ObjectVector dataSet2;\n  vector<string> vExternIds2;\n\n  unique_ptr<DataFileInputState> inpState(pSpace->ReadDataset(dataSet2, vExternIds2, tmpFileName));\n  pSpace->UpdateParamsFromFile(*inpState);\n\n  if (maxNumRec != dataSet2.size()) {\n    LOG(LIB_ERROR) << \"Expected to read \" << maxNumRec << \" records from \" \n            \"dataSet, but read only: \" << dataSet2.size();\n    return false;\n  }\n\n  if (vExternIds2.size() != dataSet2.size()) {\n    LOG(LIB_ERROR) << \"The number of external IDs (\" << vExternIds1.size() << \") is different from the number of records: \" << dataSet2.size();\n    return false;\n  }\n\n  for (size_t i = 0; i < maxNumRec; ++i) {\n    if (bTestExternId) {\n      if (vExternIds1[i] != vExternIds2[i]) {\n        LOG(LIB_ERROR) << \"External IDs are different, i = \" << i << \" id1 = '\" << vExternIds1[i] << \"' id2 = '\" << vExternIds2[i] << \"'\" ;\n        return false;\n      }\n    }\n    if (!pSpace->ApproxEqual(*dataSet1[i], *dataSet2[i])) {\n      LOG(LIB_ERROR) << \"Objects are different, i = \" << i;\n      LOG(LIB_ERROR) << \"Object 1 string representation produced by the space:\" <<\n              pSpace->CreateStrFromObj(dataSet1[i], vExternIds1[i]);\n      LOG(LIB_ERROR) << \"Object 2 string representation produced by the space:\" <<\n              pSpace->CreateStrFromObj(dataSet2[i], vExternIds2[i]);\n      return false;\n    }\n  }\n\n  return true;\n}\n\ntemplate <typename dist_t>\nbool fullTest(const string& dataSetFileName, size_t maxNumRec, const string& tmpFileName, const string& spaceName, const char* pSpaceParams[], bool bTestExternId) {\n  vector<string> spaceParams;\n\n  LOG(LIB_INFO) << \"Space name: \" << spaceName << \" distance type: \" << DistTypeName<dist_t>() << \" data file: \" << dataSetFileName << \" maxNumRec=\" << maxNumRec;\n\n  while (*pSpaceParams) {\n    spaceParams.push_back(*pSpaceParams++);\n  }\n\n  unique_ptr<Space<dist_t>> space(SpaceFactoryRegistry<dist_t>::\n                                  Instance().CreateSpace(spaceName, spaceParams));\n\n  ObjectVector dataSet1;\n  vector<string> vExternIds1;\n\n  unique_ptr<DataFileInputState> inpState(space->ReadDataset(dataSet1, vExternIds1, sampleDataPrefix + dataSetFileName, maxNumRec));\n  space->UpdateParamsFromFile(*inpState);\n\n  if (dataSet1.size() != maxNumRec) {\n    LOG(LIB_ERROR) << \"Bug or poorly designed test, expected to read \" << maxNumRec << \" records from \" \n          << dataSetFileName << \", but read only: \" << dataSet1.size();\n    return false;\n  }\n\n  return fullTestCommon(space.get(), dataSet1, vExternIds1, maxNumRec, tmpFileName, bTestExternId); \n}\n\ntemplate <typename dist_t>\nbool fullTest(const vector<string>& dataSetStr, size_t maxNumRec, const string& tmpFileName, const string& spaceName, const char* pSpaceParams[], bool bTestExternId) {\n  vector<string> spaceParams;\n\n  LOG(LIB_INFO) << \"Space name: \" << spaceName << \" maxNumRec=\" << maxNumRec;\n\n  while (*pSpaceParams) {\n    spaceParams.push_back(*pSpaceParams++);\n  }\n\n  unique_ptr<Space<dist_t>> space(SpaceFactoryRegistry<dist_t>::\n                                  Instance().CreateSpace(spaceName, spaceParams));\n\n  ObjectVector dataSet1;\n  vector<string> vExternIds1;\n\n  IdType id = 0;\n  for (string s: dataSetStr) {\n    stringstream ss;\n    ss << id;\n      \n    dataSet1.push_back(space->CreateObjFromStr(id++, -1, s, NULL).release());\n    vExternIds1.push_back(ss.str());\n    \n    if (id >= maxNumRec) break;\n  }\n\n  if (dataSet1.size() < maxNumRec) {\n    LOG(LIB_ERROR) << \"Bug or poorly designed test, expected to create \" << maxNumRec << \" records from array but read only: \" << dataSet1.size();\n    return false;\n  }\n\n  return fullTestCommon(space.get(), dataSet1, vExternIds1, maxNumRec, tmpFileName, bTestExternId); \n}\n\nconst char *emptyParams[] = {NULL};\nconst char *paramsDistL2[]     = {\"dist=\" SPACE_WORD_EMBED_DIST_L2, NULL};\nconst char *paramsDistCosine[] = {\"dist=\" SPACE_WORD_EMBED_DIST_COSINE, NULL};\n\nTEST(Test_WordEmbedSpace) {\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"glove.6B.100d_100.txt\", maxNumRec, \"tmp_out_file.txt\", SPACE_WORD_EMBED, paramsDistL2, true));\n    EXPECT_EQ(true, fullTest<double>(\"glove.6B.100d_100.txt\", maxNumRec, \"tmp_out_file.txt\",SPACE_WORD_EMBED, paramsDistCosine, true));\n    EXPECT_EQ(true, fullTest<float>(\"glove.6B.100d_100.txt\", maxNumRec, \"tmp_out_file.txt\", SPACE_WORD_EMBED, paramsDistL2, true));\n    EXPECT_EQ(true, fullTest<double>(\"glove.6B.100d_100.txt\", maxNumRec, \"tmp_out_file.txt\",SPACE_WORD_EMBED, paramsDistCosine, true));\n  }\n}\n\nTEST(Test_DenseVectorSpace) {\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"l2\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"l2\", emptyParams, false));\n  }\n}\n\nTEST(Test_DenseVectorKLDiv) {\n  // Test KL-diverg. with and without precomputation of logarithms\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"kldivgenfast\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"kldivgenfast\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<float>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"kldivgenslow\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"final128_10K.txt\", maxNumRec, \"tmp_out_file.txt\", \"kldivgenslow\", emptyParams, false));\n  }\n}\n\nTEST(Test_SparseVectorSpace) {\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"cosinesimil_sparse\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<float>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"angulardist_sparse\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"cosinesimil_sparse\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"angulardist_sparse\", emptyParams, false));\n  }\n}\n\nTEST(Test_SparseVectorSpaceFast) {\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"cosinesimil_sparse_fast\", emptyParams, false));\n    EXPECT_EQ(true, fullTest<float>(\"sparse_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"angulardist_sparse_fast\", emptyParams, false));\n  }\n}\n\nTEST(Test_StringSpace) {\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<int>(\"dna32_4_5K.txt\", maxNumRec, \"tmp_out_file.txt\", \"leven\", emptyParams, false));\n  }\n}\n\nTEST(Test_BitHamming) {\n  vector<string> testVect;\n\n  for (size_t i = 0; i < MAX_NUM_REC; ++i) {\n    stringstream ss;\n\n    for (size_t k = 0; k < 128; ++k) {\n      if (k) ss << \" \";\n      ss << (RandomInt() % 2);\n    }\n    testVect.push_back(ss.str());\n  }\n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<int>(testVect, maxNumRec, \"tmp_out_file.txt\", \"bit_hamming\", emptyParams, false));\n  }\n}\n\n#if !defined(_MSC_VER)\nTEST(Test_SFQD) {\n  const char* sqfdParams[] = {\"alpha=1\", NULL} ; \n  for (size_t maxNumRec = 1; maxNumRec < MAX_NUM_REC; ++maxNumRec) {\n    EXPECT_EQ(true, fullTest<float>(\"sqfd20_10k_10k.txt\", maxNumRec, \"tmp_out_file.txt\", \"sqfd_heuristic_func\", sqfdParams, false));\n    EXPECT_EQ(true, fullTest<double>(\"sqfd20_10k_10k.txt\", maxNumRec, \"tmp_out_file.txt\", \"sqfd_heuristic_func\", sqfdParams, false));\n  }\n}\n#endif\n\n\n}\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_sqfd.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib\n *\n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#if !defined(_MSC_VER)\n\n#include <string.h>\n#include \"space.h\"\n#include \"bunit.h\"\n#include \"testdataset.h\"\n#include \"space_sqfd.h\"\n\nnamespace similarity {\n\nObject* CreateSqfdObject(\n    const std::vector<std::vector<float>>& cluster,\n    const std::vector<float>& weight) {\n  CHECK(cluster.size() > 0);\n  CHECK(weight.size() == cluster.size());\n  std::vector<char> buf(\n      2*sizeof(int) + (cluster[0].size() + 1) * cluster.size() * sizeof(float));\n  int* h = reinterpret_cast<int*>(&buf[0]);\n  h[0] = cluster.size();\n  h[1] = cluster[0].size();\n  float* obj = reinterpret_cast<float*>(&buf[2*sizeof(int)]);\n  int pos = 0;\n  for (size_t i = 0; i < cluster.size(); ++i) {\n    for (size_t j = 0; j < cluster[i].size(); ++j) {\n      obj[pos++] = cluster[i][j];\n    }\n    obj[pos++] = weight[i];\n  }\n  return new Object(-1, -1, buf.size(), &buf[0]);\n}\n\nTEST(Sqfd_From_Article) {\n  std::vector<std::vector<float>> cq = {{3,3}, {8,7}};\n  std::vector<float> wq = {0.5, 0.5};\n  Object* q = CreateSqfdObject(cq, wq);\n\n  std::vector<std::vector<float>> co = {{4,7}, {9,5}, {8,1}};\n  std::vector<float> wo = {0.5, 0.25, 0.25};\n  Object* o = CreateSqfdObject(co, wo);\n\n  SqfdFunction<float>* f = new SqfdHeuristicFunction<float>(1.0);\n  Space<float>* space = new SpaceSqfd<float>(f);\n\n  /*\n  >>> import numpy as np\n  >>> import math\n  >>> w = np.array([0.5,0.5,-0.5,-0.25,-0.25])\n  >>> a = np.array([[1.0, 0.135, 0.195, 0.137, 0.157],\n                    [0.135, 1.0, 0.2, 0.309, 0.143],\n                    [0.195, 0.2, 1.0, 0.157, 0.122],\n                    [0.137, 0.309, 0.157, 1.0, 0.195],\n                    [0.157, 0.143, 0.122, 0.195, 1.0]])\n  >>> math.sqrt(w.dot(a).dot(w.transpose()))\n  0.807\n  */\n\n  float d = space->IndexTimeDistance(q, o);\n  EXPECT_EQ_EPS(d, 0.808f, 0.01f);\n\n  delete space;\n  delete q;\n  delete o;\n}\n\nTEST(Sqfd) {\n  std::vector<std::vector<float>> cq = {\n    {0.382806,0.397073,0.661498,0.683582,0.203314,0.0871583,1},\n    {0.482246,0.368699,0.701657,0.731006,0.175442,0.132232,0.20056},\n    {0.740454,0.434634,0.661071,0.850084,0.681469,0.0610024,0.218037},\n    {0.178604,0.416208,0.62079,0.437091,0.757451,0.0982573,0.256335},\n    {0.518211,0.432369,0.639439,0.23629,0.690716,0.191468,0.193767},\n    {0.250961,0.416317,0.621276,0.344846,0.763613,0.0738424,1},\n    {0.609122,0.331734,0.760648,0.710042,0.769226,0.0996582,1},\n    {0.744822,0.425876,0.551634,0.223641,0.23818,0.0885243,1},\n    {0.843675,0.543647,0.541379,0.798141,0.496724,0.0357157,1},\n    {0.612551,0.408074,0.600394,0.266899,0.234377,0.143155,0.252654}};\n  std::vector<float> wq = {\n    0.0822,0.1005,0.1314,0.0878,0.1087,0.1413,0.0397,0.0886,0.0832,0.1366};\n  Object* q = CreateSqfdObject(cq, wq);\n\n  std::vector<std::vector<float>> co = {\n    {0.720299,0.460648,0.609983,0.733792,0.279245,0.0940223,0.940909},\n    {0.732504,0.470709,0.584041,0.849335,0.51135,0.105338,0.100655},\n    {0.790358,0.446342,0.585623,0.633481,0.834874,0.0901916,0.855607},\n    {0.265014,0.441256,0.551832,0.435405,0.199537,0.111734,0.240841},\n    {0.714692,0.469428,0.333677,0.1261,0.297041,0.0146298,0.987917},\n    {0.194637,0.449039,0.533339,0.482084,0.214012,0.0459264,1},\n    {0.288555,0.430071,0.558277,0.17054,0.765986,0.0694933,1},\n    {0.268943,0.460447,0.544101,0.583028,0.829013,0.0607609,1},\n    {0.23752,0.443694,0.554333,0.345023,0.773767,0.089284,0.310363},\n    {0.55076,0.411417,0.602403,0.311277,0.628119,0.171292,0.163618}};\n  std::vector<float> wo = {\n    0.066,0.2385,0.0651,0.1085,0.12,0.0968,0.0684,0.0541,0.0965,0.0861};\n  Object* o = CreateSqfdObject(co, wo);\n\n  SqfdFunction<float>* f = new SqfdHeuristicFunction<float>(1.0);\n  Space<float>* space = new SpaceSqfd<float>(f);\n\n  float d = space->IndexTimeDistance(q, o);\n  EXPECT_EQ_EPS(d, 0.214f, 0.01f);\n\n  delete space;\n  delete q;\n  delete o;\n}\n\n}  // namespace similarity\n\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/test_timer.cc",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/) and others.\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n#ifndef _MSC_VER\n\n#include <sys/time.h>\n\n#include \"logging.h\"\n#include \"ztimer.h\"\n#include \"bunit.h\"\n\nnamespace similarity {\n\n/*\n * These test is intended to run only on Unix-like systems.\n */\n\n/**\n *  author: Preston Bannister\n */\nclass WallClockTimerBannister {\npublic:\n    struct timeval t1, t2;\n    WallClockTimerBannister() :\n        t1(), t2() {\n        gettimeofday(&t1, 0);\n        t2 = t1;\n    }\n    void reset() {\n        gettimeofday(&t1, 0);\n        t2 = t1;\n    }\n    uint64_t elapsed() {\n        return ((t2.tv_sec - t1.tv_sec) * 1000ULL * 1000ULL) + ((t2.tv_usec - t1. tv_usec));\n    }\n    uint64_t split() {\n        gettimeofday(&t2, 0);\n        return elapsed();\n    }\n};\n\nvoid BurnCPU(size_t qty = 10000000000) {\n  size_t sum = 0;\n  for (size_t i = 0; i < qty; ++i) {\n    sum += i;\n    sum *= qty;\n  }\n  LOG(LIB_INFO) << \"Ignore: \" << sum;\n}\n\n#ifdef DISABLE_LONG_TESTS\nTEST(DISABLE_TestTimer) {\n#else\nTEST(TestTimer) {\n#endif\n  WallClockTimerBannister oldz;\n  WallClockTimer          z;\n\n  BurnCPU();\n  oldz.split();\n  z.split();\n\n  LOG(LIB_INFO) << \"Timer: \" << z.elapsed() << \" : \" << oldz.elapsed();\n  // We expect both timers to differ in at most 0.1 ms\n  EXPECT_EQ(std::abs(static_cast<int64_t>(z.elapsed()) - static_cast<int64_t>(oldz.elapsed())) < 100, true);\n\n  BurnCPU();\n  oldz.split();\n  z.split();\n\n  LOG(LIB_INFO) << \"Timer: \" << z.elapsed() << \" : \" << oldz.elapsed();\n  // We expect both timers to differ in at most 0.1 ms\n  EXPECT_EQ(std::abs(static_cast<int64_t>(z.elapsed()) - static_cast<int64_t>(oldz.elapsed())) < 100, true);\n\n  z.reset();\n  oldz.reset();\n\n  BurnCPU();\n  oldz.split();\n  z.split();\n\n  LOG(LIB_INFO) << \"Timer: \" << z.elapsed() << \" : \" << oldz.elapsed();\n  // We expect both timers to differ in at most 0.1 ms\n  EXPECT_EQ(std::abs(static_cast<int64_t>(z.elapsed()) - static_cast<int64_t>(oldz.elapsed())) < 100, true);\n}\n\n}  // namespace similarity\n#endif\n\n"
  },
  {
    "path": "algorithms/NMSLIB/code/test/testdataset.h",
    "content": "/**\n * Non-metric Space Library\n *\n * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov (http://boytsov.info).\n * With contributions from Lawrence Cayton (http://lcayton.com/).\n *\n * For the complete list of contributors and further details see:\n * https://github.com/searchivarius/NonMetricSpaceLib \n * \n * Copyright (c) 2014\n *\n * This code is released under the\n * Apache License Version 2.0 http://www.apache.org/licenses/.\n *\n */\n\n#ifndef _TEST_DATASET_H_\n#define _TEST_DATASET_H_\n\n#include \"object.h\"\n#include \"space.h\"\n\n#include <string>\n\nnamespace similarity {\n\nusing std::string;\n\n#ifdef _MSC_VER\nconst string sampleDataPrefix = string(\"..\") + PATH_SEPARATOR +\n                                string(\"..\") + PATH_SEPARATOR +\n                                string(\"..\") + PATH_SEPARATOR +\n                                string(\"..\") + PATH_SEPARATOR + string(\"sample_data\") + PATH_SEPARATOR;\n#else\nconst string sampleDataPrefix = string(\"..\") + PATH_SEPARATOR + string(\"sample_data\") + PATH_SEPARATOR;\n#endif\n\nclass TestDataset {\n public:\n  virtual ~TestDataset() {\n    for (auto it = dataobjects_.begin(); it != dataobjects_.end(); ++it) {\n      delete *it;\n    }\n  }\n\n  const ObjectVector& GetDataObjects() const { return dataobjects_; }\n\n protected:\n  ObjectVector dataobjects_;\n};\n\n}  // namespace similarity\n\n#endif      //  _TEST_DATASET_H_\n"
  },
  {
    "path": "algorithms/NMSLIB/script/run_HNSW.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\nresult_path=../results\nmkdir ${result_path}\nmkdir ../indices\n\n\nfor data in \"audio\"\ndo\nn=53387\nm=200\nK=20\nM=10\nNN=200\n\ndataset=${data_path}/${data}/${data}_base.txt\nquery=${data_path}/${data}/${data}_query.txt\nresult_path=${result_path}/${data}_HNSW_${M}M_${NN}NN.txt\nindices_path=\"../indices/${data}_${M}M_${NN}NN.hnsw\"\n\nStr=\"--queryTimeParams efSearch=1  \"\nfor i in 2 3 4 5 6 8 10 15 20 30 50 70 80 100 150 200 250 300 400 500 600 700 800 1000 1300 1500 1700 2000\ndo\nStr=\"${Str} -t efSearch=$i  \"\ndone\n\n../code/release/experiment \\\n--distType float --spaceType l2 \\\n--knn $K \\\n--dataFile ${dataset} --maxNumData $n --queryFile ${query} --maxNumQuery 200 -o ${result_path} -a \\\n--method hnsw \\\n--createIndex M=${M},efConstruction=${NN},indexThreadQty=100,skip_optimized_index=1 \\\n${Str}  \n\ndone\n"
  },
  {
    "path": "algorithms/NMSLIB/script/run_NAPP.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\nresult_path=../results\nmkdir ${result_path}\n\nfor data in \"audio\"\ndo\nn=53387\nm=200\nK=20\nPP=512\nPI=64\n\ndataset=${data_path}/${data}/${data}_base.txt\nquery=${data_path}/${data}/${data}_query.txt\nresult_path=${result_path}/${data}_NAPP_${PP}PP_${PI}PI.txt\n\nStr=\"--queryTimeParams numPivotSearch=10  \"\nfor i in 15 20 25 30 35 40 43 45 47 48 50 52 53 55 60\ndo\nStr=\"${Str} -t numPivotSearch=$i \"\ndone\n\n../code/release/experiment \\\n--distType float --spaceType l2 \\\n--knn $K \\\n--dataFile ${dataset} --maxNumData $n --queryFile ${query} --maxNumQuery $m -o ${result_path} -a \\\n--method napp \\\n--createIndex numPivot=${PP},numPivotIndex=${PI},chunkIndexSize=1024,indexThreadQty=1 \\\n--saveIndex ../indices/${data}_${PP}PP_${PI}PI.napp \\\n${Str}\n\n\ndone\n"
  },
  {
    "path": "algorithms/NMSLIB/script/run_SW.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\nresult_path=../results\nmkdir ${result_path}\nmkdir \"../indices\"\n\nfor data in \"audio\"\ndo\nn=53387\nm=200\nK=20\nNN=10\nI=5\n\ndataset=${data_path}/${data}/${data}_base.txt\nquery=${data_path}/${data}/${data}_query.txt\nresult_path=${result_path}/${data}_SW_${NN}NN_${I}I.txt\n\nStr=\"--queryTimeParams initSearchAttempts=1,efSearch=1 \"\nfor i in 2 3 4 5 6 8 10 15 20 30 50 70 80 100 150 200 250 300 500 700 1000 1500 1700 2000 2500\ndo\nStr=\"${Str} -t initSearchAttempts=1,efSearch=$i  \"\ndone\n\n../code/release/experiment \\\n--distType float --spaceType l2 \\\n--knn 20 \\\n--dataFile ${dataset} --maxNumData $n --queryFile ${query} --maxNumQuery 200 -o ${result_path} -a \\\n--method sw-graph \\\n--createIndex NN=${NN},indexThreadQty=41 \\\n--saveIndex ../indices/${data}_${NN}NN_${I}I.sw \\\n${Str}\n\ndone\n \n"
  },
  {
    "path": "algorithms/NMSLIB/script/run_vptree.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\nresult_path=../results\nmkdir ${result_path}\n\nfor data in \"audio\"\ndo\nn=53387\nm=200\nK=20\nbucket_size=100\n\ndataset=${data_path}/${data}/${data}_base.txt\nquery=${data_path}/${data}/${data}_query.txt\nresult_path=${result_path}/${data}_vptree_${bucket_size}B.txt\n\nfor i in 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.95\ndo\n../code/release/experiment \\\n--distType float --spaceType l2 \\\n--knn $K \\\n--dataFile ${dataset} --maxNumData $n --queryFile ${query} --maxNumQuery 200 -o ${result_path} -a \\\n--method vptree \\\n--createIndex bucketSize=${bucket_size},desiredRecall=$i,tuneK=$K,chunkBucket=1\ndone\ndone\n"
  },
  {
    "path": "algorithms/NSH/README.md",
    "content": "# NSH - Neighbor-Sensitive Hashing\n\nThis is a modified version of NSH. The original version can be downloaded from [here](https://github.com/pyongjoo/nsh), which is implemented with MATLAB. \n\nWe use the original code to generate the hashcodes of the data points and transformation parameters. We rewrite the searching part in C++ to transform the query points to binrary vectors and use the hierarchical clustering trees in FLANN (C++) to index the data binary vectors to support more efficient search.\n\n## Compile (NSH/src)\n\nTo compile NSH, go to NSH/src and run \n```\nmake\n```\nto get the executable file `NSH`.\n\n## Index (NSH/preprocess)\n\nTo build the index of NSH, enter into preprocess folder and run \n```\nmain.m\n```\nin MATLAB to get the transformed data and transformation parameters.\nAlternatively, one may run\n```\nmatlab -nodisplay -nojvm -nosplash -nodesktop -r \"try, run('main.m'), end, exit(0)\"\n```\n\n## Search (NSH/script)\n\ngo to NSH/src and run \n```\nsearcher.sh \n```\nto obtain the searching performance of NSH. We use c value (e.g. the number of the visited points) to  achieve the trade-off between search speed and search quality (recall).\n\n\n"
  },
  {
    "path": "algorithms/NSH/preprocess/compactbit.m",
    "content": "function cb = compactbit(b)\n%\n% b = bits array\n% cb = compacted string of bits (using words of 'word' bits)\n\n[nSamples nbits] = size(b);\nnwords = ceil(nbits/8);\ncb = zeros([nSamples nwords], 'uint8');\n\nfor j = 1:nbits\n    w = ceil(j/8);\n    cb(:,w) = bitset(cb(:,w), mod(j-1,8)+1, b(:,j));\nend\n\nend"
  },
  {
    "path": "algorithms/NSH/preprocess/computeRecall.m",
    "content": "function recall = computeRecall(DB, G, r)\n% return the recall of k-NN retrieval\n% \n% Input\n%   DB: distance matrix calculated from the hashed matrix\n%   r: number of the documents retrieved \n%\n%   The dimensions of DX and DB are [#query, #data].\n\n[qn xn] = size(DB);\nassert(r <= xn);\n\nk = size(G,2);\nrecall = zeros(qn, 1);\n\nparfor i = 1:qn\n    %qid = i;\n\n    %groundtruth_dist = distMat(q, X(G(qid,:),:));\n    %min_index = mink(gold_standard_dist, k);\n    groundtruth = G(i, :);\n    [B,I] = sort(double(DB(i,:)));\n    hash_neighbor = I(1:r);\n    %hash_neighbor = mink(double(DB(i,:)), r);\n\n    recall(i) = length(intersect(groundtruth, hash_neighbor)) / k;\nend\n\nrecall = mean(recall);\n\n"
  },
  {
    "path": "algorithms/NSH/preprocess/distMat.m",
    "content": "function D=distMat(P1, P2)\r\n%\r\n% Euclidian distances between vectors\r\n% each vector is one row\r\n  \r\nif nargin == 2\r\n    P1 = double(P1);\r\n    P2 = double(P2);\r\n    \r\n    X1=repmat(sum(P1.^2,2),[1 size(P2,1)]);\r\n    X2=repmat(sum(P2.^2,2),[1 size(P1,1)]);\r\n    R=P1*P2';\r\n    D=real(sqrt(X1+X2'-2*R));\r\nelse\r\n    P1 = double(P1);\r\n\r\n    % each vector is one row\r\n    X1=repmat(sum(P1.^2,2),[1 size(P1,1)]);\r\n    R=P1*P1';\r\n    D=X1+X1'-2*R;\r\n    D = real(sqrt(D));\r\nend\r\n\r\n\r\n"
  },
  {
    "path": "algorithms/NSH/preprocess/fvecs_read.m",
    "content": "% Read a set of vectors stored in the fvec format (int + n * float)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = fvecs_read (filename)     -> read all vectors\r\n%   v = fvecs_read (filename, n)  -> read n vectors \r\n%   v = fvecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = fvecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'float=>single');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\n  \r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/NSH/preprocess/hammingDist.m",
    "content": "function Dh=hammingDist(B1, B2)\r\n%\r\n% Compute hamming distance between two sets of samples (B1, B2)\r\n%\r\n% Dh=hammingDist(B1, B2);\r\n%\r\n% Input\r\n%    B1, B2: compact bit vectors. Each datapoint is one row.\r\n%    size(B1) = [ndatapoints1, nwords]\r\n%    size(B2) = [ndatapoints2, nwords]\r\n%    It is faster if ndatapoints1 < ndatapoints2\r\n% \r\n% Output\r\n%    Dh = hamming distance. \r\n%    size(Dh) = [ndatapoints1, ndatapoints2]\r\n\r\n% example query\r\n% Dhamm = hammingDist(B2, B1);\r\n% this will give the same result than:\r\n%    Dhamm = distMat(U2>0, U1>0).^2;\r\n% the size of the distance matrix is:\r\n%    size(Dhamm) = [Ntest x Ntraining]\r\n\r\n% loop-up table:\r\nbit_in_char = uint16([...\r\n    0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 1 2 2 3 2 3 ...\r\n    3 4 2 3 3 4 3 4 4 5 1 2 2 3 2 3 3 4 2 3 3 4 ...\r\n    3 4 4 5 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 1 2 ...\r\n    2 3 2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 ...\r\n    3 4 4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 ...\r\n    5 6 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 1 2 2 3 ...\r\n    2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 3 4 ...\r\n    4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 ...\r\n    3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 2 3 3 4 3 4 ...\r\n    4 5 3 4 4 5 4 5 5 6 3 4 4 5 4 5 5 6 4 5 5 6 ...\r\n    5 6 6 7 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 4 5 ...\r\n    5 6 5 6 6 7 5 6 6 7 6 7 7 8]);\r\n\r\nn1 = size(B1,1);\r\n[n2, nwords] = size(B2);\r\n\r\nDh = zeros([n1 n2], 'uint16');\r\nparfor j = 1:n1\r\n    for n=1:nwords\r\n        y = bitxor(B1(j,n),B2(:,n));\r\n        Dh(j,:) = Dh(j,:) + bit_in_char(y+1);\r\n    end\r\nend\r\n"
  },
  {
    "path": "algorithms/NSH/preprocess/ivecs_read.m",
    "content": "% Read a set of vectors stored in the ivec format (int + n * int)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = ivecs_read (filename)     -> read all vectors\r\n%   v = ivecs_read (filename, n)  -> read n vectors \r\n%   v = ivecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = ivecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'int=>double');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/NSH/preprocess/ivecs_write.m",
    "content": "% This function writes a vector from a file in the ivecs format\n\nfunction ivecs_write (filename, v)\n\n% open the file and count the number of descriptors\nfid = fopen (filename, 'wb');\nd = size (v, 1);\nn = size (v, 2);\n\nfor i = 1:n\n  \n  % first write the vector size\n  count = fwrite (fid, d, 'int');\n\n  if count ~= 1 \n    error ('Unable to write vector dimension: count !=1 \\n');\n  end\n\n  % write the vector components\n  count = fwrite (fid, v(:,i), 'int');\n\n  if count ~= d \n    error ('Unable to write vector elements: count !=1 \\n');\n  end\nend\n\nfclose (fid);\n"
  },
  {
    "path": "algorithms/NSH/preprocess/main.m",
    "content": "data_name='audio';\ndata_path=['../../../data/' data_name '_base.fvecs'];\n\nindex_path=['../index/' data_name];\nmkdir(index_path);\n\nparams_path=[index_path '/' data_name '_params.NSH'];\ndataset_binary_path=[index_path '/' data_name '_B1.NSH'];\nbit=8;\n\nrun_NSH(data_path, params_path, dataset_binary_path, bit);\n"
  },
  {
    "path": "algorithms/NSH/preprocess/readme.markdown",
    "content": "# NEIGHBOR-SENSITIVE HASHING\n\nNeighbor-Sensitive Hashing is a state-of-the-art approximate k-Nearest Neighbor\nalgorithm for high-dimensional objects which are represetned as vectors of\nhundreds of dimensions. Our work is based on a seemingly counter-intuitive (but\neffective) idea that increasing the distances between nearby objects in\nhashed-space (or equivanlently, Hamming space) results in hash functions that\nare only neighbor-sensitive. Our technique may not be an optimal choice if users\nare interested in sorting all data objects in a database in terms of their\ndistances from a query. However, our techinique is greatly successful at\ndistinguishing k-Nearest Neighbor objects when the value of k is small enough\ncompared to the number of the total objects in a database.\n\nOur work has shown superior performances over other state-of-the-art techniques\nsuch as Spectral Hashing, Spherical Hashing, Complementary Projection Hashing,\nand so on, according to our comprehensive experiments not only including\n\"codesize vs. recall\" but also \"latency vs. recall\"; for search latency measure,\nwe used a state-of-the-art Hamming search algorithm Multi-Index Hashing with\nthose hashing algorithms.\n\nhttp://www-personal.umich.edu/~pyongjoo/#nsh\n"
  },
  {
    "path": "algorithms/NSH/preprocess/run_NSH.m",
    "content": "function run_NSH(data_path, params_path, binary_path, codesize)\n\ndataset = fvecs_read(data_path);\nX=dataset';\nclear dataset;\n\ntic;\n[model,pivots,W,eps] = trainNSH(X, codesize);\nXB = model.hash(X);\nindex_time=toc;\n\nm=size(pivots,1);\nfile = fopen(params_path, 'w');\nfprintf(file,'%d\\n',codesize);\nfprintf(file,'%f\\n',eps);\nfor t=1:m %anchor\n    p_=pivots(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfor t=1:m+1 %W\n    p_=W(t,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfclose(file);\n    \nivecs_write(binary_path ,XB');\n  \ndisp(['indextime: ' num2str(index_time) ' (s)']);\n   \nend\n"
  },
  {
    "path": "algorithms/NSH/preprocess/trainNSH.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n%\n% Neighbor-Sensitive Hashing (NSH)\n%     Yongjoo Park, Michael Cafarella, and Barzan Mozafari. In PVLDB Vol 9(3) 2015\n%     pyongjoo@umich.edu\n%     http://www-personal.umich.edu/~pyongjoo/\n%\n% Main training module of Neighbor-Sensitive Hashing. For simplicity of running\n% demo, we are using a few heuristics. For better performance, one may want to\n% tune those parameters.\n%\n% param 1: number of pivots (m), currently this is set to 4 * codesize\n% param 2: neighbor parameter (epsilon), currently this is set to 1.9 times the\n%          average distance between a pivot and its another closest pivot.\n%\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\nfunction [model,pivots,W,epsilon] = trainNSH(X, codesize)\n% @param X          a data matrix (row is instance and column is feature)\n% @param codesize   is the hascode length of generated binary hashcodes.\n% @ret   model      is a model that contains a hash function that transforms arbitrary data\n%                   matrix into a hashcode matrix.\n\n    b = codesize;\n    m = 4 * codesize;           % number of pivots (chosen heuristically)\n    [N d] = size(X);\n\n    % Obtain pivots by k-means\n    warning off;\n    kmeans_sample_size = min(N, 10000); %randomly selct 50000 samples to do kmeans \n    [idx pivots] = kmeans(X(randperm(N, kmeans_sample_size),:), m, 'MaxIter', 10, 'Display', 'off');\n    warning on;\n\n\n    % Compute neighbor parameter\n    anchor_dist = distMat(pivots);\n    first_dist = zeros(size(anchor_dist,1),1);\n\n    for i = 1:size(anchor_dist,1)\n        [B,Idx] = sort(anchor_dist(i,:));\n        min_idx = Idx(1:2);\n        %min_idx = mink(anchor_dist(i,:), 2);\n        first_dist(i) = anchor_dist(i,min_idx(2));   % the distance from the closest pivot\n    end\n    epsilon = mean(first_dist) * 1.9;       % 1.9 is chosen heuristically (other numbers also works too though)\n\n\n    % Transform all data using multiple pivots\n    KK = exp(-distMat(X, pivots).^2 / epsilon^2);\n    KK = [KK ones(size(KK,1), 1)]; % the projection respect to each pivot , last column is 1\n\n\n    % This peforms orthogonal projections to make different bits learn different\n    % hash functions\n    kd = size(KK, 2);       % dimension in transformed space m+1\n\n    W = randn(kd, b);       % hyperplane in transformed space %b random hyperplane\n    for i = 1:b\n        W(:,i) = W(:,i) / norm(W(:,i));\n    end\n\n    V = zeros(kd, b+1);\n    v = KK' * ones(N,1);  %(m+1)*1\n    v = v / norm(v);\n    V(:,1) = v;\n    for i = 1:b\n        w = W(:,i);     % [kd 1]\n        w = w - V(:,1:i) * V(:,1:i)' * w;   % [kd b+1] * [b+1 kd] * [kd 1]\n        W(:,i) = w / norm(w);\n\n        a = KK * w;\n        a(a>0) = 1;\n        a(a<=0) = -1;\n\n        if i ~= b\n            v = KK' * a;    % [kd N] * [N 1] = [kd 1] -- O(kd * N)\n            v = v - V * V' * v; % [kd b+1] * [b+1 kd] * [kd 1]\n            V(:,i+1) = v / norm(v);\n        end\n    end\n\n    model.hash = generateHashFunc(pivots, W, epsilon);\n    \nend\n\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\nfunction hash = generateHashFunc(pivots, W, epsilon)\n\n    function QB = hash_func(Q)\n        QK = exp(-distMat(Q, pivots).^2 / epsilon^2);\n        QK = [QK ones(size(QK,1), 1)];\n        HH = QK * W;\n        HH(HH>0) = 1;\n        HH(HH<=0) = 0;\n        QB = compactbit(HH);\n    end\n\n    hash = @hash_func;\nend\n"
  },
  {
    "path": "algorithms/NSH/script/searcher.sh",
    "content": "data_path=\"../../../data\"\nresult_path=\"../results\"\nmkdir ${result_path}\n\n\nfor data in \"audio\"\ndo\n\ndataset_path=${data_path}/${data}_base.fvecs\nquery_path=${data_path}/${data}_query.fvecs\ngnd_path=${data_path}/${data}_groundtruth.ivecs\n\nparams_path=../index/${data}/${data}_params.NSH\ndataset_binary_path=../index/${data}/${data}_B1.NSH\nk=20\nradis=-2\n\nfor c in 100 500 1000\ndo\n\n../src/NSH -s ${dataset_path} -q ${query_path} -g ${gnd_path} -k $k -r ${radis} -c $c -b \"${dataset_binary_path}\" -p \"${params_path}\" >> \"${result_path}/${data}.txt\"\n\ndone\ndone\n"
  },
  {
    "path": "algorithms/NSH/src/Makefile",
    "content": "##############\n# Make the SRS project\n##############\n\nPROD\t:= DEBUG\nOPT     := -O3 -march=native #-ffast-math \nVERSION := \\\"0.1_${PROD}\\\"\nTARGETS := NSH\nDEFINES := #-DREAL_PROF\nSRCS    := NSH.cpp\n\nCCFLAGS = ${OPT} -Wno-deprecated -ggdb -D${PROD} ${DEFINES} -I./ -DVERSION=${VERSION}\nLDFLAGS = ${OPT} -ggdb  \nLIBS    = \nCC\t= g++ \nOBJS    := ${SRCS:.cpp=.o}\n\n\n.PHONY: all clean distclean \nall:: ${TARGETS} \n\nsrs: NSH.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\n${OBJS}: %.o: %.cpp\n\t${CC} ${CCFLAGS} -o $@ -c $< \n\nclean:: \n\t-rm -f *~ *.o ${TARGETS}\n\ndistclean:: clean\n"
  },
  {
    "path": "algorithms/NSH/src/NSH.cpp",
    "content": "#include \"data_util.h\"\n#include \"NSH.h\"\n#include \"hammingDist.h\"\n#include \"eval.h\"\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <time.h>\n#include <sys/time.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvector<vector <float> > points;\nvector<vector <float > > query;\nvector<vector <int> > gnds;\n\nint n;\nint nq;\nint dim;\nint k;\nint radis;\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"dataset_filepath\",            required_argument, 0, 's'},\n\t    {\"query_filepath\" ,             required_argument, 0, 'q'},\n\t    {\"groundtruth_filepath\",        required_argument, 0, 'g'},\n\t\t{\"k\",                           required_argument, 0, 'k'},\n\t\t{\"r\",                           required_argument, 0, 'r'},\n\t\t{\"c\",                           required_argument, 0, 'c'},\n\t    {\"dataset_binary_path\",         required_argument, 0, 'b'},\n\t    {\"params_path\",                 required_argument, 0, 'p'},\n\t  };\n\t  int ind;\n\t  int iarg = 0;\n\t  opterr = 1;\n\t  int checks;\n\t  char groundtruth_filepath[100] = \"\";\n\t  char query_filepath[100] = \"\";\n\t  char dataset_filepath[100] = \"\";\n\t  char dataset_binary_path[100] = \"\";\n\t  char params_path[100] = \"\";\n\t  //char checks_path[20] =\"\";\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"s:q:g:k:r:c:b:p:h\",\n\t                       longopts, &ind);\n\n\t    switch (iarg) {\n\t      case 's':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'q':\n\t        if (optarg) {\n\t        \tstrcpy(query_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'g':\n\t        if (optarg) {\n\t        \tstrcpy(groundtruth_filepath, optarg);\n\t        }\n\t        break;\n\t\t  case 'k':\n\t    \t  if (optarg) {\n\t    \t  k = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'r':\n\t    \t  if (optarg) {\n\t    \t  radis = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'c':\n\t    \t  if (optarg) {\n\t\t\t  checks = atoi(optarg);\n\t\t\t  //strcpy(checks_path, optarg);\n\t    \t  }\n\t    \t  break;\n\t      case 'b':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_binary_path, optarg);\n\t        }\n\t        break;\n\t      case 'p':\n\t        if (optarg) {\n\t        \tstrcpy(params_path, optarg);\n\t        }\n\t        break;\n\t        }\n\t      }\n\n\t  ///*\n\t  ReadPoints(dataset_filepath, &points, &n, &dim);\n\t  ReadPoints(query_filepath, &query,&nq, &dim);\n\n\t  int nn;\n\t  ReadGroundtruth(groundtruth_filepath, &gnds, &nq, &nn);\n\n\t  //ReadChecks(checks_path,&maxChecks);\n\t  //read SH params\n\t  NSH NSH_;\n\t  NSH_.ReadNSHParams(params_path,dim);\n\t  int nbits = NSH_.nbits;\n\n\n\t  vector<vector<unsigned> > B1;\n\t  ReadB1(dataset_binary_path,&B1,n);\n\n\n\t  HierarchicalClusteringIndex HCI_ ;\n\t  HCI_.set_params(B1,32,4,100);\n\t  if(radis!=-1)\n\t  \tHCI_.buildIndex();\n\n      timeval start;\n\t  gettimeofday(&start, NULL);\n\t  vector<vector<unsigned> > B2;\n\t  NSH_.compressNSH(&query,&B2);\n\t  timeval end;\n\t  gettimeofday(&end, NULL);\n\t  double transform_time = diff_timeval(end, start);\n\n\t  gettimeofday(&start, NULL);\n\t  vector<vector<int> > indices;\n\t  vector<vector<int> > dists;\n\n\t\t  //compute the distance between B1 and B2\n\t  if(radis==-1)\n\t\t  hammingDist(&B2,&B1,&indices,checks);\n\t  else if(radis==-2)\n\t\t  HCI_.knnSearch(B2,indices,dists,checks,checks);\n\t  else\n\t\t  hammingDist_ByRange(&B2,&B1,&indices,radis);\n\n\t // get results after re-ranking\n\t  vector<vector<int> > results;\n\t  results = Search(&points, &query, &indices, k);\n\n\t  gettimeofday(&end, NULL);\n\t  double search_time = diff_timeval(end, start);\n\t  float recall = compute_recall(&gnds, &results);\n\t  cout<<recall<<\" \"<< search_time/nq <<\" N_\"<<checks<< \" #bit_\"<< nbits<<\" #radis_\"<<radis<<\" \"<< endl;\n}\n\n\n\n\n"
  },
  {
    "path": "algorithms/NSH/src/NSH.h",
    "content": "/*\n * SH.h\n *\n *  Created on: 13/10/2015\n *      Author: liwen\n */\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n#ifndef NSH_H_\n#define NSH_H_\n\nclass NSH\n{\n\tpublic:\n\tint nbits;\n\tint m;\n\tfloat eps;\n\tvector<vector<float> > pivots;\n\tvector<vector<float> > W;\n\n\tvoid ReadNSHParams(string filename, int dim)\n\t{\n\t\tFILE* fp=fopen(filename.c_str(),\"r\");\n\t\t//read nbits\n\t\tfscanf(fp,\"%d\",&nbits);\n\t\tfscanf(fp,\"%f\",&eps);\n\n\t\t//cout<<nbits<<\" \"<<eps<<endl;\n\t\tm=4*nbits;\n\t\t//read pivots\n\t\tfor (int i=0;i<m;i++)\n\t\t{\n\t\t\tvector<float> tmp;\n\t\t\ttmp.resize(dim);\n\t\t\tfor(int d = 0; d < dim; ++d) \n\t\t\t{\n\t\t   \t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t}\n\t\t\tfscanf(fp,\"\\n\");\n\t\t\tpivots.push_back(tmp);\n\t\t}\n\t\t//read W\n\t\tfor (int i=0; i<m+1; i++)\n\t\t{\n\t\t\tvector<float> tmp;\n\t\t\ttmp.resize(nbits);\n\t\t\tfor(int d = 0; d < nbits; ++d)\n\t\t\t{\n\t\t\t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t}\n\t\t\tfscanf(fp,\"\\n\");\n\t\t\tW.push_back(tmp);\n\t\t}\n\t}\n\n\tvoid compressNSH(vector<vector<float> >* X, vector<vector<float> >* U)\n\t{\n\t}\n    \n\t\n\t/*\n\tvoid compactBits(vector<vector<float> > U,vector<vector<unsigned> >* B)\n\t{\n\t\t//U nbits*n\n\t\tint nbits = U.size();\n\t\tint n = U.at(0).size();\n\t\tfor(int i=0;i<n;i++)//n\n\t\t{\n\t\t\tvector<unsigned> B_;\n\t\t\tunsigned tmp=0;\n\t\t\tfor(int j=0;j<=nbits;j++)\n\t\t\t{\n\t\t\t\tif(j==nbits)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(j%8==0 && j!=0)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\ttmp=0;\n\t\t\t\t}\n\t\t\t\tif(U.at(j)[i]>0)\n\t\t\t\t{\n\t\t\t\t\tunsigned pos=1<<(j%8);\n\t\t\t\t\ttmp |= pos;\n\t\t\t\t}\n\t\t\t}\n\t\t\tB->push_back(B_);\n\t\t}\n\t}*/\n\n\tvoid compactBits(vector<vector<float> > U,vector<vector<unsigned> >* B)\n\t{\n\t\t\t//U n*nbits\n\t\tint n = U.size();\n\t\tint nbits = U.at(0).size();\n\t\tfor(int i=0;i<n;i++)//n\n\t\t{\n\t\t\tvector<unsigned> B_;\n\t\t\tunsigned tmp=0;\n\t\t\tfor(int j=0;j<=nbits;j++)\n\t\t\t{\n\t\t\t\tif(j==nbits)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(j%8==0 && j!=0)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\ttmp=0;\n\t\t\t\t}\n\t\t\t\tif(U.at(i)[j]>0)\n\t\t\t\t{\n\t\t\t\t\tunsigned pos=1<<(j%8);\n\t\t\t\t\ttmp |= pos;\n\t\t\t\t}\n\t\t\t}\n\t\t\tB->push_back(B_);\n\t\t}\n\t}\n\tfloat get_distance(vector<float> point, vector<float> query)\n\t{\n\t\tint dim = query.size();\n\t\tfloat dist=0.0;\n\t\tfor(int i=0; i<dim; i++)\n\t\t{\n\t\t\tdist += pow(point[i]-query[i],2);\n\t\t}\n\t\treturn dist;\n\t}\n\n\tvoid compressNSH(vector<vector<float> >* X, vector<vector<unsigned> >* B)\n\t{\n\t\t//X nq*dim\n\t\tint n = X->size();\n\t\tint dim = X->at(0).size();\n\n\t\tvector<vector<float> > QK;\n\t\tQK.resize(n);\n\n\t\tfor(int i=0; i<n; i++)\n\t\t{\n\t\t\tQK.at(i).resize(m+1);\n\t\t\tfor(int j=0;j< m; j++)\n\t\t\t{\n\t\t\t\tfloat dist = get_distance(X->at(i),pivots.at(j));\n\t\t\t\t//cout<<\"dist:\"<<i<<\" \"<<j<<\":\"<<dist<<endl;\n\t\t\t\tQK[i][j] = exp((-1)*dist/pow(eps,2));\n\t\t\t}\n\t\t\tQK[i][m]=1;\n\t\t}\n\t\tvector<vector<float> > HH;\n\t\tHH.resize(n);\n\t\tfor(int i=0; i<n; i++)\n\t\t{\n\t\t\tHH.at(i).resize(nbits);\n\t\t\tfor(int j = 0 ; j < nbits; j++)\n\t\t\t{\n\t\t\t\tfloat tmp = 0.0;\n\t\t\t\tfor(int t=0;t<m+1;t++)\n\t\t\t\t{\n\t\t\t\t\ttmp += QK[i][t] * W[t][j];\n\t\t\t\t}\n\t\t\t\tHH[i][j] = tmp;\n\t\t\t}\n\t\t}\n\t\tcompactBits(HH,B);\n\t}\n\n\tvoid compressNSH(vector<vector<float> >* X, vector<vector<int> >* U)\n\t{\n\t}\n};\n\n\n\n#endif\n"
  },
  {
    "path": "algorithms/NSH/src/center_chooser.h",
    "content": "#include \"random.h\"\n//#include \"dist.h\"\n#include \"char_bit_cnt.h\"\n\nclass CenterChooser\n{\n\tvector<vector<unsigned>* > dataset_;\npublic:\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n\t\tsize_t size_ = dataset.size();\n\n\t\tdataset_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t\tdataset_.at(i) = &dataset.at(i);\n\n    }\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = dataset_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = dataset_.at(p1)->at(t) ^ dataset_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t} //*/\n\n\tvoid chooseCenters(int k, int* indices, int indices_length, int* centers, int& centers_length)\n\t{\n\t\tUniqueRandom r(indices_length);\n\n        int index;\n        for (index=0; index<k; ++index) {\n            bool duplicate = true;\n            int rnd;\n            while (duplicate) {\n                duplicate = false;\n                rnd = r.next();\n                if (rnd<0) {\n                    centers_length = index;\n                    return;\n                }\n\n                centers[index] = indices[rnd];\n\n                for (int j=0; j<index; ++j) {\n                    int sq = get_distance(centers[index], centers[j]);//(dataset_.at(centers[index]), dataset_.at(centers[j]));\n                    if (sq <1e-16 ) {//<1e-16\n                        duplicate = true;\n                    }\n                }\n            }\n        }\n        centers_length = index;\n\t}\n};\n"
  },
  {
    "path": "algorithms/NSH/src/char_bit_cnt.h",
    "content": "unsigned char_bit_cnt [] = {\n0x0,\n0x1,\n0x1,\n0x2,\n0x1,\n0x2,\n0x2,\n0x3,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x5,\n0x6,\n0x6,\n0x7,\n0x6,\n0x7,\n0x7,\n0x8,\n0};\n"
  },
  {
    "path": "algorithms/NSH/src/data_util.h",
    "content": "#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvoid transpose(vector<vector<float> > X,vector<vector<float> >* Y)\n{\n\n\tint dim=X.size();\n\tint n=X[0].size();\n\tfor(int i=0;i<n;i++)\n\t{\n\t\tvector<float> y_;\n\t\tfor(int j=0;j<dim;j++)\n\t\t{\n\t\t\ty_.push_back(X[j][i]);\n\t\t}\n\t\tY->push_back(y_);\n\t}\n}\n\nvoid ReadPoints(char* filepath,vector<vector<float> >* points, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tpoints->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&dim, sizeof(int),1,dfp);\n\t\tpoints->at(i).resize(dim);\n    \tfor(int j = 0; j < dim; ++j) {\n    \t\tfloat buffer;\n\t\t\tfread(&(buffer), sizeof(float),1,dfp);\n    \t\tpoints->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\nvoid ReadGroundtruth(char* filepath, vector<vector<int> >* gnds, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint k;\n\tfread(&k,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(int)*k));\n\t*d = k;\n\t*len = n;\n\tgnds->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&k, sizeof(int),1,dfp);\n\t\tgnds->at(i).resize(k);\n    \tfor(int j = 0; j < k; ++j) {\n    \t\tint buffer;\n\t\t\tfread(&(buffer), sizeof(int),1,dfp);\n    \t\tgnds->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\nvoid ReadB1(const string& filename, vector<vector<unsigned> >* B1,int n) {//\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  B1->resize(n);\n  int cbits;\n  for(int pid = 0; pid < n; ++pid) {\n    input.read((char*)&cbits, sizeof(cbits));\n    if(cbits <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n    B1->at(pid).resize(cbits);\n    for(int d = 0; d < cbits; ++d) {\n      int buffer;\n      input.read((char*)&(buffer), sizeof(int));\n      B1->at(pid)[d] = (unsigned)buffer;//(unsigned)\n    }\n  }\n}\n\n\nvoid ReadChecks(const string& filename, vector<int>* checks) {\n  FILE *fp = fopen(filename.c_str(), \"r\");\n  int n;\n  fscanf(fp, \"%d \", &n);\n  checks->resize(n);\n  int tmp;\n  for (int i = 0; i < n; ++i) {\n    fscanf(fp, \"%d \", &tmp);\n    checks->at(i)=tmp;\n  }\n}\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/NSH/src/dynamic_bitset.h",
    "content": "#include <limits.h>\n\nclass DynamicBitset\n{\npublic:\n    /** @param only constructor we use in our code\n     * @param the size of the bitset (in bits)\n     */\n    DynamicBitset(size_t size)\n    {\n        resize(size);\n        reset();\n    }\n\n    /** Sets all the bits to 0\n     */\n    void clear()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    void reset()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    \n    void resize(size_t size)\n    {\n        size_ = size;\n        bitset_.resize(size / cell_bit_size_ + 1);\n    }\n    size_t size() const\n    {\n        return size_;\n    }\n\n\tvoid set(size_t index)\n    {\n        bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);\n    }\n\n    /** @param check if a bit is set\n     * @param index the index of the bit to check\n     * @return true if the bit is set\n     */\n    bool test(size_t index) const\n    {\n        return (bitset_[index / cell_bit_size_] & (size_t(1) << (index % cell_bit_size_))) != 0;\n    }\n\nprivate:\n    std::vector<size_t> bitset_;\n    size_t size_;\n    static const unsigned int cell_bit_size_ = CHAR_BIT * sizeof(size_t);\n};\n"
  },
  {
    "path": "algorithms/NSH/src/eval.h",
    "content": "/*\n * eval.h\n *\n *  Created on: 14/10/2015\n *      Author: liwen\n */\n\n#ifndef EVAL_H_\n#define EVAL_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j] == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k])\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k])\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tif(min_distance==0)\n\t\t\t\tcontinue;\n\t\t\tfloat test_distance = get_distance(points->at(results->at(i)[j]),query->at(i));\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\tif(d<0)\n\t\t\t\tcout<<i<<\" \"<<j<<\" \"<<gnds->at(i)[j]<<\" \"<<results->at(i)[j]<<\" \"<<min_distance<<\" \"<<test_distance<<endl;\n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tint nq = results->size();\n\tint nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i)\n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<int> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results, float* recall)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tcout<<\"nq:\"<<nq<<\" \"<<nn<<endl;\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j].id == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k].id)\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k].id)\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tfloat test_distance=results->at(i)[j].dist;\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n           \n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tint nq = results->size();\n\tint nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i)\n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\n#endif /* EVAL_H_ */\n"
  },
  {
    "path": "algorithms/NSH/src/hammingDist.h",
    "content": "/*\n * hammingDist.h\n *\n *  Created on: 14/10/2015\n *      Author: liwen\n */\n\n#ifndef HAMMINGDIST_H_\n#define HAMMINGDIST_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n#include \"hierarchical_clustering_index.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nstruct B_Neighbor{\n\tint id;\n\tint dist;\n\tB_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n\tint get_id(){return id;}\n};\n\nstruct E_Neighbor{\n\tint id;\n\tfloat dist;\n\tE_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n};\n\nfloat get_distance(vector<float> point, vector<float> query)\n{\n\tint dim = query.size();\n\tfloat dist=0.0;\n\tfor(int i=0; i<dim; i++)\n\t{\n\t\tdist += pow(point[i]-query[i],2);\n\t}\n\treturn dist;\n}\n\nint get_distance(const vector<unsigned>* p1, const vector<unsigned>* p2)\n{\n\tint dist=0;\n\tint cbits = p1->size();\n\tfor(int t=0; t<cbits; t++)\n\t{\n\t\tunsigned y = p1->at(t) ^ p2->at(t);\n\t\tdist += char_bit_cnt[y];\n\t}\n\treturn dist;\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\t//int cbits = B2->at(0).size();\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> d_;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\ttmp = get_distance(&B1->at(j),&B2->at(i));\n\t\t\t//for(int t=0; t<cbits; t++)\n\t\t\t//{\n\t\t\t\t//unsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\t//tmp += char_bit_cnt[y];\n\t\t\t//}\n\t\t\td_.push_back(tmp);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid UpdatePriorityList_Binary (B_Neighbor *BList, B_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist,int nn)\n{\n\tint len = nn;\n\tint n = B1->size();\n\tint nq = B2->size();\n\t//int cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<B_Neighbor> BNN(len);\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\ttmp = get_distance(&B1->at(j),&B2->at(i));\n\t\t\t//for(int t=0; t<cbits; t++)\n\t\t\t//{\n\t\t\t\t//unsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\t//tmp += char_bit_cnt[y];\n\t\t\t//}\n\n\t\t\tB_Neighbor b_;\n\t\t\tb_.id=j;\n\t\t\tb_.dist=tmp;\n\n\t\t\tUpdatePriorityList_Binary ( &BNN[0], b_, len);\n\t\t}\n\t\tvector<int> d_;\n\t\tfor(int j=0;j<len;j++)\n\t\t{\n\t\t\td_.push_back(BNN.at(j).id);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid hammingDist_ByRange(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* IDs,int radis)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\t//int cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<int> BNN;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\ttmp = get_distance(&B1->at(j),&B2->at(i));\n\t\t\t//for(int t=0; t<cbits; t++)\n\t\t\t//{\n\t\t\t\t//unsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\t//tmp += char_bit_cnt[y];\n\t\t\t//}\n\t\t\tif(tmp<=radis)\n\t\t\t\tBNN.push_back(j);\n\t\t}\n\t\tIDs->push_back(BNN);\n\t}\n}\n\nvoid UpdatePriorityList_Euclidean (E_Neighbor *BList, E_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvector<vector<int> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<int> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> result;\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs->at(i).size();\n\t\tvector<int> ids_ = IDs->at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\tfor(int j=0;j<K;j++)\n\t\t{\n\t\t\tresult.push_back(ENN[j].id);\n\t\t}\n\t\tresults.push_back(result);\n\t}\n\treturn results;\n}\n\n\n/*\nvector<vector<E_Neighbor> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> > IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<E_Neighbor> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs.at(i).size();\n\t\tvector<int> ids_ = IDs.at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\t//for(int j=0;j<K;j++)\n\t\t//{\n\t\t\t//cout<<ENN[j].id<<\" \"<<ENN[j].dist<<endl;\n\t\t//}\n\t\tresults.push_back(ENN);\n\t}\n\treturn results;\n}\n*/\n\n#endif /* HAMMINGDIST_H_ */\n"
  },
  {
    "path": "algorithms/NSH/src/heap.h",
    "content": "#include <algorithm>\n#include <vector>\n\n\ntemplate <typename T>\nclass Heap\n{\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<T> heap;\n    int length;\n\n    /**\n     * Number of element in the heap\n     */\n    int count;\n\n\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    Heap(int size)\n    {\n        length = size;\n        heap.reserve(length);\n        count = 0;\n    }\n\n    /**\n     *\n     * Returns: heap size\n     */\n    int size()\n    {\n        return count;\n    }\n\n    /**\n     * Tests if the heap is empty\n     *\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size()==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        heap.clear();\n        count = 0;\n    }\n\n    struct CompareT : public std::binary_function<T,T,bool>\n    {\n        bool operator()(const T& t_1, const T& t_2) const\n        {\n            return t_2 < t_1;\n        }\n    };\n\n    /**\n     * Insert a new element in the heap.\n     *\n     * We select the next empty leaf node, and then keep moving any larger\n     * parents down until the right location is found to store this element.\n     *\n     * Params:\n     *     value = the new element to be inserted in the heap\n     */\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (count == length) {\n            return;\n        }\n\n        heap.push_back(value);\n        static CompareT compareT;\n        std::push_heap(heap.begin(), heap.end(), compareT);\n        ++count;\n    }\n\n\n\n    /**\n     * Returns the node of minimum value from the heap (top of the heap).\n     *\n     * Params:\n     *     value = out parameter used to return the min element\n     * Returns: false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (count == 0) {\n            return false;\n        }\n\n        value = heap[0];\n        static CompareT compareT;\n        std::pop_heap(heap.begin(), heap.end(), compareT);\n        heap.pop_back();\n        --count;\n\n        return true;  /* Return old last node. */\n    }\n};\n\n\ntemplate <typename T>\nclass IntervalHeap\n{\n\tstruct Interval\n\t{\n\t\tT left;\n\t\tT right;\n\t};\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<Interval> heap;\n    size_t capacity_;\n    size_t size_;\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    IntervalHeap(int capacity) : capacity_(capacity), size_(0)\n    {\n        heap.resize(capacity/2 + capacity%2 + 1); // 1-based indexing\n    }\n\n    /**\n     * @return Heap size\n     */\n    size_t size()\n    {\n        return size_;\n    }\n\n    /**\n     * Tests if the heap is empty\n     * @return true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size_==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        size_ = 0;\n    }\n\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (size_ == capacity_) {\n            return;\n        }\n\n        // insert into the root\n        if (size_<2) {\n        \tif (size_==0) {\n        \t\theap[1].left = value;\n        \t\theap[1].right = value;\n        \t}\n        \telse {\n        \t\tif (value<heap[1].left) {\n        \t\t\theap[1].left = value;\n        \t\t}\n        \t\telse {\n        \t\t\theap[1].right = value;\n        \t\t}\n        \t}\n        \t++size_;\n        \treturn;\n        }\n\n        size_t last_pos = size_/2 + size_%2;\n        bool min_heap;\n\n        if (size_%2) { // odd number of elements\n        \tmin_heap = (value<heap[last_pos].left)? true : false;\n        }\n        else {\n        \t++last_pos;\n        \tmin_heap = (value<heap[last_pos/2].left)? true : false;\n        }\n\n        if (min_heap) {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && value < heap[par].left) {\n        \t\theap[pos].left = heap[par].left;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].left = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].right = heap[last_pos].left;\n        \t}\n        }\n        else {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && heap[par].right < value) {\n        \t\theap[pos].right = heap[par].right;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].right = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].left = heap[last_pos].right;\n        \t}\n        }\n    }\n\n\n    /**\n     * Returns the node of minimum value from the heap\n     * @param value out parameter used to return the min element\n     * @return false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].left;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].left;\n\n        if (size_ % 2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].left = heap[last_pos].right;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child+1].left < heap[child].left) ++child; // pick the child with min\n\n        \tif (!(heap[child].left<elem)) break;\n\n        \theap[crt].left = heap[child].left;\n        \tif (heap[child].right<elem) {\n        \t\tstd::swap(elem, heap[child].right);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].left = elem;\n        return true;\n    }\n\n\n    /**\n     * Returns the element of maximum value from the heap\n     * @param value\n     * @return false if heap empty\n     */\n    bool popMax(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].right;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].right;\n\n        if (size_%2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].right = heap[last_pos].left;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child].right < heap[child+1].right) ++child; // pick the child with max\n\n        \tif (!(elem < heap[child].right)) break;\n\n        \theap[crt].right = heap[child].right;\n        \tif (elem<heap[child].left) {\n        \t\tstd::swap(elem, heap[child].left);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].right = elem;\n        return true;\n    }\n\n\n    bool getMin(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].left;\n    \treturn true;\n    }\n\n\n    bool getMax(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].right;\n    \treturn true;\n    }\n};\n\n\ntemplate <typename T>\nclass BoundedHeap\n{\n\tIntervalHeap<T> interval_heap_;\n\tsize_t capacity_;\npublic:\n\tBoundedHeap(size_t capacity) : interval_heap_(capacity), capacity_(capacity)\n\t{\n\n\t}\n\n    /**\n     * Returns: heap size\n     */\n    int size()\n    {\n        return interval_heap_.size();\n    }\n\n    /**\n     * Tests if the heap is empty\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return interval_heap_.empty();\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n    \tinterval_heap_.clear();\n    }\n\n    void insert(const T& value)\n    {\n    \tif (interval_heap_.size()==capacity_) {\n    \t\tT max;\n    \t\tinterval_heap_.getMax(max);\n    \t\tif (max<value) return;\n   \t\t\tinterval_heap_.popMax(max);\n    \t}\n    \tinterval_heap_.insert(value);\n    }\n\n    bool popMin(T& value)\n    {\n    \treturn interval_heap_.popMin(value);\n    }\n};\n\n"
  },
  {
    "path": "algorithms/NSH/src/hierarchical_clustering_index.h",
    "content": "#include <algorithm>\n#include <string>\n#include <cmath>\n#include <vector>\n#include <iostream>\n#include \"center_chooser.h\"\n//#include \"char_bit_cnt.h\"\n#include \"dynamic_bitset.h\"\n#include \"heap.h\"\n#include \"result_set.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n//typedef unsigned ElementType;\n//typedef int DistanceType;\n\nclass HierarchicalClusteringIndex\n{\n\tprivate:\n\n\tint branching_;\n    int trees_;\n    int leaf_max_size_;\n\n\tsize_t size_;\n \tsize_t veclen_;\n\tsize_t size_at_build_;\n\tsize_t last_id_;\n\n\tvector<size_t> ids_;\n\tvector<vector<unsigned>* > points_;\n\tCenterChooser Centers_;\n\t\n\t//DynamicBitset removed_points_;\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n    \tsize_ = dataset.size();\n\n\t\tpoints_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t{\n\t\t\tpoints_.at(i) = &dataset.at(i);\n\t\t}\n\t\t//cout<<\"points00: \"<<points_.at(0)->at(0)<<endl;\n    }\n\tpublic:\n\n\tvoid set_params(vector<vector<unsigned> >& inputData, int b=32,int t=4,int leaf=100)\n    {\n        branching_ = b;\n        trees_ = t;\n        leaf_max_size_ = leaf;\n\n\t\tsetDataset(inputData);\n\n        Centers_.setDataset(inputData);\n\t\tDynamicBitset checked(size_);\n    }\n\n\n    /**\n     * Builds the index\n     */\n    void buildIndex()\n    {\n        if (branching_<2) {\n            cerr<<\"Branching factor must be at least 2\"<<endl;\n\t\t\treturn;\n        }\n        tree_roots_.resize(trees_);\n        vector<int> indices(size_);\n        for (int i=0; i<trees_; ++i) {\n            for (size_t j=0; j<size_; ++j) {\n                indices[j] = j;\n            }\n            tree_roots_[i] = new Node();\n            //cout<< points_.at(0)->at(0)<<\" \"<<points_.at(1)->at(0)<<\" \"<< get_distance(0,1)<<endl;\n            computeClustering(tree_roots_[i], &indices[0], size_);\n        }\n    }\n\n\tstruct PointInfo\n    {\n    \t\n    \tsize_t index;   /** Point index */\n    \t\n    \tvector<unsigned>* point;  /** Point data */\n    };\n\n\n\n\tstruct Node\n    {\n        \n    \tvector<unsigned>* pivot;  /** The cluster center  */\n\n    \tsize_t pivot_index;\n        \n        vector<Node*> childs;        /**   Child nodes (only for non-terminal nodes)  */\n        \n        vector<PointInfo> points;    /**    Node points (only for terminal nodes)   */\n\n        ~Node()\n        {\n        \tfor(size_t i=0; i<childs.size(); i++){\n        \t\tchilds[i]->~Node();\n        \t}\n        };\n    };\n\n\ttypedef Node* NodePtr;\n\tstruct BranchStruct\n\t{\n    \tNode* node;           /* Tree node at which search resumes */\n    \tint mindist;     /* Minimum distance to query for all nodes below. */\n\n    \tBranchStruct() {}\n    \tBranchStruct(Node* aNode, int dist) : node(aNode), mindist(dist)\n    \t{//cout<<\"branch node:\"<<aNode->pivot_index <<\" \"<<node->pivot_index<<endl;\n    \t}\n\n    \tbool operator<(const BranchStruct& rhs) const\n    \t{\n        \treturn mindist<rhs.mindist;\n    \t}\n\t};\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = points_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = points_.at(p1)->at(t) ^ points_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n\n\t\n\tint get_distance(const vector<unsigned>* p1, const vector<unsigned>* p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = p1->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = p1->at(t) ^ p2->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n//*/\n\n\tvoid computeLabels(int* indices, int indices_length,  int* centers, int centers_length, int* labels)\n    {\n        for (int i=0; i<indices_length; ++i) {\n            int dist = get_distance(indices[i],centers[0]);\n            labels[i] = 0;\n            for (int j=1; j<centers_length; ++j) {\n                int new_dist = get_distance(indices[i],centers[j]); //(points_.at(indices[i]),points_.at(centers[j]));\n                if (dist>new_dist) {\n                    labels[i] = j;\n                    dist = new_dist;\n                }\n            }\n        }\n    }\n\n\tvoid computeClustering(Node* node, int* indices, int indices_length)\n    {\n\t\t//cout<<\"begin:\"<<indices_length<<endl;\n        if (indices_length < leaf_max_size_) { // leaf node\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\"indices:\"<<indices_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        std::vector<int> centers(branching_);\n        std::vector<int> labels(indices_length);\n\n        int centers_length;\n\t\tCenters_.chooseCenters(branching_, indices, indices_length, &centers[0], centers_length);\n\t\t//cout<<\"choose centers_length :  \"<<centers_length<<endl;\n\n        if (centers_length<branching_) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\" centers: \"<<centers_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        //  assign points to clusters\n        computeLabels(indices, indices_length, &centers[0], centers_length, &labels[0]);\n\n        node->childs.resize(branching_);\n        int start = 0;\n        int end = start;\n        for (int i=0; i<branching_; ++i) {\n            for (int j=0; j<indices_length; ++j) {\n                if (labels[j]==i) {\n                    std::swap(indices[j],indices[end]);\n                    std::swap(labels[j],labels[end]);\n                    end++;\n                }\n            }\n\n            node->childs[i] = new Node();\n            node->childs[i]->pivot_index = centers[i];\n            node->childs[i]->pivot = points_.at(centers[i]);\n            node->childs[i]->points.clear();\n            computeClustering(node->childs[i],indices+start, end-start);\n            start=end;\n        }\n    }\n\n\ttypedef BranchStruct BranchSt;\n\n\tvoid findNN(NodePtr node, ResultSet& result, const vector<unsigned>* vec, int& checks,const int maxChecks,\n\t                Heap<BranchSt>* heap,  DynamicBitset& checked)\n\t{\n\t    if (node->childs.empty())\n\t    {\n\t        if (checks>=maxChecks) {\n\t              if (result.full()) return;\n\t        }\n\n\t        for (size_t i=0; i<node->points.size(); ++i)\n\t        {\n\t            PointInfo& pointInfo = node->points[i];\n\t            if (checked.test(pointInfo.index)) continue;\n\t            int dist = get_distance(pointInfo.point, vec);\n\t            result.addPoint(dist, pointInfo.index);\n\t                checked.set(pointInfo.index);\n\t                ++checks;\n\t            }\n\t        }\n\t        else {\n\t            int* domain_distances = new int[branching_];\n\t            int best_index = 0;\n\t            domain_distances[best_index] = get_distance(vec, node->childs[best_index]->pivot);\n\t            for (int i=1; i<branching_; ++i) {\n\t                domain_distances[i] = get_distance(vec, node->childs[i]->pivot);\n\t                if (domain_distances[i]<domain_distances[best_index]) {\n\t                    best_index = i;\n\t                }\n\t            }\n\t            for (int i=0; i<branching_; ++i) {\n\t                if (i!=best_index) {\n\t                    heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n\t                }\n\t            }\n\t            delete[] domain_distances;\n\t            findNN(node->childs[best_index],result,vec, checks, maxChecks, heap, checked);\n\t        }\n\t    }\n\n\n\n\tvoid findNeighborsWithRemoved(ResultSet& result, const vector<unsigned>* vec, const int maxChecks)\n    {\n        //int maxChecks = searchParams.checks;\n\n        // Priority queue storing intermediate branches in the best-bin-first search\n        Heap<BranchSt>* heap = new Heap<BranchSt>(size_);\n\n        DynamicBitset checked(size_);\n        int checks = 0;\n        for (int i=0; i<trees_; ++i) {\n            findNN(tree_roots_[i], result, vec, checks, maxChecks, heap, checked);\n        }\n\n        BranchSt branch;\n        while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n            NodePtr node = branch.node;\n            findNN(node, result, vec, checks, maxChecks, heap, checked);\n        }\n\n        delete heap;\n    }\n\n\n\n\n\tint knnSearch(const vector<vector<unsigned> >& queries, vector< vector<int> >& indices,\tvector< vector<int> >& dists,size_t knn,const int maxChecks)\n    {\n        if (indices.size() < queries.size() ) indices.resize(queries.size());\n\t\tif (dists.size() < queries.size() )   dists.resize(queries.size());\n\n\t\tint count = 0;\n\n\t\tfor (int i = 0; i < (int)queries.size(); i++)\n\t\t{\n\t\t\t\t//resultSet.clear();\n\t\t\t\tResultSet resultSet(knn);\n\t\t\t\tfindNeighborsWithRemoved(resultSet, &queries.at(i), maxChecks);\n\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\tindices[i].resize(n);\n\t\t\t\tdists[i].resize(n);\n\t\t\t\tif (n>0)\n\t\t\t\t{\n\t\t\t\t\tresultSet.copy(&indices.at(i), &dists.at(i), n);\n\t\t\t\t}\n\t\t\t\tcount += n;\n\t\t}\n\t\treturn count;\n    }\n\n\tvector<Node*> tree_roots_;\n};\n\n"
  },
  {
    "path": "algorithms/NSH/src/random.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#include <algorithm>\n#include <cstdlib>\n#include <cstddef>\n#include <vector>\n/**\n * Seeds the random number generator\n *  @param seed Random seed\n */\ninline void seed_random(unsigned int seed)\n{\n    srand(seed);\n}\n\n/*\n * Generates a random double value.\n */\n/**\n * Generates a random double value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random double value\n */\ninline double rand_double(double high = 1.0, double low = 0)\n{\n    return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n/**\n * Generates a random integer value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random integer value\n */\ninline int rand_int(int high = RAND_MAX, int low = 0)\n{\n    return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n\nclass RandomGenerator\n{\npublic:\n    ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }\n};\n\n\n/**\n * Random number generator that returns a distinct number from\n * the [0,n) interval each time.\n */\nclass UniqueRandom\n{\n    std::vector<int> vals_;\n    int size_;\n    int counter_;\n\npublic:\n    /**\n     * Constructor.\n     * @param n Size of the interval from which to generate\n     * @return\n     */\n    UniqueRandom(int n)\n    {\n        init(n);\n    }\n\n    /**\n     * Initializes the number generator.\n     * @param n the size of the interval from which to generate random numbers.\n     */\n    void init(int n)\n    {\n        static RandomGenerator generator;\n        // create and initialize an array of size n\n        vals_.resize(n);\n        size_ = n;\n        for (int i = 0; i < size_; ++i) vals_[i] = i;\n\n        // shuffle the elements in the array\n        std::random_shuffle(vals_.begin(), vals_.end(), generator);\n\n        counter_ = 0;\n    }\n\n    /**\n     * Return a distinct random integer in greater or equal to 0 and less\n     * than 'n' on each call. It should be called maximum 'n' times.\n     * Returns: a random integer\n     */\n    int next()\n    {\n        if (counter_ == size_) {\n            return -1;\n        }\n        else {\n            return vals_[counter_++];\n        }\n    }\n};\n\n\n\n"
  },
  {
    "path": "algorithms/NSH/src/result_set.h",
    "content": "#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\n\nstruct DistanceIndex\n{\n    DistanceIndex(int dist, int index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    int dist_;\n    int index_;\n};\n\n\nclass ResultSet\n{\npublic:\n\t//typedef DistanceIndex<int> DistIndex;\n\n\tResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~ResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<int>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full()\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(int dist, int index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistanceIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(vector<int>* indices, vector<int>* dists, size_t num_elements)\n    {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t//\tstd::sort(dist_index_.begin(), dist_index_.end());\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\tindices->at(i) = dist_index_[i].index_;\n    \t\tdists->at(i) = dist_index_[i].dist_;\n    \t}\n    }\n\n    int worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    int worst_dist_;\n    std::vector<DistanceIndex> dist_index_;\n    bool is_full_;\n};\n"
  },
  {
    "path": "algorithms/OPQ/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"optimized-product-quantization\">Optimized Product Quantization</h1>\n<p>This is a combination of source codes of OPQ and Inverted MultiIndex. In our impementation, we use the inverted multi-indexing technique to perform non-exhaustive search for OPQ. The original code of OPQ is implemented by MATLAB, which is used to transform the data vectors and query vectors for finding the minimal quantization distortion.</p>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li><code>Yael</code> and <code>VLFeat</code> libraries (for the Matlab code)</li>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>gcc 4.7</code> and above)</li>\n<li>Matlab</li>\n<li>CMake (version 2.6 or over)</li>\n<li>The <code>boost</code> library (dev version) installed.</li>\n<li>IntelMKL</li>\n</ul>\n<h2 id=\"compile\">Compile</h2>\n<p>To compile, go to src directory and type</p>\n<pre><code>sh ./build_debug.sh or ./build_release.sh</code></pre>\n<p>Note that the local directory of Boost and IntelMKL should be provided (<code>CMakeLists.txt</code>).</p>\n<h2 id=\"index\">Index</h2>\n<p>To get OPQ indexing, one should first enter the <code>Transform_Data</code> folder and run</p>\n<pre><code>main.m</code></pre>\n<p>file to get the transformed data vectors and query vectors, coarse vocabularies and fine vocabularies. Note that the directory of Yael and vlfeat library should be given. Then go to OPQ/script directory and run</p>\n<pre><code>./indexer.sh </code></pre>\n<p>to obtain the OPQ index.</p>\n<h2 id=\"search\">Search</h2>\n<pre><code>./search.sh</code></pre>\n<p>Note that, in our experiment paper, we tune the <code>c</code> value of OPQ search (i.e., size of neighbors to be visited) to achieve the trade-off between search speed and search quality (recall). The search performance (time and recall) results are kept in the <code>OPQ/results</code> directory.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/OPQ/README.md",
    "content": "# Optimized Product Quantization\n\nThis is a combination of source codes of OPQ and Inverted MultiIndex. In our impementation, we use the inverted multi-indexing technique to perform non-exhaustive search for OPQ. [The original code of OPQ](http://kaiminghe.com/cvpr13/index.html) is implemented by MATLAB, which is used to transform the data vectors and query vectors for finding the minimal quantization distortion. \nFor the search efficiency,  we apply the [inverted multi-indexing technique](http://arbabenko.github.io/MultiIndex/index.html) implemented by C++ to perform non-exhaustive search. \n\n##Prerequisites\n\n- `Yael` and `VLFeat` libraries (for the Matlab code)\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- Matlab\n- CMake (version 2.6 or over)\n- The `boost` library (dev version) installed.\n- IntelMKL\n\n##Compile (OPQ/src)\n\nTo compile, go to src directory and type \n\n```\n./build_release.sh\n```\n\nNote that the local directory of `Boost` and `IntelMKL` should be provided (`CMakeLists.txt`).\n\n##Index (OPQ/Transform_Data and OPQ/script)\n\nTo get OPQ indexing, one should first enter the `Transform_Data` folder and run \n\n```\nmain.m \n```\nin the Matlab to get the transformed data vectors and query vectors, coarse vocabularies and fine vocabularies.\nNote that the directories of `Yael` and `vlfeat` libraries should be given in the main.m file. \n\nThen go to OPQ/script directory and run  \n\n```\n./indexer.sh \n```\n\nto build the OPQ index.\n\n##Search (OPQ/script) \n\n```\n./search.sh\n```\n\nNote that, in our experiment paper, we tune the `c` value of OPQ search (i.e.,\nsize of neighbors to be visited) to achieve the trade-off between search speed\nand search quality (recall). The search performance (time and recall) results\nare kept in the `OPQ/results` directory. \n\n\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/coarse_vocabularies.m",
    "content": "function coarse_vocabularies(yael_path,file_path,Rinit_path, coarse_name,K)\n\n%addpath ('~/Documents/yael/yael_v401/matlab');\nall_data = fvecs_read(file_path);\nall_data = all_data';\n\ndim=size(all_data,2);\nniter=30;\nM=2;\n\ntic;\n%%%OPQ_NP\nR_init = eye(dim);\nall_data = single(all_data);\nvocabSize = 2^K;\n% % add implementation of K-means\n\ncenter_table_init = cell (M,1);\n\n[centers_table_opq_np R_opq_np] = train_opq_np(all_data,M,center_table_init,R_init,niter/2,1,vocabSize);\nvocab1 = centers_table_opq_np{1}';\nvocab2 = centers_table_opq_np{2}';\n\nfvecs_write(Rinit_path,R_opq_np);\nfile = fopen([coarse_name '.dat'], 'w');\ndim = size(vocab1, 1);\nsz = size(vocab1, 2);\nfwrite(file, dim, 'int32');\nfwrite(file, sz, 'int32');\nfwrite(file, vocab1, 'float');\nfwrite(file, vocab2, 'float');\nfclose(file);\nsave([coarse_name '.mat'], 'vocab1', 'vocab2');\ntime=toc;\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/coarse_vocabularies.m~",
    "content": "function coarse_vocabularies(yael_path,file_path,Rinit_path, coarse_name,K,s)\n\n%addpath ('~/Documents/yael/yael_v401/matlab');\nall_data = fvecs_read(file_path);\nall_data = all_data';\n\ndim=size(all_data,2);\nniter=30;\nM=2;\n\ntic;\n%%%OPQ_NP\nR_init = eye(dim);\nall_data = single(all_data);\nvocabSize = 2^K;\n% % add implementation of K-means\n\ncenter_table_init = cell (M,1);\n\n[centers_table_opq_np R_opq_np] = train_opq_np(all_data,M,center_table_init,R_init,niter/2,1,vocabSize);\nvocab1 = centers_table_opq_np{1}';\nvocab2 = centers_table_opq_np{2}';\n\nfvecs_write(Rinit_path,R_opq_np);\nfile = fopen([coarse_name '.dat'], 'w');\ndim = size(vocab1, 1);\nsz = size(vocab1, 2);\nfwrite(file, dim, 'int32');\nfwrite(file, sz, 'int32');\nfwrite(file, vocab1, 'float');\nfwrite(file, vocab2, 'float');\nfclose(file);\nsave([coarse_name '.mat'], 'vocab1', 'vocab2');\ntime=toc;\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/fine_vocabularies.m",
    "content": "function fine_vocabularies(yael_path,vlfeat_path,file_path,Rinit_path,coarse_name, fine_name,K,M)\n%addpath ('~/Documents/yael/yael_v401/matlab');\n%run('~/Downloads/software/vlfeat-0.9.20/toolbox/vl_setup');\n\naddpath([yael_path '/matlab']);\nrun([vlfeat_path '/toolbox/vl_setup']);\nall_data = fvecs_read(file_path);\n\ntic;\nvocabSize = 2^K;\nR_opq_p = fvecs_read(Rinit_path);\nall_data = uint8(R_opq_p' * all_data);\n\n\nload([coarse_name '.mat'], 'vocab1', 'vocab2');\n\nvocab1 = int32(vocab1);\nvocab2 = int32(vocab2);\ni1 = vl_ikmeanspush((all_data(1:end/2,:)), vocab1);\ni2 = vl_ikmeanspush((all_data(end/2+1:end,:)), vocab2);  \nresidual = single(all_data)- single([vocab1(:,i1); vocab2(:,i2)]);\nbytes_per_point = M;\n\nD = size(residual,1) / bytes_per_point;\nresidual_vocab = cell(bytes_per_point,1);\ndist = cell(bytes_per_point,1);\nniter = 30;\nfor m = 1:bytes_per_point\n    chunk = residual(D*m-D+1:D*m,:);\n        % add implementation of K-means\n    residual_vocab{m} = yael_kmeans(chunk,2^K,'niter', niter, 'verbose', 0);\n    dist{m} = vl_alldist2(residual_vocab{m});          \nend\n\nsave([fine_name '.mat'],'residual_vocab','dist');\n\nfile = fopen([fine_name '.dat'], 'w');\nvocabs_count = size(residual_vocab, 1);\neach_vocab_count = size(residual_vocab{1}, 2);\neach_vocab_dim = size(residual_vocab{1}, 1);\nfwrite(file, vocabs_count, 'int32');\nfwrite(file, each_vocab_count, 'int32');\nfwrite(file, each_vocab_dim, 'int32');\nfor i = 1:vocabs_count\n    for j = 1:each_vocab_count\n        a = residual_vocab{i}(:,j);\n        fwrite(file, a, 'float');\n    end\nend\nfclose(file);\n\ntime=toc;\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/fvecs_read.m",
    "content": "% Read a set of vectors stored in the fvec format (int + n * float)\n% The function returns a set of output vector (one vector per column)\n%\n% Syntax: \n%   v = fvecs_read (filename)     -> read all vectors\n%   v = fvecs_read (filename, n)  -> read n vectors \n%   v = fvecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\nfunction v = fvecs_read (filename, bounds)\n\n% open the file and count the number of descriptors\nfid = fopen (filename, 'rb');\n \nif fid == -1\n  error ('I/O error : Unable to open the file %s\\n', filename)\nend\n\n% Read the vector size\nd = fread (fid, 1, 'int');\nvecsizeof = 1 * 4 + d * 4;\n\n% Get the number of vectrors\nfseek (fid, 0, 1);\na = 1;\nbmax = ftell (fid) / vecsizeof;\nb = bmax;\n\nif nargin >= 2\n  if length (bounds) == 1\n    b = bounds;\n   \n  elseif length (bounds) == 2\n    a = bounds(1);\n    b = bounds(2);    \n  end\nend\n\nassert (a >= 1);\nif b > bmax\n  b = bmax;\nend\n\nif b == 0 | b < a\n  v = [];\n  fclose (fid);\n  return;\nend\n\n% compute the number of vectors that are really read and go in starting positions\nn = b - a + 1;\nfseek (fid, (a - 1) * vecsizeof, -1);\n\n% read n vectors\nv = fread (fid, (d + 1) * n, 'float=>single');\nv = reshape (v, d + 1, n);\n\n% Check if the first column (dimension of the vectors) is correct\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\nv = v (2:end, :);\n\nfclose (fid);\n\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/fvecs_write.m",
    "content": "% This function reads a vector of float vectors\n% \n% Usage: fvecs_write (filename, v)\n%   where v is a set of vector (stored columnwise)\nfunction fvecs_write (filename, v)\n\n% open the file and count the number of descriptors\nfid = fopen (filename, 'wb');\nd = size (v, 1);\nn = size (v, 2);\n\nfor i = 1:n\n  \n  % first write the vector size\n  count = fwrite (fid, d, 'int');\n\n  if count ~= 1 \n    error ('Unable to write vector dimension: count !=1 \\n');\n  end\n\n  % write the vector components\n  count = fwrite (fid, v(:, i), 'float');\n\n  if count ~= d \n    error ('Unable to write vector elements: count !=1 \\n');\n  end\nend\n\nfclose (fid);"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/generate_learn.m",
    "content": "function generate_learn(data_path,learn_path,m)\n\ndataset=fvecs_read(data_path);\nn=size(dataset,2);\nidx=randsample(n,m);\nlearn=dataset(:,idx);\n\nfvecs_write(learn_path,learn);\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/generate_learn.m~",
    "content": "function generate_learn(data_path,learn_path,m)\n\nmkdir(learn_path);\n\ndataset=fvecs_read(data_path);\nn=size(dataset,2);\nidx=randsample(n,m);\nlearn=dataset(:,idx);\n\nfvecs_write(learn_path,learn);\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/main.m",
    "content": "n=1000;\ndata_name='audio';\nK=8;\nM=8;\n\ndata_path='../../../../data';\nindex_path=['../index/' data_name];\nmkdir(index_path);\n\nyael_path = '/home/yzhang4/HD/home/liwen/Documents/yael/yael_v401';\nvlfeat_path='/home/yzhang4/HD/home/liwen/Downloads/software/vlfeat-0.9.20';\n\ngenerate_learn([data_path '/' data_name '_base.fvecs'],[index_path '/' data_name '_learn.fvecs'],n);\n\ncoarse_vocabularies(yael_path, [index_path '/' data_name '_learn.fvecs'],[index_path '/' data_name '_rinit.fvecs'],[index_path '/' data_name '_coarse'],K);\n\nfine_vocabularies(yael_path,vlfeat_path, [index_path '/' data_name '_learn.fvecs'], [index_path '/' data_name '_rinit.fvecs'], [index_path '/' data_name '_coarse'], [index_path '/' data_name '_fine'], K, M);\n\n\ntransform_base_query([data_path '/' data_name '_base.fvecs'], [data_path '/' data_name '_query.fvecs'], [index_path '/' data_name '_rinit.fvecs'], [index_path '/' data_name '_base_NP.fvecs'], [index_path '/' data_name '_query_NP.fvecs']);\n\n\n\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/sqdist.m",
    "content": "function d=sqdist(a,b)\n% SQDIST - computes squared Euclidean distance matrix\n%          computes a rectangular matrix of pairwise distances  ABеĳɶԾ\n% between points in A (given in columns) and points in B\n\n% NB: very fast implementation taken from Roland Bunschoten\n\n%aa = sum(a.*a,1); aиݵĳȣ  bb = sum(b.*b,1); ab = a'*b;   abڻ\n%d = abs(repmat(aa',[1 size(bb,2)]) + repmat(bb,[size(aa,2) 1]) - 2*ab);\n\n%aa = sum(a.*a,1)'; bb = sum(b.*b,1);\n%d = abs(repmat(sum(a.*a,1)',[1 size(b,2)]) + repmat(sum(b.*b,1),[size(a,2) 1]) - 2*a'*b);\n\nd = bsxfun(@plus, -2*a'*b, sum(b.*b,1));\nd = abs(bsxfun(@plus, d', sum(a.*a,1)))';"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/train_opq_np.m",
    "content": "function [centers_table, R_opq_np] = train_opq_np(X, M, centers_table_init, R_init, num_iter_outer, num_iter_inner,k)\n\n% X: [nSamples, dim] training samples\n% M: number of subspacs\n % fixed number of centers per subspaces (8 bits per subspaces)\ndim = size(X, 2);\nd = dim / M;\n\nidx_table = zeros(size(X, 1), M);\n\nR = R_init;\ncenters_table = centers_table_init;\n\nfor iter_outer = 1:num_iter_outer\n    \n    Y = zeros(size(X));\n    \n    % line 3 in Algorithm 1\n    Xproj = X*R; % pre-projecting X\n    \n    distortion = 0;  \n    for m = 1:M\n        Xsub = Xproj(:, (1:d) + (m-1)*d);\n        \n        % line 5 in Algorithm 1\n        \n        if iter_outer == 1\n            opts = statset('Display','off','MaxIter',num_iter_outer);\n            [idx, centers] = kmeans(Xsub, k, 'Options', opts, 'EmptyAction', 'singleton');\n        else\n            opts = statset('Display','off','MaxIter',num_iter_inner);\n            [idx, centers] = kmeans(Xsub, k, 'Options', opts, 'Start', centers_table{m}, 'EmptyAction', 'singleton');\n        end\n        centers_table{m} = centers;\n        \n        % line 6 in Algorithm 1\n        dist = sqdist(centers', Xsub');\n        [dist, idx] = min(dist);\n        idx_table(:,m) = idx(:);\n        \n        % compute distortion\n        dist = mean(dist);\n        distortion = distortion + dist;\n        \n        % compute Y      \n        Ysub = centers(idx(:),:);\n        Y(:, (1:d) + (m-1)*d) = Ysub;\n    end\n    %fprintf('opq-np: iter: %d, distortion: %e\\n', iter_outer, distortion);\n    R_opq_np = R; % save the output R\n    \n    % line 8 in Algorithm 1 (update R)\n    [U, S, V] = svd(X'*Y);\n    R = U * V';\nend\n\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/transform_base_query.m",
    "content": "%%%% Transform database and query\n\nfunction transform_base_query(data_path,query_path,Rinit_path,trans_data_path, trans_query_path)\n\nR_opq_p = fvecs_read(Rinit_path);\ndataset = fvecs_read(data_path);\n\ndataset = R_opq_p' * dataset;\nfvecs_write(trans_data_path,dataset);\n\nquery = fvecs_read(query_path);\nquery = R_opq_p' * query;\n\nfvecs_write (trans_query_path,query);\n\nend\n"
  },
  {
    "path": "algorithms/OPQ/TransForm_Data/transform_base_query.m~",
    "content": "%%%% Transform database and query\n\nfunction transform_base_query(data_path,query_path,Rinit_path,trans_data_path, trans_query_path)\n\nvocabSize = 2^K;\nR_opq_p = fvecs_read(Rinit_path);\ndataset = fvecs_read(data_path);\n\ndataset = R_opq_p' * dataset;\nfvecs_write(trans_data_path,dataset);\n\nquery = fvecs_read(query_path);\nquery = R_opq_p' * query;\n\nfvecs_write (trans_query_path,query);\n\nend\n"
  },
  {
    "path": "algorithms/OPQ/script/indexer.sh",
    "content": "for data in \"audio\"\ndo\n\ndata_path=../index/${data}/${data}_base_NP.fvecs\ncoarse_path=../index/${data}/${data}_coarse.dat\nfine_path=../index/${data}/${data}_fine.dat\nindice_path=../index/${data}\ncoarse_bin_path=../index/${data}/${data}_coarse.bin\nn=53387\ndim=192\nuse_residual=0\n\n../src/build_master/indexer_launcher \\\n--threads_count=1 \\\n--multiplicity=2 \\\n--points_file=${data_path} \\\n--coarse_vocabs_file=${coarse_path} \\\n--fine_vocabs_file=${fine_path} \\\n--input_point_type=\"FVEC\" \\\n--points_count=$n \\\n--space_dim=$dim \\\n--files_prefix=${indice_path}/ \\\n--coarse_quantization_file=${coarse_bin_path} \\\n--metainfo_file=\"fake1.txt\" \\\n--build_coarse 0 \\\n--use_residuals  ${use_residual} \\\n\ndone\n"
  },
  {
    "path": "algorithms/OPQ/script/searcher.sh",
    "content": "result_path=../results\nmkdir ${result_path}\n\nfor data  in \"audio\"\ndo\n\ndata_path=../index/${data}/${data}_base_NP.fvecs\nquery_path=../index/${data}/${data}_query_NP.fvecs\ngnd_path=../../../data/${data}_groundtruth.ivecs\ncoarse_path=../index/${data}/${data}_coarse.dat\nfine_path=../index/${data}/${data}_fine.dat\nindex_path=../index/${data}/\nn=53387\ndim=192\nnq=200\nk=20\nuse_residual=1\nrerank=0\nuse_original=1\nK=8\nlet centroids=2**$K\n\nfor c in 100 500 1000\ndo\n\n../src/build_master/searcher_tester \\\n--index_files_prefix=${index_path} \\\n--queries_file=${query_path} \\\n--queries_count=${nq} \\\n--neighbours_count=$c \\\n--groundtruth_file=${gnd_path} \\\n--data_file ${data_path} \\\n--data_count ${n} \\\n--coarse_vocabs_file=${coarse_path} \\\n--fine_vocabs_file=${fine_path} \\\n--query_point_type=\"FVEC\" \\\n--use_residuals ${use_residual} \\\n--do_rerank ${rerank} \\\n--report_file=${result_path}/${data}.txt \\\n--dim ${dim} \\\n--use_originaldata ${use_original} \\\n--subspaces_centroids_count=${centroids} \\\n--k_neighbors $k \\\n\ndone\ndone\n\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/CMakeLists.txt",
    "content": "##########################################################################################\n# CMake build script for NearestSearch.\n#\n##########################################################################################\n\n#let all libraries be static, not shared\nOPTION(BUILD_SHARED_LIBS \"Build shared libraries (DLLs).\" OFF)\n\n##########################################################################################\n# lets start describing our project.\nproject (NearestSearch CXX C)\ncmake_minimum_required(VERSION 3.2)\n\nfind_package(Boost 1.58.0 COMPONENTS program_options serialization system filesystem thread REQUIRED)\n\nIF (UNIX)\n\tSET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -O3 -fopenmp -DMKL_ILP64 -m64\")\n\tSET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -O3 -fopenmp -DMKL_ILP64 -m64\")\nENDIF (UNIX)\n\nIF (NOT DEFINED CMAKE_CURRENT_LIST_DIR)\n    SET(CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_SOURCE_DIR})\nENDIF (NOT DEFINED CMAKE_CURRENT_LIST_DIR)\n\nMESSAGE(\"current dir: ${CMAKE_CURRENT_LIST_DIR}\")\nSET (Source_Path ${CMAKE_CURRENT_LIST_DIR})\n\nMESSAGE (\"PROJECT_BINARY_DIR \" ${PROJECT_BINARY_DIR})\n\n# ADD BOOSTDIR\nIF (UNIX)\nSET(BOOST_DIR /home/yzhang4/HD/home/liwen/Downloads/software/boost_1_58_0)\nSET(BOOST_LIB /home/yzhang4/HD/home/liwen/Downloads/software/boost1.58/lib)\nENDIF (UNIX)\nIF(WIN32)\nSET(BOOST_DIR C:/Users/arbabenko/Soft/boost_1_47_0)\nSET(BOOST_LIB C:/Users/arbabenko/Soft/boost_1_47_0/lib/x64/lib)\nENDIF(WIN32)\n\n# ADD BLAS\nIF (UNIX)\nSET(BLAS_DIR /opt/intel/composer_xe_2013/mkl/include)\nSET(BLAS_LIB /opt/intel/composer_xe_2013/mkl/lib/intel64 \n             /opt/intel/composer_xe_2013/compiler/lib/intel64)\nENDIF (UNIX)\nIF(WIN32)\nSET(BLAS_DIR \"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/mkl/include\")\nSET(BLAS_LIB \"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/mkl/lib/intel64\"\n             \"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/compiler/lib/intel64\")\nENDIF(WIN32)\n\n\n\n##########################################################################################\nINCLUDE (${Source_Path}/NearestSearch.cmake NO_POLICY_SCOPE)\nINCLUDE_DIRECTORIES(${BOOST_DIR})\nINCLUDE_DIRECTORIES(${BLAS_DIR})\nLINK_DIRECTORIES(${BOOST_LIB})\nLINK_DIRECTORIES(${BLAS_LIB})\nINCLUDE_DIRECTORIES(${Source_Path})\nADD_LIBRARY (nearest_search_lib STATIC ${NEAREST_ALL_CC})\n\n##########################################################################################\nINCLUDE (${Source_Path}/IndexerLauncher.cmake NO_POLICY_SCOPE)\nINCLUDE_DIRECTORIES(${BOOST_DIR})\nINCLUDE_DIRECTORIES(${BLAS_DIR})\nLINK_DIRECTORIES(${BOOST_LIB})\nLINK_DIRECTORIES(${BLAS_LIB})\nINCLUDE_DIRECTORIES(${Source_Path})\nADD_EXECUTABLE (indexer_launcher ${IndexerLauncher})\nTARGET_LINK_LIBRARIES (indexer_launcher nearest_search_lib)\ntarget_link_libraries( indexer_launcher ${Boost_LIBRARIES} )\nIF (UNIX)\nTARGET_LINK_LIBRARIES (indexer_launcher  libmkl_intel_ilp64.a libmkl_gnu_thread.a libmkl_core.a dl pthread m)\nENDIF (UNIX)\nIF(WIN32)\nTARGET_LINK_LIBRARIES (indexer_launcher  mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib)\nENDIF(WIN32)\n  \n##########################################################################################\nINCLUDE (${Source_Path}/SearcherTester.cmake NO_POLICY_SCOPE)\nINCLUDE_DIRECTORIES(${BOOST_DIR})\nINCLUDE_DIRECTORIES(${BLAS_DIR})\nLINK_DIRECTORIES(${BOOST_LIB})\nLINK_DIRECTORIES(${BLAS_LIB})\nINCLUDE_DIRECTORIES(${Source_Path})\nADD_EXECUTABLE (searcher_tester ${SearchTester})\nTARGET_LINK_LIBRARIES (searcher_tester  nearest_search_lib)\ntarget_link_libraries( searcher_tester ${Boost_LIBRARIES} )\nIF (UNIX)\nTARGET_LINK_LIBRARIES (searcher_tester libmkl_intel_ilp64.a libmkl_gnu_thread.a libmkl_core.a dl pthread m)\nENDIF (UNIX)\nIF(WIN32)\nTARGET_LINK_LIBRARIES (searcher_tester mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib)\nENDIF(WIN32)\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/IndexerLauncher.cmake",
    "content": "# lets list sample's binaries\nset (IndexerLauncher ${Source_Path}/indexer_launcher.cpp)\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/NearestSearch.cmake",
    "content": "# lets divide binaries in groups, for comfort navigation\nSOURCE_GROUP(util FILES ${Source_Path}/data_util.h\n                        ${Source_Path}/data_util.cpp\n                        ${Source_Path}/multitable.hpp\n                        ${Source_Path}/perfomance_util.h\n                        ${Source_Path}/perfomance_util.cpp)\n\t\t\t\t\t\t\nSET(UTIL                ${Source_Path}/data_util.h\n                        ${Source_Path}/data_util.cpp\n                        ${Source_Path}/multitable.hpp\n                        ${Source_Path}/perfomance_util.h\n                        ${Source_Path}/perfomance_util.cpp)\n\t\t\t\t\t\t\nSOURCE_GROUP(indexer FILES ${Source_Path}/indexer.h)\n\t\t\t\t\t\t   \nSET(INDEXER                ${Source_Path}/indexer.h)\n\t\t\t\t\t\t   \nSOURCE_GROUP(searcher FILES ${Source_Path}/searcher.h\n                            ${Source_Path}/ordered_lists_merger.h)\n\t\t\t\t\t\t\t\nSET(SEARCHER                ${Source_Path}/searcher.h\n                            ${Source_Path}/ordered_lists_merger.h)\n\t\t\t\t\t\t\t\n\n# lets list all Nearest's source binaries\nSET(NEAREST_ALL_CC ${UTIL} ${INDEXER} ${SEARCHER})\n\n"
  },
  {
    "path": "algorithms/OPQ/src/SearcherTester.cmake",
    "content": "# lets list sample's binaries\nset (SearchTester ${Source_Path}/searcher_tester.cpp)\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/build_release.sh",
    "content": "mkdir -p build_master\ncd build_master\nrm ./CMakeCache.txt\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake\n"
  },
  {
    "path": "algorithms/OPQ/src/data_util.cpp",
    "content": "// Copyright 2012 Yandex Artem Babenko\n\n#include \"data_util.h\"\n\nDistance Eucldistance(const Point& x, const Point& y) {\n  Distance result = 0;\n  Distance current_coord_diff;\n\tfor(Dimensions d = 0; d < x.size(); ++d){\n      current_coord_diff = x[d] - y[d];\n      result += current_coord_diff * current_coord_diff; \n\t}\n  return result;\n}\n\nDistance Eucldistance(const Point& x, const Point& y,\n                      const Dimensions start, const Dimensions finish) {\n  Distance result = 0;\n  Distance current_coord_diff;\n\tfor(Dimensions d = start; d < finish; ++d){\n      current_coord_diff = x[d] - y[d - start];\n      result += current_coord_diff * current_coord_diff;\n\t}\n  return result;\n}\n\nvoid GetSubpoints(const Points& points,\n                  const Dimensions start_dim,\n                  const Dimensions final_dim,\n                  Points* subpoints) {\n  if(final_dim < start_dim) {\n    throw std::logic_error(\"Final dim < Start dim\");\n  }\n  subpoints->resize(points.size());\n  for(PointId pid = 0; pid < points.size(); ++pid) {\n    subpoints->at(pid).resize(final_dim - start_dim);\n    for(Dimensions dim = start_dim; dim < final_dim; ++dim) {\n      subpoints->at(pid)[dim] = points[pid][start_dim + dim];\n    }\n  }\n}\n\nClusterId GetNearestClusterId(const Point& point,\n                              const Centroids& centroids,\n                              const Dimensions start_dim,\n                              const Dimensions final_dim) {\n  if(final_dim < start_dim) {\n    throw std::logic_error(\"Final dim < Start dim\");\n  }\n  ClusterId nearest = 0;\n  Distance min_distance = Eucldistance(point, centroids[0], start_dim, final_dim);\n  for(PointId pid = 1; pid < centroids.size(); ++pid) {\n    Distance current_distance = 0;\n    current_distance = Eucldistance(point, centroids[pid], start_dim, final_dim);\n    if(current_distance < min_distance) {\n      min_distance = current_distance;\n      nearest = pid;\n    }\n  }\n  return nearest;\n}\n\nvoid GetResidual(const Point& point, const CoarseQuantization& coarse_quantizations,\n                 const vector<Centroids>& centroids, Point* residual) {\n  residual->resize(point.size());\n  Dimensions subvector_dimension = point.size() / centroids.size();\n  cblas_saxpy(point.size(), 1, &(point[0]), 1, &(residual->at(0)), 1);\n  for(int subvector_index = 0; subvector_index < centroids.size(); ++subvector_index) {\n    Dimensions start_dim = subvector_index * subvector_dimension;\n    const Point& current_coarse_centroid = centroids[subvector_index][coarse_quantizations[subvector_index]];\n    cblas_saxpy(subvector_dimension, -1, &(current_coarse_centroid[0]), 1, &(residual->at(start_dim)), 1);\n  }\n}\n\nvoid GetResidual(const Point& point, const CoarseQuantization& coarse_quantizations,\n                 const vector<Centroids>& centroids, Coord* residual) {\n  Dimensions subvector_dimension = point.size() / centroids.size();\n  cblas_scopy(point.size(), &(point[0]), 1, residual, 1);\n  for(int subvector_index = 0; subvector_index < centroids.size(); ++subvector_index) {\n    Dimensions start_dim = subvector_index * subvector_dimension;\n    const Point& current_coarse_centroid = centroids[subvector_index][coarse_quantizations[subvector_index]];\n    cblas_saxpy(subvector_dimension, -1, &(current_coarse_centroid[0]), 1, &(residual[start_dim]), 1);\n  }\n}\n\nvoid GetNearestClusterIdsForPointSubset(const Points& points, const Centroids& centroids,\n                                        const PointId start_pid, const PointId final_pid,\n                                        vector<ClusterId>* nearest) {\n  if(final_pid < start_pid) {\n    throw std::logic_error(\"Final pid < Start pid\");\n  }\n  cout << start_pid << \" point processing started\\n\";\n  for(PointId pid = start_pid; pid < final_pid; ++pid) {\n    if(pid % 10000 == 0) {\n      cout << pid << endl;\n    }\n    nearest->at(pid) = GetNearestClusterId(points[pid], centroids, 0, points[0].size());\n  } \n  cout << final_pid << \" point processing finished\\n\";\n}\n\nvoid GetNearestClusterIdsForSubpoints(const Points& points, const Centroids& centroids,\n                                      const Dimensions start_dim, const Dimensions final_dim,\n                                      int threads_count, vector<ClusterId>* nearest) {\n  if(final_dim < start_dim) {\n    throw std::logic_error(\"Final dim < Start dim\");\n  }\n  cout << \"Start getting nearest Cluster Ids...\" << endl;\n  Points subpoints;\n  GetSubpoints(points, start_dim, final_dim, &subpoints);\n  boost::thread_group threads;\n  int subpoints_count = points.size() / threads_count;\n  for(int thread_id = 0; thread_id < threads_count; ++thread_id) {\n    PointId start_pid = subpoints_count * thread_id;\n    PointId final_pid = start_pid + subpoints_count;\n    threads.create_thread(boost::bind(&GetNearestClusterIdsForPointSubset, subpoints, centroids,\n                                      start_pid, final_pid, nearest));\n  }\n  threads.join_all();\n  cout << \"Finish getting nearest Cluster Ids...\" << endl;\n}\n\nvoid GetPointsCoarseQuaintizations(const Points& points,\n                                   const vector<Centroids>& centroids,\n                                   const int threads_count,\n                                   vector<CoarseQuantization>* coarse_quantizations) {\n  int number_of_subvectors = centroids.size();\n  coarse_quantizations->resize(points.size(), CoarseQuantization(number_of_subvectors));\n  Dimensions subvector_dimension = points[0].size() / number_of_subvectors;\n  for(int centroids_index = 0; centroids_index < number_of_subvectors; ++centroids_index) {\n    vector<ClusterId> cluster_labels;\n    cluster_labels.resize(points.size());\n    Dimensions start_dim = centroids_index * subvector_dimension;\n    Dimensions final_dim = std::min((Dimensions)points[0].size(), start_dim + subvector_dimension);\n    GetNearestClusterIdsForSubpoints(points, centroids[centroids_index],\n                                     start_dim, final_dim, threads_count, &cluster_labels);\n    for(PointId pid = 0; pid < points.size(); ++pid) {\n      coarse_quantizations->at(pid)[centroids_index] = cluster_labels[pid];\n    }\n  }\n}"
  },
  {
    "path": "algorithms/OPQ/src/data_util.h",
    "content": "/** @file */\n\n// Copyright 2012 Yandex Artem Babenko\n#pragma once\n\n\n#include <bitset>\n#include <fstream>\n#include <ios>\n#include <iostream>\n#include <map>\n#include <set>\n#include <vector>\n\n#include <boost/bind.hpp>\n#include <boost/thread.hpp>\n\n#include \"mkl_cblas.h\"\n\n#include \"multitable.hpp\"\n\nusing std::bitset;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\nusing std::multimap;\nusing std::pair;\nusing std::set;\nusing std::string;\nusing std::vector;\n\n/**\n * \\typedef\n *  Data type for coordinate (bool, char, int, float, etc.)\n */\ntypedef float Coord;\n/**\n * \\typedef\n *  Data type for distance in multidimensional space\n */\ntypedef float Distance;\n/**\n * \\typedef\n *  Dimensionality of space = number of point coordinates\n */\ntypedef int Dimensions;\n/**\n * \\typedef\n *  Data type for point identifier\n */\ntypedef int PointId;\n/**\n * \\typedef\n *  Data type for cluster identifier\n */\ntypedef int ClusterId;\n/**\n * \\typedef\n *  Just vector of coordinates\n */\ntypedef vector<Coord> Point;\n/**\n * \\typedef\n *  Class for a number of points\n */\ntypedef vector<Point> Points;\n/**\n * \\typedef\n *  Class for a number of point identifiers\n */\ntypedef vector<PointId> PointIds;\n/**\n * \\typedef\n *  Class for a set of points\n */\ntypedef set<PointId> SetPoints;\n/**\n * \\typedef\n *  Class for a number of cluster identifiers\n */\ntypedef vector<ClusterId> ClusterIds;\n/**\n * \\typedef\n *  Class for representation of point coarse quantization,\n *  ids of nearest centroids for each group of dimensions\n */\ntypedef vector<ClusterId> CoarseQuantization;\n/**\n * \\typedef\n *  Data type for fine cluster identifier\n */\ntypedef unsigned char FineClusterId;\n/**\n * \\typedef\n *  Class for representation of point fine quantization\n */\ntypedef vector<FineClusterId> FineQuantization;\n/**\n * \\typedef\n *  Class for clusters representation\n *  ClusterId -> (PointId, PointId, PointId, .... )\n */\ntypedef vector<SetPoints> ClustersToPoints;\n/**\n * \\typedef\n *  Class for belonging to clusters representation\n *  PointId -> ClusterId\n */\ntypedef std::vector<ClusterId> PointsToClusters; \n/**\n * \\typedef\n *  Centroids of the clustered points set\n */\ntypedef std::vector<Point> Centroids;\n\n/**\n * \\enum This enumeration presents different types of input point\n *       coordinate can be float or uint8\n */\nenum PointType {\n  FVEC,\n  BVEC\n};\n\n/**\n * \\enum This enumeration presents different ways to get rerank info.\n * Algorithm can quantize residuals after coarse quantization or init points without\n * centroids subtraction\n */\nenum RerankMode {\n  USE_RESIDUALS, \n  USE_INIT_POINTS\n};\n\n/**\n * \\struct MultiIndex incorporates all data structures we need to make search\n */\ntemplate<class Record>\nstruct MultiIndex {\n  vector<Record> multiindex;\n  Multitable<int> cell_edges;    ///< Table with index cell edges in array\n};\n\n/**\n * Function calculates squared euclidian distance between two points (points must have the same dimensionality)\n * @param x first point\n * @param y second point\n */\nDistance Eucldistance(const Point& x, const Point& y);\n/**\n * Function calculates squared euclidian distance point with small dimensionality and \n * subpoint of point with bigger dimensionality.  \n * @param x first point\n * @param y second point\n * @param start first dimension of subpoint\n * @param finish dimension after the last dimension of subpoint\n */\nDistance Eucldistance(const Point& x, const Point& y, Dimensions start, Dimensions finish);\n\n/**\n * This simple function casts number of type T to the nearest number of type U \n */\ntemplate<class T, class U>\ninline U Round(T number) {\n  return (U)(number);\n}\n\n/**\n * Function reads point written in .fvecs or .bvecs format.\n * Input points have coordinates of type T.\n * Result points have coordinates of type U\n * @param filename .fvecs or .bvecs file name\n * @param points_count how many points to read\n * @param points result list of read points\n */\ntemplate<class T, class U>\nvoid ReadPoints(const string& filename,\n                vector<vector<U> >* points,\n                int count) {\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  points->resize(count);\n  int dimension;\n  for(PointId pid = 0; pid < count; ++pid) {\n    input.read((char*)&dimension, sizeof(dimension));\n    if(dimension <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n    points->at(pid).resize(dimension);\n    for(Dimensions d = 0; d < dimension; ++d) {\n      T buffer;\n      input.read((char*)&(buffer), sizeof(T));\n      points->at(pid)[d] = Round<T, U>(buffer);\n    }\n  }\n}\n\n/**\n * Function reads one vector of coordinates of type T.\n * Function assumes that the first int32-number in input stream is\n * vector dimensionality. Result vector will have coordinates of type U.\n * @param input input stream\n * @param v result vector\n */\ntemplate<class T, class U>\nvoid ReadVector(ifstream& input, vector<U>* v) {\n  if(!input.good()) {\n    throw std::logic_error(\"Bad input stream\");\n  }\n  int dimension;\n  input.read((char*)&dimension, sizeof(dimension));\n  if(dimension <= 0) {\n    throw std::logic_error(\"Bad file content: non-positive dimension\");\n  }\n  v->resize(dimension);\n  for(Dimensions d = 0; d < dimension; ++d) {\n    T buffer;\n    input.read((char*)&buffer, sizeof(buffer));\n    v->at(d) = Round<T, U>(buffer);\n  }    \n}\n\n/**\n * Function reads vocabulary of centroids produced by matlab script.\n * @param input input stream\n * @param dimension one centroid dimensionality\n * @param vocabulary_size centroids count\n * @param Centroids* result centroids\n */\ntemplate<class T>\nvoid ReadVocabulary(ifstream& input,\n                    Dimensions dimension,\n                    int vocabulary_size,\n                    Centroids* centroids) {\n  \n  if(!input.good()) {\n    throw std::logic_error(\"Bad input stream\");\n  }\n  centroids->resize(vocabulary_size);\n  for(ClusterId centroid_index = 0; centroid_index < centroids->size(); ++centroid_index) {\n    centroids->at(centroid_index).resize(dimension);\n    for(Dimensions dimension_index = 0; dimension_index < dimension; ++dimension_index) {\n      T buffer;\n      input.read((char*)&buffer, sizeof(buffer));\n      centroids->at(centroid_index)[dimension_index] = Round<T, Coord>(buffer);\n    }\n  }\n}\n\n/**\n * Function reads vocabularies of centroids produced by matlab script.\n * Function assumes that the first int32 in input is dimensionality of centroids and\n * the second is the number of centroids in each vocabulary\n * @param input input stream\n * @param dimension one centroid dimensionality\n * @param vocabulary_size centroids count\n * @param Centroids* result centroids\n */\ntemplate<class T>\nvoid ReadVocabularies(const string& filename,\n                      Dimensions space_dimension,\n                      vector<Centroids>* centroids) {\n  ifstream vocabulary;\n  vocabulary.open(filename.c_str(), ios::binary);\n\t\n  if(!vocabulary.good()) {\n    throw std::logic_error(\"Bad vocabulary file\");\n  }\n  int dimension;//dimension in each subspace\n  vocabulary.read((char*)&dimension, sizeof(dimension));\n  if(dimension <= 0) {\n    throw std::logic_error(\"Bad file content: non-positive dimension\");\n  }\n  int vocabs_count = space_dimension / dimension;\n  if(space_dimension < dimension) {\n    throw std::logic_error(\"Space dimension is less than vocabulary dimension\");\n  }\n  centroids->resize(vocabs_count);\n  int vocabulary_size;\n  vocabulary.read((char*)&vocabulary_size, sizeof(vocabulary_size));\n  for(int vocab_item = 0; vocab_item < vocabs_count; ++vocab_item) {\n    ReadVocabulary<T>(vocabulary, dimension, vocabulary_size, &(centroids->at(vocab_item)));\n  }\n}\n\n/**\n * This function reads fine vocabs of centroids\n * @param fine_vocabs_filename file with vocabularies\n * @param fine_vocabs fine centroids lists\n */\ntemplate<class T>\nvoid ReadFineVocabs(const string& fine_vocabs_filename, vector<Centroids>* fine_vocabs) {\n  ifstream fine_vocabs_stream;\n  fine_vocabs_stream.open(fine_vocabs_filename.c_str(), ios::binary);\n  if(!fine_vocabs_stream.good()) {\n    throw std::logic_error(\"Bad fine vocabulary file\");\n  }\n  int vocabs_count, centroids_count, vocabs_dim;\n  fine_vocabs_stream.read((char*)&vocabs_count, sizeof(vocabs_count));\n  if(vocabs_count < 1) {\n    throw std::logic_error(\"Bad fine vocabulary file content: number of vocabularies < 1\");\n  }\n  fine_vocabs_stream.read((char*)&centroids_count, sizeof(centroids_count));\n  if(centroids_count < 1) {\n    throw std::logic_error(\"Bad fine vocabulary file content: vocabulary capacity < 1\");\n  }\n  fine_vocabs_stream.read((char*)&vocabs_dim, sizeof(vocabs_dim));\n  if(vocabs_dim < 1) {\n    throw std::logic_error(\"Bad fine vocabulary file content: vocabulary dimension < 1\");\n  }\n  fine_vocabs->resize(vocabs_count);\n  for(int voc_index = 0; voc_index < vocabs_count; ++voc_index) {\n    ReadVocabulary<T>(fine_vocabs_stream, vocabs_dim, centroids_count, &(fine_vocabs->at(voc_index)));\n  }\n}\n\n/**\n * This function returns subpoints limited by start_dim and final_dim\n * for every point in points\n * @param points all points\n * @param start_dim first dimension of subpoint\n * @param final_dim dimension after the last dimension of subpoint\n * @param subpoints result subpoints\n */\nvoid GetSubpoints(const Points& points,\n                  const Dimensions start_dim,\n                  const Dimensions final_dim,\n                  Points* subpoints);\n\n/**\n * This function returns identifier of clusters which centroid is the nearest to \n * subpoint limited by start_dim and final_dim\n * @param point full point\n * @param Centroids all centroids (function finds the nearest one)\n * @param start_dim first dimension of subpoint\n * @param final_dim dimension after the last dimension of subpoint\n */\nClusterId GetNearestClusterId(const Point& point, const Centroids& centroids,\n                              const Dimensions start_dim, const Dimensions final_dim);\n\n/**\n * This function calculates quantization residual. \n * @param point initial point\n * @param coarse_quantizations point coarse quantization\n * @param centroids lists of centroids\n * @param residual result residual\n */\nvoid GetResidual(const Point& point, const CoarseQuantization& coarse_quantizations,\n                 const vector<Centroids>& centroids, Point* residual);\n/**\n * This function calculates quantization residual. \n * @param point initial point\n * @param coarse_quantizations point coarse quantization\n * @param centroids lists of centroids\n * @param residual pointer to start of residual\n */\nvoid GetResidual(const Point& point, const CoarseQuantization& coarse_quantizations,\n                 const vector<Centroids>& centroids, Coord* residual);\n\n/**\n * This function finds nearest cluster identifiers for points from start_pid to final_pid.\n * We need this function for multi-threading\n * @param points all points\n * @param centroids centroids of clusters\n * @param start_pid first point function finds nearest cluster\n * @param final_pid point after the last point function finds nearest cluster\n */\nvoid GetNearestClusterIdsForPointSubset(const Points& points, const Centroids& centroids,\n                                        const PointId start_pid, const PointId final_pid,\n                                        vector<ClusterId>* nearest);\n\n/**\n * This function finds cluster identifiers nearest to subpoints for a number of points.\n * Subpoints are limited by start_dim and finish_dim\n * @param points all points\n * @param centroids centroids of clusters\n * @param start_dim first dimesion of subpoint\n * @param final_dim dimesion after the last dimension of subpoint\n * @param threads_count number of threads\n * @param nearest result\n */\nvoid GetNearestClusterIdsForSubpoints(const Points& points, const Centroids& centroids,\n                                      const Dimensions start_dim, const Dimensions final_dim,\n                                      int threads_count, vector<ClusterId>* nearest);\n\n/**\n * This function calculates points coarse product quantizations\n * @param points all points\n * @param centroids centroids of clusters\n * @param threads_count number of threads\n * @param coarse_quantizations result quantizations\n */\nvoid GetPointsCoarseQuaintizations(const Points& points, const vector<Centroids>& centroids,\n                                   const int threads_count,\n                                   vector<CoarseQuantization>* coarse_quantizations);\n\n\n/**\n * \\struct All indexation parameters\n */\nstruct IndexConfig {\n  RerankMode rerank_mode;\n  vector<Centroids> fine_vocabs;\n};\n\n/**\n * \\struct Type of record in multiindex, contains\n * id of point and 8 bytes for ADC reranking\n */\nstruct RerankADC8 {\n  PointId pid;\n  FineClusterId quantizations[8];\n  template<class Archive>\n  void serialize(Archive& arc, unsigned int version) {\n    arc & pid;\n    arc & quantizations;\n  }\n};\n\n/**\n * \\struct Type of record in multiindex, contains\n * id of point and 16 bytes for ADC reranking\n */\nstruct RerankADC16 {\n  PointId pid;\n  FineClusterId quantizations[16];\n  template<class Archive>\n  void serialize(Archive& arc, unsigned int version) {\n    arc & pid;\n    arc & quantizations;\n  }\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/indexer.h",
    "content": "/** @file */\n\n// Copyright 2012 Yandex Artem Babenko\n#ifndef INDEXER_H_\n#define INDEXER_H_\n\n#include <ctime>\n#include <map>\n\n#include <boost/archive/binary_iarchive.hpp>\n#include <boost/archive/binary_oarchive.hpp>\n\n#include <boost/algorithm/string/split.hpp>\n#include <boost/algorithm/string.hpp>\n\n#include <boost/lexical_cast.hpp>\n\n#include <boost/serialization/serialization.hpp>\n#include <boost/serialization/set.hpp>\n#include <boost/serialization/vector.hpp>\n\n#include \"data_util.h\"\n#include \"multitable.hpp\"\n#include <sstream>\n#include <string>\n#include <vector>\n\nusing std::ifstream;\nusing std::map;\nusing std::multimap;\nusing std::ofstream;\nusing std::string;\nusing std::pair;\nusing std::make_pair;\n\nusing boost::lexical_cast;\nusing boost::split;\n\nextern int THREADS_COUNT;\n\nextern Dimensions SPACE_DIMENSION;\n\nextern enum PointType point_type;\n\nIndexConfig gConfig;\n\n/**\n * This is the main class for creating multiindex for a set of points\n * in a multidimensional space. Clusterization and vocabs learning happen\n * outside of this class, multiindexer receives prepared vocabs in input\n */\ntemplate<class Record>\nclass MultiIndexer { \n public:\n /**\n  * This is the simple MultiIndexer constructor\n  * @param multiplicity how many parts input points will be divide on\n  */\n  MultiIndexer(const int multiplicity = 2);\n /**\n  * This is the main function of MultiIndexer\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param points_count how many points should we index\n  * @param coarse_vocabs vocabularies for coarse quantization\n  * @param fine_vocabs vocabularies for fine quantization for reranking\n  * @param mode determines the way of rerank info calculating\n  * @param build_coarse_quantization should we get coarse quantization or not\n  * @param files_prefix all index filenames will have this prefix\n  * @param coarse_quantization_filename file with coarse quantization (if exists)\n  */\n  void BuildMultiIndex(const string& points_filename,\n                       const string& metainfo_filename,\n                       const int points_count,\n                       const vector<Centroids>& coarse_vocabs,\n                       const vector<Centroids>& fine_vocabs,\n                       const RerankMode& mode,\n                       const bool build_coarse_quantization,\n                       const string& files_prefix,\n                       const string& coarse_quantization_filename = \"\");\n private:\n\t\n\n  int IsExist(const vector<string>* inverts,const string hex);\n  void report(const vector<vector<ClusterId> >* transposed_coarse_quantizations, int coarse_k,const vector<Centroids>& coarse_vocabs);\n  \n\n\n /**\n  * This function prepares for each point its coarse quantization\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param points_count how many points should we handle\n  * @param coarse_vocabs vocabularies for coarse quantization\n  */\n  void PrepareCoarseQuantization(const string& points_filename,\n                                 const int points_count,\n                                 const vector<Centroids>& coarse_vocabs);\n /**\n  * This function prepares for each point in subset its coarse quantization\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param start_pid identifier of the first point in subset\n  * @param subset_size points count in subset\n  * @param coarse_vocabs vocabularies for coarse quantization\n  * @param transposed_coarse_quantizations result\n  */\n  void GetCoarseQuantizationsForSubset(const string& points_filename,\n                                       const int start_pid,\n                                       const int subset_size,\n                                       const vector<Centroids>& coarse_vocabs,\n                                       vector<vector<ClusterId> >*\n                                       transposed_coarse_quantizations);\n /**\n  * This function serializes prepared coarse quantizations to file\n  * @param transposed_coarse_quantizations quantizations to serialize.\n  * They are transposed because of effective memory usage\n  * @param filename file we should serialize to\n  */\n  void SerializeCoarseQuantizations(const vector<vector<ClusterId> >&\n                                    transposed_coarse_quantizations,\n                                    const string& filename);\n /**\n  * This function saves index to files.\n  * All filenames start form the common files prefix\n  */\n  void SerializeMultiIndexFiles();\n /**\n  * This function converts counts of points in cells to cell edges\n  */\n  void ConvertPointsInCellsCountToCellEdges();\n\n /**\n  * This function fills multiindex data structures.\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param points_count how many points should we index\n  * @param coarse_vocabs vocabularies for coarse quantization\n  * @param fine_vocabs vocabularies for fine quantization for reranking\n  * @param mode determines the way of rerank info calculating\n  */\n  void FillMultiIndex(const string& points_filename,\n                      const int points_count,\n                      const vector<Centroids>& coarse_vocabs,\n                      const vector<Centroids>& fine_vocabs,\n                      const RerankMode& mode);\n /**\n  * This function fills multiindex data structures.\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param start_pid identifier of the first point in subset\n  * @param subset_size points count in subset\n  * @param coarse_vocabs vocabularies for coarse quantization\n  * @param fine_vocabs vocabularies for fine quantization for reranking\n  * @param mode determines the way of rerank info calculating\n  * @param points_written_in_index auxillary structure for correct index filling\n  */\n  void FillMultiIndexForSubset(const string& points_filename,\n                               const PointId start_pid,\n                               const int points_count,\n                               const vector<Centroids>& coarse_vocabs,\n                               const vector<Centroids>& fine_vocabs,\n                               const RerankMode& mode,\n                               Multitable<int>* points_written_in_index);\n\n /**\n  * This function reads point coarse quantization from file\n  * @param pid identifier of target point\n  * @param filename file with coarse quantizations\n  * @param coarse_quantization result\n  */\n  void GetPointCoarseQuantization(const PointId pid,\n                                  const string& filename,\n                                  vector<ClusterId>* coarse_quantization);\n /**\n  * This function calculates rerank info for point\n  * @param point target point\n  * @param pid identifier of target point\n  * @param fine_vocabs vocabularies for rerank info calculation\n  */\n  void FillPointRerankInfo(const Point& point,\n                           const PointId pid,\n                           const vector<Centroids>& fine_vocabs);\n /**\n  * This function restores counts of points from coarse quantizations\n  * @param points_filename file with points in .fvecs or .bvecs format\n  * @param points_count how many points should we index\n  * @param coarse_vocabs vocabularies for coarse quantization\n  * We need them to init counts table correctly\n  */\n  void RestorePointsInCellsCountFromCourseQuantization(const string& points_filename,\n                                                       const int points_count,\n                                                       const vector<Centroids>& coarse_vocabs);\n /**\n  * This simple function returns size of one coordinate of input point\n  */\n  int GetInputCoordSizeof();\n /**\n  * This simple function reads one point from input stream\n  * @param input input stream\n  * @param point result point\n  */\n  void ReadPoint(ifstream& input, Point* point);\n /**\n  * Initialize all structures for BLAS operations\n  * @param coarse_vocabs coarse vocabularies\n  */\n  void InitBlasStructures(const vector<Centroids>& coarse_vocabs);\t\n /**\n  *  All index filenames will start from this prefix\n  */\n  string files_prefix_;\n /**\n  *  Filename of file with coarse quantizations\n  */\n  string coarse_quantization_filename_;\n /**\n  *  Multiplicity (how many parts point space is divided on)\n  */\n  int multiplicity_;\n /**\n  *  Table with number of points in each cell\n  */\n  Multitable<int> point_in_cells_count_;\n /**\n  *  Multiindex\n  */\n  MultiIndex<Record> multiindex_;\n /**\n  *  Mutex for critical section in filling index stage\n  */\n  boost::mutex cell_counts_mutex_;\n /**\n  * Struct for BLAS\n  */\n  vector<float*> coarse_vocabs_matrices_;\n /**\n  * Struct for BLAS\n  */\n  vector<vector<float> > coarse_centroids_norms_;\n\n};\n\ntemplate<class Record>\ninline void GetRecord(const Point& point, const PointId pid,\n                      const vector<ClusterId> coarse_quantization,\n                      const vector<Centroids>& coarse_vocabs,\n                      Record* result) {\n}\n\ntemplate<class Record>\nvoid InitParameters(const vector<Centroids>& fine_vocabs,\n                    const RerankMode& mode,\n                    const string& metainfo_filename) {\n  gConfig.fine_vocabs = fine_vocabs;\n  gConfig.rerank_mode = mode;\n}\n\n\n//////////////////// IMPLEMENTATION //////////////////////\ntemplate<class Record>\nMultiIndexer<Record>::MultiIndexer(const int multiplicity) {\n  if(multiplicity < 0) {\n    throw std::logic_error(\"Multiplicity < 0\");\n  }\n  multiplicity_ = multiplicity;\n}\n\ntemplate<class Record>\nint MultiIndexer<Record>::GetInputCoordSizeof() {\n  if(point_type == FVEC) {\n    return (int)sizeof(float);\n  } else if(point_type == BVEC) {\n    return (int)sizeof(unsigned char);\n  }\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::ReadPoint(ifstream& input, Point* point) {\n  if(!input.good()) {\n    throw std::logic_error(\"Bad input stream\");\n  }\n  if(point_type == FVEC) {\n    ReadVector<float, Coord>(input, point);\n  } else if(point_type == BVEC) {\n    ReadVector<unsigned char, Coord>(input, point);\n  }    \n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::SerializeCoarseQuantizations(const vector<vector<ClusterId> >&\n\t\t                                                          transposed_coarse_quantizations,\n                                                        const string& filename) {\n  ofstream quantizations_stream;\n  quantizations_stream.open(filename.c_str(), ios::binary);\n  if(!quantizations_stream.good()) {\n    throw std::logic_error(\"Bad input stream\");\n  }\n  cout << \"Writing coarse quantizations started\" << endl;\n  for(PointId pid = 0; pid < transposed_coarse_quantizations[0].size(); ++pid) {\n    for(int subspace_index = 0; subspace_index < multiplicity_; ++subspace_index) {\n      ClusterId quantization = transposed_coarse_quantizations[subspace_index][pid];\n      quantizations_stream.write((char*)&quantization, sizeof(quantization));\n    }\n  }\n  quantizations_stream.close();\n  cout << \"Writing coarse quantizations started\" << endl;\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::SerializeMultiIndexFiles() {\n  cout << \"Start multiindex serializing....\\n\";\n  ofstream cell_edges(string(files_prefix_ + \"_cell_edges.bin\").c_str(), ios::binary);\n  boost::archive::binary_oarchive arc_cell_edges(cell_edges);\n  arc_cell_edges << multiindex_.cell_edges;\n  ofstream multi_array(string(files_prefix_ + \"_multi_array.bin\").c_str(), ios::binary);\n  boost::archive::binary_oarchive arc_multi_array(multi_array);\n  arc_multi_array << multiindex_.multiindex;\n  cout << \"Finish multiindex serializing....\\n\";\n}\n\ntemplate<class Record>\nint MultiIndexer<Record>::IsExist(const vector<string>* inverts, const string hex)\n{\n\tfor(int i=0;i<inverts->size();i++)\n\t{\n\t\tif(inverts->at(i).compare(hex)==0)\n\t\t\treturn i;\n\t}\n\treturn -1;\n}\n/*\ntemplate<class Record>\nvoid MultiIndexer<Record>::report(const vector<vector<ClusterId> >* transposed_coarse_quantizations, int coarse_k)\n{\n\tint data_size = transposed_coarse_quantizations->at(0).size();\n\tcout<<data_size<<\" \";\n\tint m=2;\n    vector<std::string> bit_set;\n\tvector<int> counts(data_size,0);\n\tfor(int i=0; i<data_size ;i++)\n\t{\n\t\tstd::stringstream ss;\n\t\tfor(int j=0;j<m;j++)\n\t\t\tss<<transposed_coarse_quantizations->at(j)[i]<<\";\";\n\t\tstd::string hex=ss.str();\n\t\tint index = IsExist(&bit_set,hex);\n\t\tif(index==-1)\n\t\t{\n\t\t\tbit_set.push_back(hex);\n\t\t\tcounts[bit_set.size()-1]++;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcounts[index]++;\n\t\t}\n\t}\n\tif(bit_set.size()==data_size)\n\t{\n\t\tcout<<\"Failed!!!\"<<endl;\n\t\treturn;\n\t}\n\tcout<<bit_set.size()<<\" \"<<bit_set.size()*1.0/coarse_k/coarse_k<<endl;\n\tsort(counts.begin(),counts.begin()+bit_set.size());\n\tint min = counts[0];\n\tint max = counts[bit_set.size()-1];\n\tfloat avg = data_size * 1.0 / bit_set.size();\n\tfloat var = 0;\n\tfor(int i=bit_set.size()-1; i>=0;i--)\n\t{\n\t\tfloat tmp = counts[i]-avg ; \n\t\tvar += tmp * tmp ;\n\t}\n\tvar /= bit_set.size();\n\tcout<<\"\\n\"<<min<<\" \"<<max<<\" \"<<avg<<\" \"<<var<<\"\\n\"<<endl;\n\tfor(int i=bit_set.size()-1; i>=0;i--)\n\t{\n\t\tcout<<counts[i]<<\" \";\n\t}\n\n}*/\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::report(const vector<vector<ClusterId> >* transposed_coarse_quantizations, int coarse_k,const vector<Centroids>& coarse_vocabs)\n{\n\tint data_size = transposed_coarse_quantizations->at(0).size();\n\tint m=2;\n    vector<std::string> bit_set;\n\tvector<pair<int,int> > center_ids;\n\tvector<int> counts(data_size,0);\n\tvector<vector<int> > ds;\n\tfor(int i=0; i<data_size ;i++)\n\t{\n\t\tstd::stringstream ss;\n\t\tfor(int j=0;j<m;j++)\n\t\t\tss<<transposed_coarse_quantizations->at(j)[i]<<\";\";\n\t\tstd::string hex=ss.str();\n\t\tint index = IsExist(&bit_set,hex);\n\t\tif(index==-1)\n\t\t{\n\t\t\tbit_set.push_back(hex);\n\t\t\tcounts[bit_set.size()-1]++;\n\t\t\tvector<int> dd;\n\t\t\tdd.push_back(i);\n\t\t\tds.push_back(dd);\n\t\t\tcenter_ids.push_back(make_pair(transposed_coarse_quantizations->at(0)[i],transposed_coarse_quantizations->at(1)[i]));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcounts[index]++;\n\t\t\tvector<int> dd=ds[index];\n\t\t\tdd.push_back(i);\n\t\t\tds[index]=dd;\n\t\t}\n\t}\n\n\tFILE * fp =fopen(\"index.opq\",\"wb\");\n\tint cluster_size = bit_set.size();\n\tfwrite(&cluster_size,sizeof(int),1,fp);\n\tcout<<cluster_size<<endl;\n\tfor(int i=0; i<bit_set.size();i++)\n\t{\n\t\tfloat * center = new float[SPACE_DIMENSION];\n\t\tint lindex = center_ids[i].first;\n\t\tint rindex = center_ids[i].second;\n\t\tfor (int j=0;j<SPACE_DIMENSION/2;j++)\n\t\t\tcenter[j] = coarse_vocabs.at(0)[lindex][j];\n\t\tfor (int j=0;j<SPACE_DIMENSION/2;j++)\n\t\t\tcenter[j+SPACE_DIMENSION/2] = coarse_vocabs.at(1)[rindex][j];\n\t\tfwrite(center,sizeof(float),SPACE_DIMENSION,fp);\n\n\t\tint size = counts[i];\n\t\tfwrite(&size,sizeof(int),1,fp);\n\t\tint * ids = new int[size];\n\t\tfor(int j=0;j<size;j++)\n\t\t\tids[j]=ds[i][j];\n\t\tfwrite(ids,sizeof(int),size,fp);\n\t}\n\tfclose(fp);\n}\ntemplate<class Record>\nvoid MultiIndexer<Record>::GetCoarseQuantizationsForSubset(const string& points_filename,\n                                                           const int start_pid,\n                                                           const int subset_size,\n                                                           const vector<Centroids>& coarse_vocabs,\n                                                           vector<vector<ClusterId> >*\n                                                                  transposed_coarse_quantizations) {\n\n\n  ifstream point_stream;\n  point_stream.open(points_filename.c_str(), ios::binary);\n  if(!point_stream.good()) {\n    throw std::logic_error(\"Bad input points stream\");\n  }\n  // we assume points are stored in .fvecs or .bvecs format\n  point_stream.seekg(start_pid * (GetInputCoordSizeof() * SPACE_DIMENSION + sizeof(Dimensions)), ios::beg);\n  vector<ClusterId> coarse_quantization(multiplicity_);\n  //cout<<\"subset_size:\" << subset_size << endl;\n  for(int point_number = 0; point_number < subset_size; ++point_number) {\n    /*if(point_number % 10000 == 0) {\n      cout << \"Getting coarse quantization, point # \" << start_pid + point_number << endl;\n    }*/\n    //cout<<\"point number:\"<<point_number<<endl;\n    Point current_point;\n    ReadPoint(point_stream, &current_point);\n    int subpoints_dimension = SPACE_DIMENSION / multiplicity_;\n    for(int coarse_index = 0; coarse_index < multiplicity_; ++coarse_index) {\n      Dimensions start_dim = coarse_index * subpoints_dimension;\n      Dimensions final_dim = start_dim + subpoints_dimension;\n      ClusterId nearest = GetNearestClusterId(current_point, coarse_vocabs.at(coarse_index),\n                                              start_dim, final_dim);\n      //cout<<\"coarse_index:\"<<coarse_index<<\" nearest:\"<<nearest<<endl;\n      transposed_coarse_quantizations->at(coarse_index)[start_pid + point_number] = nearest;\n      coarse_quantization[coarse_index] = nearest;\n      cblas_saxpy(subpoints_dimension, -1, &(coarse_vocabs.at(coarse_index)[nearest][0]), 1, &(current_point[start_dim]), 1);\n    }\n    \n    int global_index = point_in_cells_count_.GetCellGlobalIndex(coarse_quantization);\n    cell_counts_mutex_.lock();\n    ++(point_in_cells_count_.table[global_index]);\n    cell_counts_mutex_.unlock();\n  }\n\t\n  //cout<<\"transposed:\"<<transposed_coarse_quantizations->size()<<\" \"<<transposed_coarse_quantizations->at(0).size()<<endl;\n\n  //cout<<coarse_vocabs.size()<<\" \"<<coarse_vocabs[0].size()<<endl;\n  //report(transposed_coarse_quantizations, coarse_vocabs[0].size(),coarse_vocabs);\n}\n\n\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::PrepareCoarseQuantization(const string& points_filename,\n                                                     const int points_count,\n                                                     const vector<Centroids>& coarse_vocabs) {\n  // we use transposed quantizations for efficient memory usage\n  vector<vector<ClusterId> > transposed_coarse_quantizations; \n  transposed_coarse_quantizations.resize(multiplicity_);\n  vector<int> multiindex_table_dimensions;\n  for(int i = 0; i < multiplicity_; ++i) {\n    transposed_coarse_quantizations[i].resize(points_count);\n    multiindex_table_dimensions.push_back(coarse_vocabs[i].size());\n  }\n  point_in_cells_count_.Resize(multiindex_table_dimensions);\n  cout << \"Memory for coarse quantizations allocated\" << endl;\n  boost::thread_group index_threads;\n  int thread_points_count = points_count / THREADS_COUNT;\n  for(int thread_id = 0; thread_id < THREADS_COUNT; ++thread_id) {\n    PointId start_pid = thread_points_count * thread_id;\n    index_threads.create_thread(boost::bind(&MultiIndexer::GetCoarseQuantizationsForSubset,\n                                            this, points_filename, start_pid, thread_points_count,\n                                            boost::cref(coarse_vocabs), &transposed_coarse_quantizations));\n  }\n  index_threads.join_all();\n  if(coarse_quantization_filename_.empty()) {\n    coarse_quantization_filename_ = files_prefix_ + \"_coarse_quantizations.bin\";\n  }\n  cout << \"Coarse quantizations are calculated\" << endl;\n  SerializeCoarseQuantizations(transposed_coarse_quantizations, coarse_quantization_filename_);\n  cout << \"Coarse quantizations are serialized\" << endl;\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::ConvertPointsInCellsCountToCellEdges() {\n  cout << \"Converting points in cells to cell edges...\\n\";\n  multiindex_.cell_edges = point_in_cells_count_;\n  multiindex_.cell_edges.table[0] = 0;\n  for(int global_index = 1;\n      global_index < point_in_cells_count_.table.size();\n      ++global_index) {\n    multiindex_.cell_edges.table[global_index] = multiindex_.cell_edges.table[global_index - 1] +\n                                                 point_in_cells_count_.table[global_index - 1];\n  }\n  // we do not need this table more\n  point_in_cells_count_.table.clear();\n  cout << \"Finish converting points in cells to cell edges...\\n\";\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::GetPointCoarseQuantization(const PointId pid,\n                                                      const string& filename,\n                                                      vector<ClusterId>* coarse_quantization) {\n  ifstream coarse_quantization_stream;\n  coarse_quantization_stream.open(filename.c_str(), ios::binary);\n  if(!coarse_quantization_stream.good()) {\n    throw std::logic_error(\"Bad input coarse quantizations stream\");\n  }\n  coarse_quantization_stream.seekg((long long)pid * sizeof(ClusterId) * multiplicity_, ios::beg);\n  for(int coarse_index = 0; coarse_index < multiplicity_; ++coarse_index) {\n    coarse_quantization_stream.read((char*)&(coarse_quantization->at(coarse_index)),\n                                    sizeof(coarse_quantization->at(coarse_index)));\n  }\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::FillMultiIndexForSubset(const string& points_filename,\n                                                   const PointId start_pid,\n                                                   const int points_count,\n                                                   const vector<Centroids>& coarse_vocabs,\n                                                   const vector<Centroids>& fine_vocabs,\n                                                   const RerankMode& mode,\n                                                   Multitable<int>* points_written_in_index) {\n  ifstream point_stream;\n  point_stream.open(points_filename.c_str(), ios::binary);\n  if(!point_stream.good()) {\n    throw std::logic_error(\"Bad input points stream\");\n  }\n  point_stream.seekg((long long)start_pid * (GetInputCoordSizeof() * SPACE_DIMENSION + sizeof(Dimensions)), ios::beg);\n  for(int point_number = 0; point_number < points_count; ++point_number) {\n    if(point_number % 10000 == 0) {\n      cout << \"Filling multiindex, point # \" << start_pid + point_number << endl;\n    }\n  Point current_point;\n  ReadPoint(point_stream, &current_point);\n  vector<ClusterId> coarse_quantization(multiplicity_);\n  GetPointCoarseQuantization(start_pid + point_number,\n                             coarse_quantization_filename_,\n                             &coarse_quantization);\n  int current_written_count = points_written_in_index->GetValue(coarse_quantization);\n  int pid_multiindex = multiindex_.cell_edges.GetValue(coarse_quantization) + current_written_count;\n  GetRecord<Record>(current_point, start_pid + point_number,\n                    coarse_quantization, coarse_vocabs, &(multiindex_.multiindex[pid_multiindex]));\n  cell_counts_mutex_.lock();\n  points_written_in_index->SetValue(current_written_count + 1, coarse_quantization);\n  cell_counts_mutex_.unlock();\n  }\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::FillMultiIndex(const string& points_filename,\n                                          const int points_count,\n                                          const vector<Centroids>& coarse_vocabs,\n                                          const vector<Centroids>& fine_vocabs,\n                                          const RerankMode& mode) {\n  ConvertPointsInCellsCountToCellEdges();\n  multiindex_.multiindex.resize(points_count);\n  cout << \"Indexing started...\" << endl;\n\n  Multitable<int> points_written_in_index(multiindex_.cell_edges.dimensions);\n  int thread_points_count = points_count / THREADS_COUNT;\n  boost::thread_group threads;\n  for(int thread_id = 0; thread_id < THREADS_COUNT; ++thread_id) {\n    PointId start_pid = thread_points_count * thread_id;\n    threads.create_thread(boost::bind(&MultiIndexer::FillMultiIndexForSubset, this, points_filename, start_pid,\n                                      thread_points_count, boost::cref(coarse_vocabs),\n                                      boost::cref(fine_vocabs), mode, &points_written_in_index));\n  }\n  threads.join_all();\n  cout << \"Indexing finished...\" << endl;\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::RestorePointsInCellsCountFromCourseQuantization(const string& points_filename,\n                                                                           const int points_count,\n                                                                           const vector<Centroids>& coarse_vocabs) {\n  vector<int> dimensions;\n  for(int i = 0; i < multiplicity_; ++i) {\n    dimensions.push_back(coarse_vocabs[i].size());\n  }\n  point_in_cells_count_.Resize(dimensions);\n  ifstream coarse_quantization_stream;\n  coarse_quantization_stream.open(coarse_quantization_filename_.c_str(), ios::binary);\n  if(!coarse_quantization_stream.good()) {\n    throw std::logic_error(\"Bad input coarse quantizations stream\");\n  }\n  CoarseQuantization quantization(multiplicity_);\n  for(PointId pid = 0; pid < points_count; ++pid) {\n    if(pid % 100000 == 0) {\n      cout << pid << endl;\n    }\n    for(int subspace_index = 0; subspace_index < multiplicity_; ++subspace_index) {\n      coarse_quantization_stream.read((char*)&(quantization[subspace_index]), \n                                      sizeof(ClusterId));\n    }\n    int cell_global_index = point_in_cells_count_.GetCellGlobalIndex(quantization);\n    point_in_cells_count_.table[cell_global_index] += 1;\n  }\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::BuildMultiIndex(const string& points_filename,\n                                           const string& metainfo_filename,\n                                           const int points_count,\n                                           const vector<Centroids>& coarse_vocabs,\n                                           const vector<Centroids>& fine_vocabs,\n                                           const RerankMode& mode,\n                                           const bool build_coarse_quantization,\n                                           const string& files_prefix,\n                                           const string& coarse_quantization_filename) {\n  InitParameters<Record>(fine_vocabs, mode, metainfo_filename);\n  InitBlasStructures(coarse_vocabs);\n  files_prefix_ = files_prefix;\n  coarse_quantization_filename_ = coarse_quantization_filename;\n  if(build_coarse_quantization) {\n    PrepareCoarseQuantization(points_filename, points_count, coarse_vocabs);\n  } else {\n  RestorePointsInCellsCountFromCourseQuantization(points_filename,\n                                                  points_count,\n                                                  coarse_vocabs);\n  }\n  FillMultiIndex(points_filename, points_count, coarse_vocabs, fine_vocabs, mode);\n  cout << \"Multiindex created\" << endl;\n  SerializeMultiIndexFiles();\n  cout << \"Multiindex serialized\" << endl;\n}\n\ntemplate<class Record>\nvoid MultiIndexer<Record>::InitBlasStructures(const vector<Centroids>& coarse_vocabs) {\n  coarse_vocabs_matrices_.resize(coarse_vocabs.size());\n  coarse_centroids_norms_.resize(coarse_vocabs.size(), vector<float>(coarse_vocabs[0].size()));\n  for(int coarse_id = 0; coarse_id < coarse_vocabs_matrices_.size(); ++coarse_id) {\n    coarse_vocabs_matrices_[coarse_id] = new float[coarse_vocabs[0].size() * coarse_vocabs[0][0].size()];\n    for(int i = 0; i < coarse_vocabs[0].size(); ++i) {\n      Coord norm = 0;\n      for(int j = 0; j < coarse_vocabs[0][0].size(); ++j) {\n        coarse_vocabs_matrices_[coarse_id][coarse_vocabs[0][0].size() * i + j] = coarse_vocabs[coarse_id][i][j];\n        norm += coarse_vocabs[coarse_id][i][j] * coarse_vocabs[coarse_id][i][j];\n      }\n      coarse_centroids_norms_[coarse_id][i] = norm;\n    }\n  }\n}\n\ntemplate<>\ninline void GetRecord<PointId> (const Point& point, const PointId pid,\n                                const vector<ClusterId> coarse_quantization,\n                                const vector<Centroids>& coarse_vocabs,\n                                PointId* result) {\n  *result = pid;\n}\n\ninline void FillAdcInfo(const Point& point, const PointId pid,\n                        const vector<Centroids>& fine_vocabs,\n                        char* result) {\n  int subvectors_count = fine_vocabs.size();\n  int subvector_dim = point.size() / subvectors_count;\n  for(int subvector_index = 0; subvector_index < subvectors_count; ++subvector_index) {\n    Dimensions start_dim = subvector_index * subvector_dim;\n    Dimensions final_dim = start_dim + subvector_dim;\n    *((FineClusterId*)result) = (FineClusterId)GetNearestClusterId(point, fine_vocabs[subvector_index],\n\t\t\t                                                       start_dim, final_dim);\n    result += sizeof(FineClusterId);\n  }\n}\n\ntemplate<>\ninline void GetRecord<RerankADC8> (const Point& point, const PointId pid,\n                                   const vector<ClusterId> coarse_quantization,\n                                   const vector<Centroids>& coarse_vocabs,\n                                   RerankADC8* result) {\n  result->pid = pid;\n  char* rerank_info_ptr = (char*)result + sizeof(pid);\n  if(gConfig.rerank_mode == USE_RESIDUALS) {\n    Point residual;\n    GetResidual(point, coarse_quantization, coarse_vocabs, &residual);\n    FillAdcInfo(residual, pid, gConfig.fine_vocabs, rerank_info_ptr);\n  } else if (gConfig.rerank_mode == USE_INIT_POINTS) {\n    FillAdcInfo(point, pid, gConfig.fine_vocabs, rerank_info_ptr);\n  }\n}\n\ntemplate<>\ninline void GetRecord<RerankADC16> (const Point& point, const PointId pid,\n                                    const vector<ClusterId> coarse_quantization,\n                                    const vector<Centroids>& coarse_vocabs,\n                                    RerankADC16* result) {\n  result->pid = pid;\n  char* rerank_info_ptr = (char*)result + sizeof(pid);\n  if(gConfig.rerank_mode == USE_RESIDUALS) {\n    Point residual;\n    GetResidual(point, coarse_quantization, coarse_vocabs, &residual);\n    FillAdcInfo(residual, pid, gConfig.fine_vocabs, rerank_info_ptr);\n  } else if (gConfig.rerank_mode == USE_INIT_POINTS) {\n    FillAdcInfo(point, pid, gConfig.fine_vocabs, rerank_info_ptr);\n  }\n}\n\n#endif\n\n\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/indexer_launcher.cpp",
    "content": "// Copyright 2012 Yandex Artem Babenko\n#include <iostream>\n#include <fstream>\n\n#include <sys/time.h>\n#include <boost/program_options.hpp>\n\n#include \"indexer.h\"\n\nusing namespace boost::program_options;\nusing std::ofstream;\n/**\n * Number of threads for indexing\n */\nint THREADS_COUNT;\n/**\n * Type, should be BVEC or FVEC\n */\nPointType point_type;\n/**\n * Number of coordinates in a point\n */\nDimensions SPACE_DIMENSION;\n/**\n * File with vocabularies for multiindex structure\n */\nstring coarse_vocabs_file;\n/**\n * File with vocabularies for reranking\n */\nstring fine_vocabs_file;\n/**\n * File with points to index\n */\nstring points_file;\n/**\n * File with points metainfo (imageId, etc.)\n */\nstring metainfo_file;\n/**\n * Reranking approach, should be USE_RESIDUALS or USE_INIT_POINTS\n */\nRerankMode mode;\n/**\n * Common prefix of all multiindex files\n */\nstring files_prefix;\n/**\n * Should we calculate coarse quantizations (they can be precomputed)\n */\nbool build_coarse_quantizations;\n/**\n * File with points coarse quantizations\n */\nstring coarse_quantizations_file;\n/**\n * How many points should we index\n */\nint points_count;\n/**\n * Multiplicity of multiindex\n */\nint multiplicity;\n\nstring result_path;\n\nstring index_param ;\n\nint SetOptions(int argc, char** argv) {\n  options_description description(\"Options\");\n  description.add_options()\n    (\"threads_count,t\", value<int>())\n    (\"multiplicity,m\", value<int>())\n    (\"points_file,p\", value<string>())\n    (\"metainfo_file,z\", value<string>())\n    (\"coarse_vocabs_file,c\", value<string>())\n    (\"fine_vocabs_file,f\", value<string>())\n    (\"input_point_type,i\", value<string>())\n    (\"build_coarse,b\",  value<int>()) //bool_switch(), \"Flag B\")\n    (\"use_residuals,r\", value<int>())\n\t//(\"Use_res,a\", value<int>())bool_switch(), \"Flag R\")\n    (\"points_count,p\", value<int>())\n    (\"coarse_quantization_file,q\", value<string>())\n    (\"space_dim,d\", value<int>())\n    (\"files_prefix,_\", value<string>());\n\n  variables_map name_to_value;\n  try {\n    store(command_line_parser(argc, argv).options(description).run(), name_to_value);\n  } catch (const invalid_command_line_syntax& inv_syntax) {\n    switch (inv_syntax.kind()) {\n      case invalid_syntax::missing_parameter :\n        cout << \"Missing argument for option '\" << inv_syntax.tokens() << \"'.\\n\";\n        break;\n      default:\n        cout << \"Syntax error, kind \" << int(inv_syntax.kind()) << \"\\n\";\n        break;\n      };\n    return 1;\n  } catch (const unknown_option& unkn_option) {\n    cout << \"Unknown option '\" << unkn_option.get_option_name() << \"'\\n\";\n    return 1;\n  }\n  if (name_to_value.count(\"help\")) {\n    cout << description << \"\\n\";\n    return 1;\n  }\n\n  THREADS_COUNT =              name_to_value[\"threads_count\"].as<int>();\n  multiplicity =               name_to_value[\"multiplicity\"].as<int>();\n  points_file =                name_to_value[\"points_file\"].as<string>();\n  metainfo_file =              name_to_value[\"metainfo_file\"].as<string>();\n  coarse_vocabs_file =         name_to_value[\"coarse_vocabs_file\"].as<string>();\n  fine_vocabs_file =           name_to_value[\"fine_vocabs_file\"].as<string>();\n  SPACE_DIMENSION =            name_to_value[\"space_dim\"].as<int>();\n  files_prefix =               name_to_value[\"files_prefix\"].as<string>();\n  points_count =               name_to_value[\"points_count\"].as<int>();\n\n  build_coarse_quantizations = (name_to_value[\"build_coarse\"].as<int>() == 0) ? true : false;\n  //cout<<build_coarse_quantizations<<endl;\n\n  //mode = name_to_value[\"Use_residuals\"].as<bool>() == true ? USE_RESIDUALS : USE_INIT_POINTS;\n  mode = name_to_value[\"use_residuals\"].as<int>() == 0 ? USE_RESIDUALS : USE_INIT_POINTS;\n  //cout<<mode<<endl;\n\n  if (name_to_value.find(\"coarse_quantization_file\") != name_to_value.end()) {\n    coarse_quantizations_file =  name_to_value[\"coarse_quantization_file\"].as<string>();\n  }\n  if (name_to_value[\"input_point_type\"].as<string>() == \"FVEC\") {\n    point_type = FVEC;\n  } else if(name_to_value[\"input_point_type\"].as<string>() == \"BVEC\") {\n    point_type = BVEC;\n  }\n  return 0;\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char** argv) {\n  \n  SetOptions(argc, argv);\n  \n  cout << \"Options are set ...\\n\";\n  vector<Centroids> coarse_vocabs;\n  vector<Centroids> fine_vocabs;\n  ReadVocabularies<float>(coarse_vocabs_file, SPACE_DIMENSION, &coarse_vocabs);\n  cout<<\"read coarse file\\n\";\n  ReadFineVocabs<float>(fine_vocabs_file, &fine_vocabs);\n  cout << \"Vocs are read ...\\n\";\n  timeval start;\n  timeval end;\n  gettimeofday(&start, NULL);\n  if(fine_vocabs.size() == 8) {\n    MultiIndexer<RerankADC8> indexer(multiplicity);\n    indexer.BuildMultiIndex(points_file, metainfo_file, points_count, coarse_vocabs, \n                            fine_vocabs, mode, build_coarse_quantizations,\n                            files_prefix, coarse_quantizations_file);\n  } else if(fine_vocabs.size() == 16) {\n    MultiIndexer<RerankADC16> indexer(multiplicity);\n    indexer.BuildMultiIndex(points_file, metainfo_file, points_count, coarse_vocabs, \n                            fine_vocabs, mode, build_coarse_quantizations,\n                            files_prefix, coarse_quantizations_file);  \n  }\n\n  gettimeofday(&end, NULL);\n  float time=0;\n  time += diff_timeval(end, start);\n  \n\n  ofstream out;\n  out.open(result_path.c_str(),ios::app);\n  out<<time <<\" #index_time \"<<index_param<<\" \"<<endl;\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/OPQ/src/make_project.bat",
    "content": "cd build\ndel CMakeCache.txt\ncmake -DMAKE_ONLY=BUILD_ALL  -G \"Visual Studio 10 Win64\"  ..\npause\n"
  },
  {
    "path": "algorithms/OPQ/src/multitable.hpp",
    "content": "/** @file */\n// Copyright 2012 Yandex Artem Babenko\n#pragma once\n\n#include <vector>\n\nusing std::vector;\n\n/**\n *  This class implements interface of multidimensional array with\n *  fast write/read operations. In fact data is stored in a long array.\n *  Global index of particular item in this array is calculated from item coordinates.\n */\ntemplate<class T>\nstruct Multitable {\n /**\n  *  This constructor gets width of table for each dimension\n  *  @param dimensions array of sizes of table along each dimension\n  */\n  Multitable(const vector<int>& dimensions = vector<int>());\n /**\n  *  This function resize the table to new dimensions\n  *  @param dimensions array of sizes of table along each dimension\n  */\n  void Resize(const vector<int>& dimensions, T value = T());\n /**\n  *  This function sets value in one cell\n  *  @param value value to set\n  *  @param cell_indices coordinates of cell in the table\n  */\n  void SetValue(T value, const vector<int>& cell_indices);\n /**\n  *  This function gets value of one cell\n  *  @param cell_indices coordinates of cell in the table\n  */\n  T GetValue(const vector<int>& cell_indices);\n /**\n  *  Actual data as one-dimensional array\n  */\n  vector<T> table;\n /**\n  *  Dimensions of table\n  */\n  vector<int> dimensions;\n /**\n  *  Function for Boost.Serialization\n  */\n  template<class Archive>\n  void serialize(Archive& arc, unsigned int version) {\n    arc & table;\n    arc & dimensions;\n  }\n /**\n  *  Function converts cell coordinates to global index in a long array\n  *  @param cell_indices coordinates of cell in the table\n  */\n  int GetCellGlobalIndex(const vector<int>& cell_indices) const;\n};\n\ntemplate<class T>\nint Multitable<T>::GetCellGlobalIndex(const vector<int>& indices) const {\n  if(indices.empty()) {\n    throw std::logic_error(\"Empty indices array!\");\n  }\n  int global_index = 0;\n  int subtable_capacity = table.size();\n  for(int dimension_index = 0; dimension_index < dimensions.size(); ++dimension_index) {\n    subtable_capacity = subtable_capacity / dimensions[dimension_index];\n    global_index += subtable_capacity * indices[dimension_index];\n  }\n  return global_index;\n}\n\ntemplate<class T>\nvoid Multitable<T>::Resize(const vector<int>& new_dimensions, T value) {\n  int table_size = 1;\n  dimensions = new_dimensions;\n  for(int dimension_index = 0; dimension_index < new_dimensions.size(); ++dimension_index) {\n    table_size *= new_dimensions[dimension_index];\n  }\n  table.resize(table_size, value);\n}\n\ntemplate<class T>\nMultitable<T>::Multitable(const vector<int>& dimensions) {\n  Resize(dimensions);\n}\n\ntemplate<class T>\nvoid Multitable<T>::SetValue(T value, const vector<int>& indices) {\n  int global_index = GetCellGlobalIndex(indices);\n  table.at(global_index) = value;\n}\n\ntemplate<class T>\nT Multitable<T>::GetValue(const vector<int>& indices) {\n  int global_index = GetCellGlobalIndex(indices);\n  return table.at(global_index);\n}"
  },
  {
    "path": "algorithms/OPQ/src/ordered_lists_merger.h",
    "content": "/** @file */\n// Copyright 2012 Yandex Artem Babenko\n#pragma once\n\n#include \"data_util.h\"\n#include \"multitable.hpp\"\n\n/**\n * \\typedef\n *  Typedef for indices of merged list element\n */\ntypedef vector<int> MergedItemIndices;\n\n/**\n * This class merges any number of ordered lists and yields\n * elements of merged list in Order-increasing order.\n * Initial lists are ordered by Order.\n * This class is used in multilist algorithm to get coordinates of cells in multiindex.\n * Class does not return the whole result list, it just yields by one item.\n * Class also assumes that input lists are the same length\n */\ntemplate<class OrderType, class MetaInfo>\nclass OrderedListsMerger {\n public:\n /**\n  *  This constructor inits merger for input lists\n  */\n  OrderedListsMerger();\n /**\n  * This function sets lists to merge\n  * @param lists input lists to merge (must be ordered)\n  */\n  void setLists(const vector<vector<pair<OrderType, MetaInfo> > >& lists);\n /**\n  * This function yields indices if next item of merged list.\n  * It returns \"false\" if all items have been already yielded and \"true\" otherwise\n  * @param merged_item_indices result indices\n  */\n  inline bool GetNextMergedItemIndices(MergedItemIndices* merged_item_indices);\n /**\n  * Pointer to input lists\n  */\n  const vector<vector<pair<OrderType, MetaInfo> > >* lists_ptr;\n /**\n  * Getter\n  */\n  Multitable<char>& GetYieldedItems() {\n    return yielded_items_indices_;\n  }\n private:\n /**\n  *  This function pushes new item into priority queue\n  * @param merged_item_indices indices of item to add\n  */\n  void InsertMergedItemIndicesInHeap(const MergedItemIndices& merged_item_indices);\n /**\n  * This function tries to update priority queue after yielding\n  * @param merged_item_indices new indices we should try to push in priority queue\n  */\n  void UpdatePrioirityQueue(MergedItemIndices& merged_item_indices);\n /**\n  *  Proirity queue for multilist algorithm \n  */\n  multimap<OrderType, MergedItemIndices> heap_;\n /**\n  *  Table with \"1\"-value for yielded items and \"0\"-value  otherwise\n  */\n  Multitable<char> yielded_items_indices_;\n};\n\n////////////////////      IMPLEMENTATION         //////////////////////////////////////////\n\ntemplate<class OrderType, class MetaInfo>\nOrderedListsMerger<OrderType, MetaInfo>::OrderedListsMerger() {\n}\n\ntemplate<class OrderType, class MetaInfo>\nvoid OrderedListsMerger<OrderType, MetaInfo>::InsertMergedItemIndicesInHeap(const MergedItemIndices& merged_item_indices) {\n  OrderType sum = 0;\n  for(int list_index = 0; list_index < lists_ptr->size(); ++list_index) {\n    sum += lists_ptr->at(list_index)[merged_item_indices[list_index]].first;\n  }\n  heap_.insert(std::make_pair(sum, merged_item_indices));\n}\n\ntemplate<class OrderType, class MetaInfo>\nvoid OrderedListsMerger<OrderType, MetaInfo>::setLists(const vector<vector<pair<OrderType, MetaInfo> > >& lists) {\n  lists_ptr = &lists;\n  heap_.clear();\n  MergedItemIndices first_item_indices(lists.size());\n  for(int list_index = 0; list_index < lists.size(); ++list_index) {\n    first_item_indices[list_index] = 0;\n  }\n  memset(&(yielded_items_indices_.table[0]), 0, yielded_items_indices_.table.size());\n  InsertMergedItemIndicesInHeap(first_item_indices);\n}\n\ntemplate<class OrderType, class MetaInfo>\nvoid OrderedListsMerger<OrderType, MetaInfo>::UpdatePrioirityQueue(MergedItemIndices& merged_item_indices) {\n  for(int list_index = 0; list_index < lists_ptr->size(); ++list_index) {\n    if(merged_item_indices[list_index] >= lists_ptr->at(list_index).size()) {\n      return;\n    }\n    int current_index = merged_item_indices[list_index];\n    merged_item_indices[list_index] -= 1;\n    if(current_index > 0 && !yielded_items_indices_.GetValue(merged_item_indices)) {\n      merged_item_indices[list_index] += 1;\n      return;\n    } else {\n      merged_item_indices[list_index] += 1;\n    }\n  }\n  InsertMergedItemIndicesInHeap(merged_item_indices);\n}\n\ntemplate<class OrderType, class MetaInfo>\ninline bool OrderedListsMerger<OrderType, MetaInfo>::GetNextMergedItemIndices(MergedItemIndices* next_merged_item_indices) {\n  if(heap_.empty()) {\n    return false;\n  }\n  *next_merged_item_indices = heap_.begin()->second;\n  yielded_items_indices_.SetValue(1, *next_merged_item_indices);\n  for(int list_index = 0; list_index < lists_ptr->size(); ++list_index) {\n    next_merged_item_indices->at(list_index) += 1;\n    UpdatePrioirityQueue(*next_merged_item_indices);\n    next_merged_item_indices->at(list_index) -= 1;\n  }\n  heap_.erase(heap_.begin());\n  return true;\n}\n\ntemplate class OrderedListsMerger<Distance, PointId>;\ntemplate class OrderedListsMerger<Distance, pair<ClusterId, ClusterId> >;"
  },
  {
    "path": "algorithms/OPQ/src/perfomance_util.cpp",
    "content": "// Copyright 2012 Yandex Artem Babenko\n#include \"perfomance_util.h\"\n\nextern string report_file;\n\nPerfTester::PerfTester() {\n  report_file_ = report_file;\n  current_points_count = 0;\n  handled_queries_count = 0;\n  cells_traversed = 0;\n  nearest_subcentroids_time = 0;\n  cache_init_time = 0;\n  merger_init_time = 0;\n  full_traversal_time = 0;\n  cell_coordinates_time = 0;\n  cell_edges_time = 0;\n  residual_time = 0;\n  refining_time = 0;\n  full_search_time = 0;\n\n  for(int i = 0; i < 21; ++i) {\n    list_length_thresholds_.push_back(std::pow(2.0, i));\n  }\n  current_threshold_index_ = 0;\n  list_length_times_.resize(list_length_thresholds_.size(), 0.0);\n}\n\nvoid PerfTester::ResetQuerywiseStatistic() {\n  current_threshold_index_ = 0;\n  current_points_count = 0;\n}\n\nvoid PerfTester::NextNeighbour() {\n  ++current_points_count;\n  if(current_points_count >= list_length_thresholds_[current_threshold_index_]) {\n    clock_t current_time = clock();\n    list_length_times_[current_threshold_index_] += current_time - search_start;\n    ++current_threshold_index_;\n  }\n}\n\nvoid PerfTester::DoReport(std::ofstream& out) {\n  out << \"Queries count: \"\n      << handled_queries_count << endl;\n  out << \"Average cells count: \"\n      << (double)cells_traversed / handled_queries_count << endl;\n  out << \"Average nearest subcentroids getting time: \"\n      << (double)nearest_subcentroids_time / handled_queries_count << endl;\n  out << \"Average cache init time: \"\n      << (double)cache_init_time / handled_queries_count << endl;\n  out << \"Average merger init time: \"\n      << (double)merger_init_time / handled_queries_count << endl;\n  out << \"Average full traversal time: \"\n      << (double)full_traversal_time / handled_queries_count << endl;\n  out << \"Average cells coordinates getting time: \"\n      << (double)cell_coordinates_time / handled_queries_count << endl;\n  out << \"Average cell edges getting time: \"\n      << (double)cell_edges_time/ handled_queries_count << endl;\n  out << \"Average residual time: \"\n      << (double)residual_time / handled_queries_count << endl;\n  out << \"Average refining time: \"\n      <<(double)refining_time / handled_queries_count << endl;\n  out << \"Average full search time: \"\n      << (double)full_search_time / handled_queries_count << endl;\n}\n\nvoid PerfTester::DoReport() {\n  std::ofstream out(report_file_.c_str(),ios::app);\n  DoReport(out);\n}\n\nint GetRecallAt(const int length, const vector<PointId>& groundtruth,\n                const vector<DistanceToPoint>& result) {\n  if(groundtruth.empty()) {\n    cout << \"Groundtruth is empty!\" << endl;\n    return 0;\n  }\n  for(int index = 0; index < length && index < result.size(); ++index) {\n    if(result[index].second == groundtruth[0]) {\n      return 1;\n    }\n  }\n  return 0;\n}\n\ndouble GetPresicionAt(const int length, const vector<PointId>& groundtruth,\n                      const vector<DistanceToPoint>& result) {\n \n  int found = 0;\n  std::set<PointId> ground_points;\n  for(int i = 0; i < groundtruth.size(); ++i) {\n      ground_points.insert(groundtruth[i]);\n  }\n  for(int index = 0; index < length && index < result.size() ; ++index) {\n    if(ground_points.find(result[index].second) != ground_points.end()) {\n      found += 1;\n    }\n  }\n  return (double)found/length; //\n}\n\ndouble GetRecall(int k, const vector<PointId>& groundtruth,\n                 const vector<DistanceToPoint>& result) {\n  if(groundtruth.empty()) {\n    cout << \"Groundtruth is empty!\" << endl;\n    return 0;\n  }\n  std::set<PointId> returned_points;\n  for(int i = 0; i < k; ++i) {\n      returned_points.insert(result[i].second);\n  }\n  double found = 0.0;\n  for(int index = 0; index < k; ++index) {\n      if(returned_points.find(groundtruth[index]) != returned_points.end()) {\n          found += 1;\n      }\n  }\n  return found/k;\n}\n\nfloat get_distance(Point data, Point query)\n{\n  float distance =0.0;\n  for(int i=0;i< data.size();i++)\n  {\n\t  float diff = data[i] - query[i];\n      distance += diff * diff;\n  }\n  return distance;\n}\nfloat compute_relative_distance_error(int k, const Points& dataset, const Point& query, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result)\n{\n\tfloat dist = 0.0;\n    for (int i = 0; i <k; ++i) //dists.rows\n\t{\n\t\tfloat d_qr = get_distance(dataset[result[i].second],query);   //query.cols\n\t\tfloat d_qg = get_distance(dataset[groundtruth[i]],query);\n        float d=(d_qr - d_qg)/d_qg;\n\t\tif(d<=4)\n\t\t\tdist += d;\n\t\telse\n\t\t\tdist += 4; \n    } \n\treturn dist/k;     \n}\n\nfloat compute_number_closer (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result)\n{        \n\tfloat rate = 0.0;\n\tfor (int gs_n=0;gs_n < k ;gs_n++)\n\t{\n\t\tfor(int re_n=0; re_n < k; re_n++)\n\t\t{\n\t\t\tif(groundtruth[gs_n]==result[re_n].second)\n\t\t\t{\n\t\t\t\trate += (float)(gs_n+1)/(re_n+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n    }\n    return rate / k;\n}\n\nfloat compute_mean_reciprocal_rank (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result)\n{\n\tfloat sum = 0;\n\tfloat rate = 0.0;\n\tfor(int re_n=0; re_n < k; re_n++)\n\t{\n\t\tif(groundtruth[0]==result[re_n].second)\n\t\t{\n\t\t\trate += 1.0/(re_n+1);\n\t\t\tbreak;\n\t\t}\n    }\n    return rate;\n}\n\nfloat compute_mean_average_precision (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result)\n{\n\tfloat rate = 0.0;\n\tint found_last = 0;\n\tstd::set<PointId> gnds;\n\tfor(int i=0; i <k; i++)\n\t{  \t\n      \tgnds.insert(groundtruth[i]);\n\t\tint count=0;\n\t\tfor(int j=0;j<=i;j++)\n      \t\tif(gnds.find(result[j].second) != gnds.end()) \n\t\t\t{\n\t\t\t\tcount ++;\n      \t\t}\n\t\trate += count*1.0 * (count-found_last)/(i+1);\n\t\tfound_last=count;\n    }\n    return rate / k;\n}\n\nfloat compute_discounted_culmulative_gain(int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result)\n{\n\tfloat rate = 0.0;\n\n\tstd::set<PointId> gnds;\n  \tfor(int i = 0; i <k; ++i) {\n      \tgnds.insert(groundtruth[i]);\n  \t}\n\tfor(unsigned i=0; i <k; i++)\n\t{\n      \tif(gnds.find(result[i].second) != gnds.end()) \n\t\t{\n         \trate += 1.0/log2(i+2);\n      \t}\n    }\n    return rate;\n}\n\n"
  },
  {
    "path": "algorithms/OPQ/src/perfomance_util.h",
    "content": "/** @file */\n// Copyright 2012 Yandex Artem Babenko\n#include <iostream>\n#include <set>\n#include <vector>\n\n#include \"data_util.h\"\n\nusing std::cout;\nusing std::endl;\nusing std::ofstream;\nusing std::pair;\nusing std::set;\nusing std::vector;\n\n/**\n * \\typedef\n *  Typedef for point identifier and distance from query\n */\ntypedef pair<Distance, PointId> DistanceToPoint;\n\n/**\n *  This simple class stores timing of search working process\n */\nclass PerfTester {\n public:\n  PerfTester();\n /**\n  *  Number of neighbours already found\n  */\n  int current_points_count;\n /**\n  *  Pretty report of timing\n  */\n  void DoReport();\n /**\n  *  Reset all prevoius statistic before\n  *  new query handling\n  */\n  void ResetQuerywiseStatistic();\n /**\n  *  Signal about next point\n  */\n  void NextNeighbour();\n /**\n  *  Number of handled queries\n  */\n  int handled_queries_count;\n /**\n  *  Number of traversed items of multiindex\n  */\n  int cells_traversed;\n  unsigned long long nearest_subcentroids_time;\n  unsigned long long cache_init_time;\n  unsigned long long merger_init_time;\n  unsigned long long full_traversal_time;\n  unsigned long long cell_coordinates_time;\n  unsigned long long cell_edges_time;\n  unsigned long long residual_time;\n  unsigned long long refining_time;\n  unsigned long long full_search_time;\n  unsigned long long search_start;\n private:\n  string report_file_;\n  void DoReport(ofstream& out);\n  vector<int> list_length_thresholds_;\n  int current_threshold_index_;\n  vector<float> list_length_times_;\n};\n\n/**\n *  This function returns recall at specified length\n * @param length specified size of search results\n * @param groundtruth groundtruth\n * @param result search results\n */\nint GetRecallAt(const int length, const vector<PointId>& groundtruth,\n                const vector<DistanceToPoint>& result);\n/**\n *  This function returns precision at specified length\n * @param length specified size of search results\n * @param groundtruth groundtruth\n * @param result search results\n */\ndouble GetPresicionAt(const int length, const vector<PointId>& groundtruth,\n                      const vector<DistanceToPoint>& result);\n\n/**\n *  This function returns recall at full length\n */\ndouble GetRecall(int k, const vector<PointId>& groundtruth,\n                 const vector<DistanceToPoint>& result);\n\nfloat get_distance(Point data, Point query);\n\nfloat compute_relative_distance_error(int k, const Points& dataset, const Point& query, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result);\n\nfloat compute_number_closer (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result);\n\nfloat compute_mean_reciprocal_rank (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result);\n\nfloat compute_mean_average_precision (int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result);\n\nfloat compute_discounted_culmulative_gain(int k, const vector<PointId>& groundtruth, const vector<DistanceToPoint>& result);\n\n\n\n"
  },
  {
    "path": "algorithms/OPQ/src/run_indexer.py",
    "content": "#!/usr/bin/python\nimport os\nimport datetime\nimport sys\n\n############# launch configuration #################\n\n# folder to keep built binaries in\nbuild_folder = './build_master'\n\n# number of threads to use (max = 32)\nthreads_count = 32\n\n# Multi-1 or Multi-2 or Multi-4\nmultiplicity = 2\n\n# Folder with BigAnn base\nbigann_root = '/home/liwen/Downloads/Dataset/SIFT1M/sift/'\n\n# input point type (BVEC or FVEC)\ninput_type = 'FVEC'\n\n# file with input point (.bvecs or .fvecs)\npoints_file = 'sift1M_base.fvecs'\n\n# prefix of all vocabs, coarse quantizations, etc.\nprefix = 'sift1M'\n\n# input points count\npoints_count = 1000000\n\n# dimension of input space\nspace_dim = 128\n\n# coarse vocabs size\ncoarse_vocabs_size = 16384\n\n# fine vocabs count\nfine_vocabs_count = 8\n\n# should we use residuals?\nuse_residuals = 1\n\n# should we calculate coarse quantizations?\nbuild_coarse = 1\n\n# postfix added by users to all multiindex files\nuser_added_postfix = ''\n\n##################################################\n\nmultiplicity_extension = ''\nif multiplicity == 1:\n    multiplicity_extension = 'single'\nif multiplicity == 2:\n    multiplicity_extension = 'double'\nif multiplicity == 4:\n    multiplicity_extension = 'quad'\n\ncoarse_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '.dat'\nfine_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '.dat'\nfilename_prefix = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + user_added_postfix\ncoarse_quantization_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + user_added_postfix + '_coarse_quantizations.bin'\n\nlaunch_time = datetime.datetime.now().strftime(\"%I_%M%p_%B_%d_%Y\")\nos.system('mkdir -p ' + build_folder + '/' + launch_time)\nos.system('cp ' + build_folder + '/indexer_launcher ' + build_folder + '/' + launch_time)\nos.system('cp run_indexer.py ' + build_folder + '/' + launch_time)\n\nlaunch_line = build_folder + '/' + launch_time + '/indexer_launcher '\nlaunch_line = launch_line + '--threads_count=' + str(threads_count) + ' '\nlaunch_line = launch_line + '--multiplicity=' + str(multiplicity) + ' '\nlaunch_line = launch_line + '--points_file=' + bigann_root + '/bases/' + points_file + ' '\nlaunch_line = launch_line + '--coarse_vocabs_file=' + bigann_root + '/coarse_vocabs/' + coarse_vocabs_filename + ' '\nlaunch_line = launch_line + '--fine_vocabs_file=' + bigann_root + '/fine_vocabs/' + fine_vocabs_filename + ' '\nlaunch_line = launch_line + '--input_point_type=' + input_type + ' '\nlaunch_line = launch_line + '--points_count=' + str(points_count) + ' '\nlaunch_line = launch_line + '--space_dim=' + str(space_dim) + ' '\nlaunch_line = launch_line + '--files_prefix=' + bigann_root + '/indices/' + filename_prefix + ' ' \nlaunch_line = launch_line + '--coarse_quantization_file=' + bigann_root + '/cq/' + coarse_quantization_filename + ' '\nlaunch_line = launch_line + '--metainfo_file=fake.txt' + ' '\nif use_residuals:\n    launch_line = launch_line + '--use_residuals' + ' '\nif build_coarse:\n    launch_line = launch_line + '--build_coarse' + ' '\n\nf = open(build_folder + '/' + launch_time + '/launch.sh', 'w')\nf.write(launch_line)\nf.close()\nos.system('nohup ' + launch_line + ' > ' + build_folder + '/' + launch_time + '/log.txt' + ' &')\nprint 'Log file: ' + build_folder + '/' + launch_time + '/log.txt'\n"
  },
  {
    "path": "algorithms/OPQ/src/run_indexer_vlad.py",
    "content": "#!/usr/bin/python\nimport os\nimport datetime\nimport sys\n\n############# launch configuration #################\n\n# folder to keep built binaries in\nbuild_folder = './build_master'\n\n# number of threads to use (max = 32)\nthreads_count = 32\n\n# Multi-1 or Multi-2 or Multi-4\nmultiplicity = 2\n\n# Folder with BigAnn base\nbigann_root = '/sata/ResearchData/BigAnn'\n\n# input point type (BVEC or FVEC)\ninput_type = 'FVEC'\n\n# file with input point (.bvecs or .fvecs)\npoints_file = 'vlad500K_base.fvecs'\n\n# prefix of all vocabs, coarse quantizations, etc.\nprefix = 'vlad500K'\n\n# input points count\npoints_count = 500000\n\n# dimension of input space\nspace_dim = 128\n\n# coarse vocabs size\ncoarse_vocabs_size = 4096\n\n# fine vocabs count\nfine_vocabs_count = 8\n\n# should we use residuals?\nuse_residuals = 1\n\n# should we calculate coarse quantizations?\nbuild_coarse = 1\n\n# postfix added by users to all multiindex files\nuser_added_postfix = ''\n\n##################################################\n\nmultiplicity_extension = ''\nif multiplicity == 1:\n    multiplicity_extension = 'single'\nif multiplicity == 2:\n    multiplicity_extension = 'double'\nif multiplicity == 4:\n    multiplicity_extension = 'quad'\n\ncoarse_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '.dat'\nfine_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '.dat'\nfilename_prefix = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + user_added_postfix\ncoarse_quantization_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + user_added_postfix + '_coarse_quantizations.bin'\n\nlaunch_time = datetime.datetime.now().strftime(\"%I_%M%p_%B_%d_%Y\")\nos.system('mkdir -p ' + build_folder + '/' + launch_time)\nos.system('cp ' + build_folder + '/indexer_launcher ' + build_folder + '/' + launch_time)\nos.system('cp run_indexer_vlad.py ' + build_folder + '/' + launch_time)\n\nlaunch_line = build_folder + '/' + launch_time + '/indexer_launcher '\nlaunch_line = launch_line + '--threads_count=' + str(threads_count) + ' '\nlaunch_line = launch_line + '--multiplicity=' + str(multiplicity) + ' '\nlaunch_line = launch_line + '--points_file=' + bigann_root + '/bases/' + points_file + ' '\nlaunch_line = launch_line + '--coarse_vocabs_file=' + bigann_root + '/coarse_vocabs/' + coarse_vocabs_filename + ' '\nlaunch_line = launch_line + '--fine_vocabs_file=' + bigann_root + '/fine_vocabs/' + fine_vocabs_filename + ' '\nlaunch_line = launch_line + '--input_point_type=' + input_type + ' '\nlaunch_line = launch_line + '--points_count=' + str(points_count) + ' '\nlaunch_line = launch_line + '--space_dim=' + str(space_dim) + ' '\nlaunch_line = launch_line + '--files_prefix=' + bigann_root + '/indices/' + filename_prefix + ' ' \nlaunch_line = launch_line + '--coarse_quantization_file=' + bigann_root + '/cq/' + coarse_quantization_filename + ' '\nlaunch_line = launch_line + '--metainfo_file=fake.txt' + ' '\nif use_residuals:\n    launch_line = launch_line + '--use_residuals' + ' '\nif build_coarse:\n    launch_line = launch_line + '--build_coarse' + ' '\n\nf = open(build_folder + '/' + launch_time + '/launch.sh', 'w')\nf.write(launch_line)\nf.close()\nos.system('nohup ' + launch_line + ' > ' + build_folder + '/' + launch_time + '/log.txt' + ' &')\nprint 'Log file: ' + build_folder + '/' + launch_time + '/log.txt'\n"
  },
  {
    "path": "algorithms/OPQ/src/run_searcher.py",
    "content": "#!/usr/bin/python\nimport os\nimport datetime\n\n############# launch configuration #################\n\n# folder to keep built binaries in\nbuild_folder = './build_master'\n\n\n# Folder with BigAnn base\nbigann_root = '/sata/ResearchData/BigAnn'\n\n# input query point type (BVEC or FVEC)\nquery_input_type = 'BVEC'\n\n# Multi-1 or Multi-2 or Multi-4\nmultiplicity = 2\n\n# prefix of all vocabs, coarse quantizations, etc.\nprefix = 'sift1M'\n\n# dimension of input space\nspace_dim = 128\n\n# coarse vocabs size\ncoarse_vocabs_size = 4096\n\n# fine vocabs count\nfine_vocabs_count = 8\n\n# should we use residuals?\nuse_residuals = 1\n\n# number of centroids handled in each subdimension\nsubspace_centroids_count = 1024\n\n# queries file\nqueries_file = 'sift1B_queries.bvecs'\n\n# groundtruth file\ngnd_file = 'sift1M_groundtruth.ivecs'\n\n# number of queries\nqueries_count = 1000\n\n# number of neighbors to seek\nneighbors_count = 10000\n\n# should we rerank ?\ndo_rerank = 1\n\n# postfix added by users to all multiindex files\nuser_added_postfix = ''\n\n##################################################\n\nmultiplicity_extension = ''\nif multiplicity == 1:\n    multiplicity_extension = 'single'\nif multiplicity == 2:\n    multiplicity_extension = 'double'\nif multiplicity == 4:\n    multiplicity_extension = 'quad'\n\ncoarse_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '.dat'\nfine_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '.dat'\nfilename_prefix = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + user_added_postfix\n\nlaunch_time = datetime.datetime.now().strftime(\"%I_%M_%S%p_%B_%d_%Y\")\nos.system('mkdir -p ' + build_folder + '/' + launch_time)\nos.system('cp ' + build_folder + '/searcher_tester ' + build_folder + '/' + launch_time)\nos.system('cp run_searcher.py ' + build_folder + '/' + launch_time)\nreport_filename = build_folder + '/' + launch_time + '/report'\n\nlaunch_line = build_folder + '/' + launch_time + '/searcher_tester '\nlaunch_line = launch_line + '--queries_file=' + bigann_root + '/bases/' + queries_file + ' '\nlaunch_line = launch_line + '--groundtruth_file=' + bigann_root + '/gnd/' + gnd_file + ' '\nlaunch_line = launch_line + '--coarse_vocabs_file=' + bigann_root + '/coarse_vocabs/' + coarse_vocabs_filename + ' '\nlaunch_line = launch_line + '--fine_vocabs_file=' + bigann_root + '/fine_vocabs/' + fine_vocabs_filename + ' '\nlaunch_line = launch_line + '--query_point_type=' + query_input_type + ' '\nlaunch_line = launch_line + '--queries_count=' + str(queries_count) + ' '\nlaunch_line = launch_line + '--neighbours_count=' + str(neighbors_count) + ' '\nlaunch_line = launch_line + '--subspaces_centroids_count=' + str(subspace_centroids_count) + ' '\nlaunch_line = launch_line + '--space_dim=' + str(space_dim) + ' '\nlaunch_line = launch_line + '--index_files_prefix=' + bigann_root + '/indices/' + filename_prefix + ' '\nlaunch_line = launch_line + '--report_file=' + report_filename + ' ' \nif use_residuals:\n    launch_line = launch_line + '--use_residuals' + ' '\nif do_rerank:\n    launch_line = launch_line + '--do_rerank' + ' '\n\nf = open(build_folder + '/' + launch_time + '/launch.sh', 'w')\nf.write(launch_line)\nf.close()\nlog_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '_' + str(neighbors_count) + '.txt'\nos.system('nohup ' + launch_line + ' > ' + build_folder + '/' + launch_time + '/' + log_filename + ' &')\nprint 'Log file: ' + build_folder + '/' + launch_time + '/' + log_filename \n"
  },
  {
    "path": "algorithms/OPQ/src/run_searcher_vlad.py",
    "content": "#!/usr/bin/python\nimport os\nimport datetime\n\n############# launch configuration #################\n\n# folder to keep built binaries in\nbuild_folder = './build_master'\n\n\n# Folder with BigAnn base\nbigann_root = '/sata/ResearchData/BigAnn'\n\n# input query point type (BVEC or FVEC)\nquery_input_type = 'FVEC'\n\n# Multi-1 or Multi-2 or Multi-4\nmultiplicity = 2\n\n# prefix of all vocabs, coarse quantizations, etc.\nprefix = 'vlad500K'\n\n# dimension of input space\nspace_dim = 128\n\n# coarse vocabs size\ncoarse_vocabs_size = 4096\n\n# fine vocabs count\nfine_vocabs_count = 8\n\n# should we use residuals?\nuse_residuals = 1\n\n# number of centroids handled in each subdimension\nsubspace_centroids_count = 4096\n\n# queries file\nqueries_file = 'vlad1M_queries.fvecs'\n\n# groundtruth file\ngnd_file = 'vlad500K_groundtruth.ivecs'\n\n# number of queries\nqueries_count = 1000\n\n# number of neighbors to seek\nneighbors_count = 10000\n\n# should we rerank ?\ndo_rerank = 0\n\n# postfix added by users to all multiindex files\nuser_added_postfix = ''\n\n##################################################\n\nmultiplicity_extension = ''\nif multiplicity == 1:\n    multiplicity_extension = 'single'\nif multiplicity == 2:\n    multiplicity_extension = 'double'\nif multiplicity == 4:\n    multiplicity_extension = 'quad'\n\ncoarse_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '.dat'\nfine_vocabs_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '.dat'\nfilename_prefix = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + user_added_postfix\n\nlaunch_time = datetime.datetime.now().strftime(\"%I_%M_%S%p_%B_%d_%Y\")\nos.system('mkdir -p ' + build_folder + '/' + launch_time)\nos.system('cp ' + build_folder + '/searcher_tester ' + build_folder + '/' + launch_time)\nos.system('cp run_searcher_vlad.py ' + build_folder + '/' + launch_time)\nreport_filename = build_folder + '/' + launch_time + '/report'\n\nlaunch_line = build_folder + '/' + launch_time + '/searcher_tester '\nlaunch_line = launch_line + '--queries_file=' + bigann_root + '/bases/' + queries_file + ' '\nlaunch_line = launch_line + '--groundtruth_file=' + bigann_root + '/gnd/' + gnd_file + ' '\nlaunch_line = launch_line + '--coarse_vocabs_file=' + bigann_root + '/coarse_vocabs/' + coarse_vocabs_filename + ' '\nlaunch_line = launch_line + '--fine_vocabs_file=' + bigann_root + '/fine_vocabs/' + fine_vocabs_filename + ' '\nlaunch_line = launch_line + '--query_point_type=' + query_input_type + ' '\nlaunch_line = launch_line + '--queries_count=' + str(queries_count) + ' '\nlaunch_line = launch_line + '--neighbours_count=' + str(neighbors_count) + ' '\nlaunch_line = launch_line + '--subspaces_centroids_count=' + str(subspace_centroids_count) + ' '\nlaunch_line = launch_line + '--space_dim=' + str(space_dim) + ' '\nlaunch_line = launch_line + '--index_files_prefix=' + bigann_root + '/indices/' + filename_prefix + ' '\nlaunch_line = launch_line + '--report_file=' + report_filename + ' ' \nif use_residuals:\n    launch_line = launch_line + '--use_residuals' + ' '\nif do_rerank:\n    launch_line = launch_line + '--do_rerank' + ' '\n\nf = open(build_folder + '/' + launch_time + '/launch.sh', 'w')\nf.write(launch_line)\nf.close()\nlog_filename = prefix + '_' + multiplicity_extension + '_' + str(coarse_vocabs_size) + '_' + str(fine_vocabs_count) + '_' + str(neighbors_count) + '.txt'\nos.system('nohup ' + launch_line + ' > ' + build_folder + '/' + launch_time + '/' + log_filename + ' &')\nprint 'Log file: ' + build_folder + '/' + launch_time + '/' + log_filename \n"
  },
  {
    "path": "algorithms/OPQ/src/searcher.h",
    "content": "/** @file */\n// Copyright 2012 Yandex Artem Babenko\n#ifndef SEARCHER_H_\n#define SEARCHER_H_\n\n#include <algorithm>\n#include <map>\n\n#include <boost/archive/binary_iarchive.hpp>\n#include <boost/archive/binary_oarchive.hpp>\n\n#include <boost/serialization/serialization.hpp>\n#include <boost/serialization/set.hpp>\n#include <boost/serialization/vector.hpp>\n\n#include <mkl_cblas.h>\n\n#include \"data_util.h\"\n#include \"ordered_lists_merger.h\"\n#include \"perfomance_util.h\"\n\nextern int THREADS_COUNT;\n\nextern Dimensions SPACE_DIMENSION;\n\nextern enum PointType point_type;\n\n//vector<vector <float> > dq_distance;\n//int query_id;\n\n/**\n * \\typedef This typedef is used in the first stage of search when\n * we get nearest centroids for each coarse subpace\n */\ntypedef vector<pair<Distance, ClusterId> > NearestSubspaceCentroids;\n\n/**\n * This is the main class for nearest neighbour search using multiindex\n */\ntemplate<class Record, class MetaInfo>\nclass MultiSearcher {\n public:\n\n /**\n  * Default constructor\n  */\n  MultiSearcher();\n /**\n  * Initiation function\n  * @param index_files_prefix prefix of multiindex files providing the search\n  * @param coarse_vocabs_filename file with coarse vocabs\n  * @param fine_vocabs_filename file with fine vocabs for reranking\n  * @param mode reranking approach\n  * @param do_rerank should algorithm rerank short list or not\n  */\n  void Init(const string& index_files_prefix,\n            const string& coarse_vocabs_filename,\n            const string& fine_vocabs_filename,\n            const RerankMode& mode,\n            const int subspace_centroids_to_consider,\n            bool do_rerank,int use_originaldata);\n /**\n  * Main interface function\n  * @param point query point\n  * @param k number of neighbours to get\n  * @param subpace_centroids_to_consider it defines the size of working index table\n  * @param neighbours result - vector of point identifiers ordered by increasing of distance to query\n  */\n  //void GetNearestNeighbours(const Point& point, int k, vector<pair<Distance, MetaInfo> >* neighbours) const;\n\n  //add for real reranking\n  void GetNearestNeighbours(const Point& point, int k, \n                            vector<pair<Distance, MetaInfo> >* neighbours,const Points& dataset) const;\n /**\n  * Returns searcher perfomance tester\n  */\n  PerfTester& GetPerfTester();\n private:\n /**\n  * This functions deserializes all structures for search\n  * @param index_files_prefix prefix of multiindex files providing the search\n  * @param coarse_vocabs_filename file with coarse vocabs\n  * @param fine_vocabs_filename file with fine vocabs for reranking\n  */\n  void DeserializeData(const string& index_files_prefix,\n                       const string& coarse_vocabs_filename,\n                       const string& fine_vocabs_filename);\n /**\n  * Function gets some nearest centroids for each coarse subspace\n  * @param point query point\n  * @param subspace_centroins_count how many nearest subcentroids to get\n  * @param subspaces_short_lists result\n  */\n  void GetNearestSubspacesCentroids(const Point& point,\n                                    const int subspace_centroins_count,\n                                    vector<NearestSubspaceCentroids>* subspaces_short_lists) const;\n\n /**\n  * This fuctions traverses another cell of multiindex table \n  * @param point query point\n  * @param nearest_subpoints vector algorithm adds nearest neighbours in\n  */\n  bool TraverseNextMultiIndexCell(const Point& point,\n                                  vector<pair<Distance, MetaInfo> >* nearest_subpoints,const Points& dataset) const;\n /**\n  * This fuctions converts cells coordinates to appropriate range in array \n  * @param cell_coordinates coordinates of the cell\n  * @param cell_start first index of range\n  * @param cell_finish last index of range\n  */\ninline void GetCellEdgesInMultiIndexArray(const vector<int>& cell_coordinates,\n                                          int* cell_start, int* cell_finish) const;\n /**\n  * This fuctions converts complex objects to arrays and\n  * pointers for usage in BLAS\n  */\n  void InitBlasStructures();\n /**\n  * Lists of coarse centroids\n  */\n  vector<Centroids> coarse_vocabs_;\n /**\n  * Lists of fine centroids\n  */\n  vector<Centroids> fine_vocabs_;\n /**\n  * Merger for ordered merging subspaces centroids lists\n  */\n  mutable OrderedListsMerger<Distance, ClusterId> merger_;\n /**\n  * Should algorithm use reranking or not\n  */\n  bool do_rerank_;\n /**\n  * Searcher perfomance tester\n  */\n  mutable PerfTester perf_tester_;\n /**\n  * Common prefix of every index files\n  */\n  string index_files_prefix_;\n /**\n  * Multiindex data structures\n  */\n  MultiIndex<Record> multiindex_;\n /**\n  * Reranking approach\n  */\n  RerankMode rerank_mode_;\n /**\n  * Struct for BLAS\n  */\n  vector<float*> coarse_vocabs_matrices_;\n /**\n  * Struct for BLAS\n  */\n  vector<vector<float> > coarse_centroids_norms_;\n\n  ///\n /*** Struct for BLAS\n  */\n  mutable Coord* products_;\n /**\n  * Struct for BLAS\n  */\n  mutable vector<Coord> query_norms_;\n /**\n  * Struct for BLAS\n  */\n  mutable float* residual_;\n /**\n  * Number of nearest to query centroids\n  * to consider for each dimension\n  */\n  int subspace_centroids_to_consider_;\n\n  int use_originaldata_;\n\n  //\nmutable int query_id;\n /**\n  * Number of neighbours found to this moment\n  */\n  mutable int found_neghbours_count_;\n};\n\ntemplate<class Record, class MetaInfo>\ninline void RecordToMetainfoAndDistance(const Coord* point,\n                                        const Record& record,\n                                        pair<Distance, MetaInfo>* result,\n                                        const vector<int>& cell_coordinates,\n                                        const vector<Centroids>& fine_vocabs,const Points& dataset,int use_originaldata_) {\n}\n\n/////////////// IMPLEMENTATION /////////////////////\n\ntemplate<class Record, class MetaInfo>\nMultiSearcher<Record, MetaInfo>::MultiSearcher() {\n}\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::DeserializeData(const string& index_files_prefix,\n                                                      const string& coarse_vocabs_filename,\n                                                      const string& fine_vocabs_filename) {\n  cout << \"Data deserializing started...\\n\";\n  ifstream cell_edges(string(index_files_prefix + \"_cell_edges.bin\").c_str(), ios::binary);\n  if(!cell_edges.good()) {\n    throw std::logic_error(\"Bad input cell edges stream\");\n  }\n  boost::archive::binary_iarchive arc_cell_edges(cell_edges);\n  arc_cell_edges >> multiindex_.cell_edges;\n  cout << \"Cell edges deserialized...\\n\";\n  ifstream multi_array(string(index_files_prefix + \"_multi_array.bin\").c_str(), ios::binary);\n  if(!multi_array.good()) {\n    throw std::logic_error(\"Bad input cell edges stream\");\n  }\n  boost::archive::binary_iarchive arc_multi_array(multi_array);\n  arc_multi_array >> multiindex_.multiindex;\n  cout << \"Multiindex deserialized...\\n\";\n  ReadVocabularies<float>(coarse_vocabs_filename, SPACE_DIMENSION, &coarse_vocabs_);\n  /*for(int i=0;i<2;i++)\n  {\n\t  int sum=0;\n\t for(int j=0;j<coarse_vocabs_[i].size();j++)\n\t {\n\t\tsum+=coarse_vocabs_[i][j].size();\n\t\tcout<<i<<\" \"<<j<<\" \"<<coarse_vocabs_[i][j].size()<<endl;\n\t }\n\t cout<<\"sum:\"<<sum<<endl;\n  }*/\n  cout << \"Coarse vocabs deserialized...\\n\";\n  ReadFineVocabs<float>(fine_vocabs_filename, &fine_vocabs_);\n  cout << \"Fine vocabs deserialized...\\n\";\n}\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::Init(const string& index_files_prefix,\n                                           const string& coarse_vocabs_filename,\n                                           const string& fine_vocabs_filename,\n                                           const RerankMode& mode,\n                                           const int subspace_centroids_to_consider,\n                                           const bool do_rerank,int use_originaldata) {\n  do_rerank_ = do_rerank;\n  use_originaldata_=use_originaldata;\n  index_files_prefix_ = index_files_prefix;\n  subspace_centroids_to_consider_ = subspace_centroids_to_consider;\n  DeserializeData(index_files_prefix, coarse_vocabs_filename, fine_vocabs_filename);\n  rerank_mode_ = mode;\n  merger_.GetYieldedItems().table.resize(std::pow((float)subspace_centroids_to_consider,\n\t\t                                         (int)coarse_vocabs_.size()));\n  for(int i = 0; i < coarse_vocabs_.size(); ++i) {\n    merger_.GetYieldedItems().dimensions.push_back(subspace_centroids_to_consider);\n  }\n  InitBlasStructures();\n}\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::InitBlasStructures(){\n  coarse_vocabs_matrices_.resize(coarse_vocabs_.size());\n  coarse_centroids_norms_.resize(coarse_vocabs_.size(), vector<float>(coarse_vocabs_[0].size()));\n  for(int coarse_id = 0; coarse_id < coarse_vocabs_matrices_.size(); ++coarse_id) {\n    coarse_vocabs_matrices_[coarse_id] = new float[coarse_vocabs_[0].size() * coarse_vocabs_[0][0].size()];\n    for(int i = 0; i < coarse_vocabs_[0].size(); ++i) {\n      Coord norm = 0;\n      for(int j = 0; j < coarse_vocabs_[0][0].size(); ++j) {\n        coarse_vocabs_matrices_[coarse_id][coarse_vocabs_[0][0].size() * i + j] = coarse_vocabs_[coarse_id][i][j];\n        norm += coarse_vocabs_[coarse_id][i][j] * coarse_vocabs_[coarse_id][i][j];\n      }\n      coarse_centroids_norms_[coarse_id][i] = norm;\n    }\n  }\n  products_ = new Coord[coarse_vocabs_[0].size()];\n  query_norms_.resize(coarse_vocabs_[0].size());\n  residual_ = new Coord[coarse_vocabs_[0][0].size() * coarse_vocabs_.size()];\n}\n\ntemplate<class Record, class MetaInfo>\nPerfTester& MultiSearcher<Record, MetaInfo>::GetPerfTester() {\n  return perf_tester_;\n}\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::GetNearestSubspacesCentroids(const Point& point,\n                                                                   const int subspace_centroins_count,\n                                                                   vector<NearestSubspaceCentroids>*\n                                                                   subspaces_short_lists) const {\n  std::stringstream aa;\n  subspaces_short_lists->resize(coarse_vocabs_.size());\n  Dimensions subspace_dimension = point.size() / coarse_vocabs_.size();\n  for(int subspace_index = 0; subspace_index < coarse_vocabs_.size(); ++subspace_index) {\n    Dimensions start_dim = subspace_index * subspace_dimension;\n    Dimensions final_dim = std::min((Dimensions)point.size(), start_dim + subspace_dimension);\n    Coord query_norm = cblas_sdot(final_dim - start_dim, &(point[start_dim]), 1, &(point[start_dim]), 1);\n    std::fill(query_norms_.begin(), query_norms_.end(), query_norm);\n    cblas_saxpy(coarse_vocabs_[0].size(), 1, &(coarse_centroids_norms_[subspace_index][0]), 1, &(query_norms_[0]), 1);\n    cblas_sgemv(CblasRowMajor, CblasNoTrans, coarse_vocabs_[0].size(), subspace_dimension, -2.0,\n                coarse_vocabs_matrices_[subspace_index], subspace_dimension, &(point[start_dim]), 1, 1, &(query_norms_[0]), 1);\n    subspaces_short_lists->at(subspace_index).resize(query_norms_.size());\n    for(int i = 0; i < query_norms_.size(); ++i) {\n      subspaces_short_lists->at(subspace_index)[i] = std::make_pair(query_norms_[i], i);\n    }\n    std::nth_element(subspaces_short_lists->at(subspace_index).begin(),\n                     subspaces_short_lists->at(subspace_index).begin() + subspace_centroins_count,\n                     subspaces_short_lists->at(subspace_index).end());\n    subspaces_short_lists->at(subspace_index).resize(subspace_centroins_count);\n    std::sort(subspaces_short_lists->at(subspace_index).begin(),\n              subspaces_short_lists->at(subspace_index).end());\n  }\n}\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::GetCellEdgesInMultiIndexArray(const vector<int>& cell_coordinates,\n                                                                    int* cell_start, int* cell_finish) const {\n  int global_index = multiindex_.cell_edges.GetCellGlobalIndex(cell_coordinates);\n  *cell_start = multiindex_.cell_edges.table[global_index];\n  if(global_index + 1 == multiindex_.cell_edges.table.size()) {\n    *cell_finish = multiindex_.multiindex.size();\n  } else {\n    *cell_finish = multiindex_.cell_edges.table[global_index + 1];\n  }\n}\n\ntemplate<class Record, class MetaInfo>\nbool MultiSearcher<Record, MetaInfo>::TraverseNextMultiIndexCell(const Point& point,\n                                                                 vector<pair<Distance, MetaInfo> >*\n                                                                             nearest_subpoints,const Points& dataset) const {\n  MergedItemIndices cell_inner_indices;\n  clock_t before = clock();\n  if(!merger_.GetNextMergedItemIndices(&cell_inner_indices)) {\n    return false;\n  }\n  clock_t after = clock();\n  perf_tester_.cell_coordinates_time += after - before;\n  vector<int> cell_coordinates(cell_inner_indices.size());\n  for(int list_index = 0; list_index < merger_.lists_ptr->size(); ++list_index) {\n    cell_coordinates[list_index] = merger_.lists_ptr->at(list_index)[cell_inner_indices[list_index]].second;\n  }\n  int cell_start, cell_finish;\n  before = clock();\n  GetCellEdgesInMultiIndexArray(cell_coordinates, &cell_start, &cell_finish);\n  after = clock();\n  perf_tester_.cell_edges_time += after - before;\n  if(cell_start >= cell_finish) {\n    return true;\n  }\n  typename vector<Record>::const_iterator it = multiindex_.multiindex.begin() + cell_start;\n  GetResidual(point, cell_coordinates, coarse_vocabs_, residual_);\n  cell_finish = std::min((int)cell_finish, cell_start + (int)nearest_subpoints->size() - found_neghbours_count_);\n  for(int array_index = cell_start; array_index < cell_finish; ++array_index) {\n    if(rerank_mode_ == USE_RESIDUALS) {\n      RecordToMetainfoAndDistance<Record, MetaInfo>(residual_, *it,\n                                                    &(nearest_subpoints->at(found_neghbours_count_)),\n                                                    cell_coordinates, fine_vocabs_,dataset,use_originaldata_);\n    } else if(rerank_mode_ == USE_INIT_POINTS) {\n      RecordToMetainfoAndDistance<Record, MetaInfo>(&(point[0]), *it,\n                                                    &(nearest_subpoints->at(found_neghbours_count_)),\n                                                    cell_coordinates, fine_vocabs_, dataset,use_originaldata_);\n    }\n    perf_tester_.NextNeighbour();\n    ++found_neghbours_count_;\n    ++it;\n  }\n  return true;\n}\n\n\ntemplate<class Record, class MetaInfo>\nvoid MultiSearcher<Record, MetaInfo>::GetNearestNeighbours(const Point& point, int k, \n                                                           vector<pair<Distance, MetaInfo> >* neighbours, const Points& dataset) const {\n  \n  assert(k > 0);\n  perf_tester_.handled_queries_count += 1;\n  neighbours->resize(k);\n  perf_tester_.ResetQuerywiseStatistic();\n  clock_t start = clock();\n  perf_tester_.search_start = start;\n  clock_t before = clock();\n  vector<NearestSubspaceCentroids> subspaces_short_lists;\n  assert(subspace_centroids_to_consider_ > 0);\n  GetNearestSubspacesCentroids(point, subspace_centroids_to_consider_, &subspaces_short_lists);\n  clock_t after = clock();\n  perf_tester_.nearest_subcentroids_time += after - before;\n  clock_t before_merger = clock();\n  merger_.setLists(subspaces_short_lists);\n  clock_t after_merger = clock();\n  perf_tester_.merger_init_time += after_merger - before_merger;\n  clock_t before_traversal = clock();\n  found_neghbours_count_ = 0;\n  bool traverse_next_cell = true;\n  int cells_visited = 0;\n  while(found_neghbours_count_ < k && traverse_next_cell) {\n    perf_tester_.cells_traversed += 1;\n    traverse_next_cell = TraverseNextMultiIndexCell(point, neighbours,dataset);\n    cells_visited += 1;\n  }\n  clock_t after_traversal = clock();\n  perf_tester_.full_traversal_time += after_traversal - before_traversal;\n  if(do_rerank_) {\n   std::sort(neighbours->begin(), neighbours->end());\n  }\n  clock_t finish = clock();\n  perf_tester_.full_search_time += finish - start;\n  \n}\n\ntemplate<>\ninline void RecordToMetainfoAndDistance<RerankADC8, PointId>(const Coord* point, const RerankADC8& record,\n                                                             pair<Distance, PointId>* result,\n                                                             const vector<int>& cell_coordinates,\n                                                             const vector<Centroids>& fine_vocabs,const Points& dataset,int use_originaldata_) {\n \n  result->second = record.pid;\n  if(use_originaldata_ ==1)\n  {\n  \tDistance distance = 0;\n  \tPoint data=dataset[record.pid];\n  \tfor(int i=0;i<SPACE_DIMENSION;i++)\n  \t{\n\t  \tCoord diff = data[i] - point[i];\n      \tdistance += diff * diff;\n  \t}\n  \tresult->first= distance;\n  }\n  else\n  {\n  int coarse_clusters_count = cell_coordinates.size();\n  int fine_clusters_count = fine_vocabs.size();\n  int coarse_to_fine_ratio = fine_clusters_count / coarse_clusters_count;\n  int subvectors_dim = SPACE_DIMENSION / fine_clusters_count;\n  char* rerank_info_ptr = (char*)&record + sizeof(record.pid);\n  for(int centroid_index = 0; centroid_index < fine_clusters_count; ++centroid_index) {\n    int start_dim = centroid_index * subvectors_dim;\n    int final_dim = start_dim + subvectors_dim;\n    FineClusterId pid_nearest_centroid = *((FineClusterId*)rerank_info_ptr);\n    rerank_info_ptr += sizeof(FineClusterId);\n    int current_coarse_index = centroid_index / coarse_to_fine_ratio;\n    Distance subvector_distance = 0;\n    for(int i = start_dim; i < final_dim; ++i) {\n      Coord diff = fine_vocabs[centroid_index][pid_nearest_centroid][i - start_dim] - point[i];\n        subvector_distance += diff * diff;\n    }\n    result->first += subvector_distance;\n  }\n}\n \n}\n\ntemplate<>\ninline void RecordToMetainfoAndDistance<RerankADC16, PointId>(const Coord* point, const RerankADC16& record,\n                                                              pair<Distance, PointId>* result,\n                                                              const vector<int>& cell_coordinates,\n                                                              const vector<Centroids>& fine_vocabs,const Points& dataset,int use_originaldata_) {\nresult->second = record.pid;\nif(use_originaldata_ == 1)\n{\n  Distance distance = 0;\n  Point data=dataset[record.pid];\n  for(int i=0;i<SPACE_DIMENSION;i++)\n  {\n\t  Coord diff = data[i] - point[i];\n      distance += diff * diff;\n  }\n  result->first= distance;\n}\nelse\n{\n  int coarse_clusters_count = cell_coordinates.size();\n  int fine_clusters_count = fine_vocabs.size();\n  int coarse_to_fine_ratio = fine_clusters_count / coarse_clusters_count;\n  int subvectors_dim = SPACE_DIMENSION / fine_clusters_count;\n  char* rerank_info_ptr = (char*)&record + sizeof(record.pid);\n  for(int centroid_index = 0; centroid_index < fine_clusters_count; ++centroid_index) {\n    int start_dim = centroid_index * subvectors_dim;\n    int final_dim = start_dim + subvectors_dim;\n    FineClusterId pid_nearest_centroid = *((FineClusterId*)rerank_info_ptr);\n    rerank_info_ptr += sizeof(FineClusterId);\n    int current_coarse_index = centroid_index / coarse_to_fine_ratio;\n    Distance subvector_distance = 0;\n    for(int i = start_dim; i < final_dim; ++i) {\n      Coord diff = fine_vocabs[centroid_index][pid_nearest_centroid][i - start_dim] - point[i];\n      subvector_distance += diff * diff;\n    }\n    result->first += subvector_distance;\n  }\n}\n\n}\n\ntemplate class MultiSearcher<RerankADC8, PointId>;\ntemplate class MultiSearcher<RerankADC16, PointId>;\ntemplate class MultiSearcher<PointId, PointId>;\n\n#endif\n\n"
  },
  {
    "path": "algorithms/OPQ/src/searcher_tester.cpp",
    "content": "// Copyright 2012 Yandex Artem Babenko\n#include <iostream>\n\n#include <boost/program_options.hpp>\n#include <sys/time.h>\n#include <mkl.h>\n\n#include \"searcher.h\"\n#include \"indexer.h\"\n\nusing namespace boost::program_options;\nusing std::endl;\nusing std::ofstream;\n\n/**\n * Number of threads for indexing\n */\nDimensions SPACE_DIMENSION;\n/**\n * File with vocabularies for multiindex structure\n */\nstring coarse_vocabs_file;\n/**\n * File with vocabularies for reranking\n */\nstring fine_vocabs_file;\n/**\n * Reranking approach, should be USE_RESIDUALS or USE_INIT_POINTS\n */\nRerankMode mode;\n/**\n * Common prefix of all multiindex files\n */\nstring index_files_prefix;\n/**\n * File with queries (.bvec or .fvec)\n */\nstring queries_file;\n/**\n * Type, should be BVEC or FVEC\n */\nPointType query_point_type;\n/**\n * File with groundtruth (.ivec)\n */\nstring groundtruth_file;\n/**\n * Number of queries to search\n */\nint queries_count;\n/**\n * Should we rerank?\n */\nbool do_rerank;\n/**\n * Number of neighbours to look over\n */\nint neighbours_count;\n/**\n * File to write report in\n */\nstring report_file;\n/**\n * Number of nearest centroids for each group of dimensions to handle\n */\nint subspaces_centroids_count;\n\nstring data_file;\nint data_count;\n\nint use_originaldata;\n\nint k;\n\nint SetOptions(int argc, char** argv) {\n  options_description description(\"Options\");\n  description.add_options()\n    (\"index_files_prefix,i\", value<string>())\n    (\"queries_file,q\", value<string>())\n    (\"queries_count,n\", value<int>())\n    (\"neighbours_count,k\", value<int>())\n    (\"groundtruth_file,g\", value<string>())\n    (\"data_file,a\", value<string>())\n\t(\"data_count,m\", value<int>())\n    (\"coarse_vocabs_file,c\", value<string>())\n    (\"fine_vocabs_file,f\", value<string>())\n    (\"query_point_type,t\", value<string>())\n    (\"use_residuals,r\", value<int>())\n    (\"do_rerank,l\", value<int>()) \n    (\"report_file,o\", value<string>())\n    (\"space_dim,D\", value<int>())\n\t(\"dim,d\", value<int>())\n\t(\"use_originaldata,u\", value<int>())\n    (\"subspaces_centroids_count,s\", value<int>())\n    (\"k_neighbors,K\", value<int>());\n\n  variables_map name_to_value;\n  try {\n    store(command_line_parser(argc, argv).options(description).run(), name_to_value);\n  } catch (const invalid_command_line_syntax &inv_syntax) {\n    switch (inv_syntax.kind()) {\n      case invalid_syntax::missing_parameter :\n        cout << \"Missing argument for option '\" << inv_syntax.tokens() << \"'.\\n\";\n        break;\n      default:\n        cout << \"Syntax error, kind \" << int(inv_syntax.kind()) << \"\\n\";\n        break;\n       };\n    return 1;\n  } catch (const unknown_option &unkn_opt) {\n    cout << \"Unknown option '\" << unkn_opt.get_option_name() << \"'\\n\";\n    return 1;\n  }\n  if (name_to_value.count(\"help\")) {\n    cout << description << \"\\n\";\n    return 1;\n  }\n\n  coarse_vocabs_file =         name_to_value[\"coarse_vocabs_file\"].as<string>();\n  fine_vocabs_file =           name_to_value[\"fine_vocabs_file\"].as<string>();\n  SPACE_DIMENSION =            name_to_value[\"dim\"].as<int>();\n  index_files_prefix =         name_to_value[\"index_files_prefix\"].as<string>();\n  queries_file =               name_to_value[\"queries_file\"].as<string>();\n  report_file =                name_to_value[\"report_file\"].as<string>();\n  groundtruth_file =           name_to_value[\"groundtruth_file\"].as<string>();\n  queries_count =              name_to_value[\"queries_count\"].as<int>();\n  neighbours_count =           name_to_value[\"neighbours_count\"].as<int>();\n  subspaces_centroids_count =  name_to_value[\"subspaces_centroids_count\"].as<int>();\n  data_file=                   name_to_value[\"data_file\"].as<string>();\n  data_count =                 name_to_value[\"data_count\"].as<int>();\n  use_originaldata =           name_to_value[\"use_originaldata\"].as<int>();\n  k =                          name_to_value[\"k_neighbors\"].as<int>();\n\n  do_rerank =                  (name_to_value[\"do_rerank\"].as<int>() == 0) ? true : false;\n  //cout<< \"rerank:\"<<do_rerank<<endl;\n  mode =                       (name_to_value[\"use_residuals\"].as<int>() == 0) ? USE_RESIDUALS : USE_INIT_POINTS;\n\n  if (name_to_value[\"query_point_type\"].as<string>() == \"FVEC\") {\n    query_point_type = FVEC;\n  } else if(name_to_value[\"query_point_type\"].as<string>() == \"BVEC\") {\n    query_point_type = BVEC;\n  }\n  return 0;\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\ntemplate<class TSearcher>\nvoid TestSearcher(TSearcher& searcher,\n                  const Points& queries,\n                  const vector<vector<PointId> >& groundtruth,const Points& dataset) {\n    searcher.Init(index_files_prefix, coarse_vocabs_file,\n                fine_vocabs_file, mode,\n                subspaces_centroids_count,\n                do_rerank,use_originaldata); //,use_originaldata\n\n\tstd::ofstream out(report_file.c_str(),ios::app);\n\n    vector< vector< DistanceToPoint> > result;\n    result.resize(queries_count);\n    timeval start;\n\ttimeval end;\n    float time=0;\n\n  \tgettimeofday(&start, NULL);\n    for(int i = 0; i < queries_count; ++i) //queries_count\n    {\n    \tsearcher.GetNearestNeighbours(queries[i],neighbours_count, &result[i],dataset);\n    }\n  \tgettimeofday(&end, NULL);\n  \ttime += diff_timeval(end, start);\n    float recall = 0.0;\n\tfor(int i = 0; i < queries_count; ++i) //queries_count\n    {\n      recall += GetRecall(k,groundtruth[i],result[i]);\n\t}\n\n\trecall = recall/queries_count;\n\ttime= time/queries_count ;\n\t\n    out.setf(ios::fixed);  \n    out << recall<<\" \"<< time<<\" #N_\"<<neighbours_count<<\" \"<<endl;  \n}\n\nint main(int argc, char** argv) {\n  SetOptions(argc, argv);\n  cout << \"Options are set ...\\n\";\n\n  Points queries;\n  if(query_point_type == BVEC) {\n    ReadPoints<unsigned char, Coord>(queries_file, &queries, queries_count);\n  } else if (query_point_type == FVEC) {\n    ReadPoints<float, Coord>(queries_file, &queries, queries_count);\n  }\n  //dataset\n  Points dataset;\n  ReadPoints<float, Coord>(data_file, &dataset, data_count);\n  cout << \"Queries are read ...\\n\";\n  vector<vector<PointId> > groundtruth;\n  ReadPoints<int, PointId>(groundtruth_file, &groundtruth, queries_count);\n  MKL_Set_Num_Threads(1);\n\n  cout << \"Groundtruth is read ...\\n\";\n  vector<Centroids> fine_vocabs;\n  ReadFineVocabs<float>(fine_vocabs_file, &fine_vocabs);\n  if(fine_vocabs.size() == 8) {\n    MultiSearcher<RerankADC8, PointId> searcher;\n    TestSearcher<MultiSearcher<RerankADC8, PointId> > (searcher, queries, groundtruth,dataset);\n  } else if(fine_vocabs.size() == 16) {\n    MultiSearcher<RerankADC16, PointId> searcher;\n    TestSearcher<MultiSearcher<RerankADC16, PointId> > (searcher, queries, groundtruth,dataset);\n  }\n\n  return 0;\n}\n"
  },
  {
    "path": "algorithms/QALSH/Makefile",
    "content": "SRCS=src/util.cpp src/random.cpp src/block_file.cpp src/b_node.cpp \\\nsrc/b_tree.cpp src/qalsh.cpp src/ann.cpp src/main.cpp\n\nOBJS=$(SRCS:.cpp=.o)\n\nCXX?=g++ -std=c++11\nCPPFLAGS=-w -O3\n\n.PHONY: clean\n\nall: $(OBJS)\n\t$(CXX) -o qalsh $(OBJS)\n\nutil.o: src/util.h\n\nrandom.o: src/random.h\n\nblock_file.o: src/block_file.h\n\nb_node.o: src/b_node.h\n\nb_tree.o: src/b_tree.h\n\nqalsh.o: src/qalsh.h\n\nann.o: src/ann.h\n\nmain.o:\n\nclean:\n\t-rm $(OBJS) qalsh\n"
  },
  {
    "path": "algorithms/QALSH/README.md",
    "content": "QALSH\n====================================================================================================\n\nis a package written in the C++ programming language. It provides a randomized access method for the c-Approximate Nearest Neighbor (or simply c-ANN) search in the high dimensional Euclidean space, where c is an approximation ratio. QALSH is based on the [Query-Aware Locality-Sensitive Hashing](http://www.vldb.org/pvldb/vol9/p1-huang.pdf) scheme.\n\nPrerequisites.\n------------------\n\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- A linux system \n- [A sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including its data points, query points and ground truth results. Note that we need to change data format later. All data files downloaded should be put the `./knn_benchmark/data` directory.\n\n\nHow to use QALSH\n--------------\n\n1. Compile the program (QALSH)\n\n```\n% make all\n```\n\n2. Build Index (QALSH/script)\n\n```\n% build.sh\n```\n3. Conduct search (QALSH/script)\n\n```\n% search.sh\n```\n\n\nData Format\n-----------\n\n1. Data file should contain _n_ lines, where _n_ is the cardinality of the\n   dataset. The file should be formatted as:\n\n```\ne_1_1 e_1_2 ... e_1_d\n...\ne_n_1 e_n_2 ... e_n_d\n```\n  \n  where `e_i_j`s are integers, and are separated by whitespace.\n\n2. Query file should contain _N+1_ lines, where _N_ is the number of queries in the\n   query workload. The file should be formatted as:\n  \n```\nN d\nID_1 e_1_1 e_1_2 ... e_1_d\n...\nID_N e_N_1 e_N_2 ... e_N_d\n```\n  where _d_ is the dimensionality, `e_i_j` is an integer, and separated by whitespace.\n\n\n"
  },
  {
    "path": "algorithms/QALSH/script/build.sh",
    "content": "data_path=../../../data\nindex_path=../index\nmkdir ${index_path}\n\nfor data in \"audio\"\ndo\n\tindex_path=\"${index_path}/${data}\"\n\tmkdir ${index_path}\n\n\tn=53387\n\tqn=200\n\td=192\n\tB=4096\n\tc=2\n\n\tcd ../src\n\n\techo \"== Indexing... ==\"\n\t./qalsh -alg 1 -n $n -d $d -B ${B} -c $c -ds ${data_path} -of ${index_path}/c=$c -if ${index_path}/index.txt\n\ndone"
  },
  {
    "path": "algorithms/QALSH/script/search.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\ngnd_path=../../../data\nindex_path=../index\nresult_path=../results\nmkdir ${result_path}\n\nfor data in \"audio\"\ndo\n\tindex_path=\"${index_path}/${data}\"\n\n\tqn=200\n\td=192\n\tB=4096\n\tk=20\n\tc=2\n\n\tcd ../src\n\n\t./qalsh -alg 2 -qn $qn -d $d -qs ${query_path} -ts ${gnd} -of ${index_path} -rf ${result_path} -B ${B} -c $c\n\ndone\n"
  },
  {
    "path": "algorithms/QALSH/src/ann.cpp",
    "content": "#include \"headers.h\"\n\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\n//-----------------------------------------------------------------------------\n\nint ground_truth(\t\t\t\t\t// output the ground truth results\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tchar* data_set,\t\t\t\t\t\t// address of data set\n\tchar* query_set,\t\t\t\t\t// address of query set\n\tchar* truth_set)\t\t\t\t\t// address of ground truth file\n{\n\tclock_t startTime = (clock_t) -1;\n\tclock_t endTime   = (clock_t) -1;\n\n\tint i, j;\n\tFILE* fp = NULL;\n\n\t// -------------------------------------------------------------------------\n\t//  Read data set and query set\n\t// -------------------------------------------------------------------------\n\tstartTime = clock();\n\tg_memory += SIZEFLOAT * (n + qn) * d;\n\tif (check_mem()) return 1;\n\n\tfloat** data = new float*[n];\n\tfor (i = 0; i < n; i++) data[i] = new float[d];\n\tif (read_set(n, d, data_set, data)) {\n\t\terror(\"Reading Dataset Error!\\n\", true);\n\t}\n\n\tfloat** query = new float*[qn];\n\tfor (i = 0; i < qn; i++) query[i] = new float[d];\n\tif (read_set(qn, d, query_set, query) == 1) {\n\t\terror(\"Reading Query Set Error!\\n\", true);\n\t}\n\tendTime = clock();\n\tprintf(\"Read Dataset and Query Set: %.6f Seconds\\n\\n\", \n\t\t((float) endTime - startTime) / CLOCKS_PER_SEC);\n\n\t// -------------------------------------------------------------------------\n\t//  output ground truth results (using linear scan method)\n\t// -------------------------------------------------------------------------\n\tint maxk = MAXK;\n\tfloat dist = -1.0F;\n\tfloat* knndist = new float[maxk];\n\tg_memory += SIZEFLOAT * maxk;\n\n\tfp = fopen(truth_set, \"w\");\t\t// open output file\n\tif (!fp) {\n\t\tprintf(\"I could not create %s.\\n\", truth_set);\n\t\treturn 1;\n\t}\n\n\tfprintf(fp, \"%d %d\\n\", qn, maxk);\n\tfor (i = 0; i < qn; i++) {\n\t\tfor (j = 0; j < maxk; j++) {\n\t\t\tknndist[j] = MAXREAL;\n\t\t}\n\t\t\t\t\t\t\t\t\t// find k-nn points of query\n\t\tfor (j = 0; j < n; j++) {\n\t\t\tdist = calc_l2_dist(data[j], query[i], d);\n\n\t\t\tint ii, jj;\n\t\t\tfor (jj = 0; jj < maxk; jj++) {\n\t\t\t\tif (compfloats(dist, knndist[jj]) == -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (jj < maxk) {\n\t\t\t\tfor (ii = maxk - 1; ii >= jj + 1; ii--) {\n\t\t\t\t\tknndist[ii] = knndist[ii - 1];\n\t\t\t\t}\n\t\t\t\tknndist[jj] = dist;\n\t\t\t}\n\t\t}\n\n\t\tfprintf(fp, \"%d\", i + 1);\t// output Lp dist of k-nn points\n\t\tfor (j = 0; j < maxk; j++) {\n\t\t\tfprintf(fp, \" %f\", knndist[j]);\n\t\t}\n\t\tfprintf(fp, \"\\n\");\n\t}\n\tfclose(fp);\t\t\t\t\t\t// close output file\n\tendTime = clock();\n\tprintf(\"Generate Ground Truth: %.6f Seconds\\n\\n\", \n\t\t((float) endTime - startTime) / CLOCKS_PER_SEC);\n\n\t// -------------------------------------------------------------------------\n\t//  Release space\n\t// -------------------------------------------------------------------------\n\tif (data != NULL) {\t\t\t\t// release <data>\n\t\tfor (i = 0; i < n; i++) {\n\t\t\tdelete[] data[i]; data[i] = NULL;\n\t\t}\n\t\tdelete[] data; data = NULL;\n\t\tg_memory -= SIZEFLOAT * n * d;\n\t}\n\tif (query != NULL) {\t\t\t// release <query>\n\t\tfor (i = 0; i < qn; i++) {\n\t\t\tdelete[] query[i]; query[i] = NULL;\n\t\t}\n\t\tdelete[] query; query = NULL;\n\t\tg_memory -= SIZEFLOAT * qn * d;\n\t}\n\tif (knndist != NULL) {\t\t\t// release <knndist>\n\t\tdelete[] knndist; knndist = NULL;\n\t\tg_memory -= SIZEFLOAT * maxk;\n\t}\n\n\t//printf(\"memory = %.2f MB\\n\", (float) g_memory / (1024.0f * 1024.0f));\n\treturn 0;\n}\n\n// -----------------------------------------------------------------------------\nint indexing(\t\t\t\t\t\t// build hash tables for the dataset\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tint   B,\t\t\t\t\t\t\t// page size\n\tfloat ratio, int N,\t\t\t\t\t\t// approximation ratio\n\tchar* data_set,\t\t\t\t\t\t// address of data set\n\tchar* output_folder,char* index_folder)\t\t\t\t// folder to store info of qalsh\n{\n\t//c_show = ratio;\n\tclock_t startTime = (clock_t) -1;\n\tclock_t endTime   = (clock_t) -1;\n\n\t// -------------------------------------------------------------------------\n\t//  Read data set\n\t// -------------------------------------------------------------------------\n\tstartTime = clock();\n\tg_memory += SIZEFLOAT * n * d;\t\n\tif (check_mem()) return 1;\n\n\tfloat** data = new float*[n];\n\tfor (int i = 0; i < n; i++) data[i] = new float[d];\n\tif (read_set(n, d, data_set, data) == 1) {\n\t\terror(\"Reading Dataset Error!\\n\", true);\n\t}\n\tendTime = clock();\n\tprintf(\"Read Dataset: %.6f Seconds\\n\\n\", \n\t\t((float) endTime - startTime) / CLOCKS_PER_SEC);\n\n\tchar fname[200];\n\tstrcpy(fname, index_folder);\n\t//strcat(fname, \"L2_index.out\");\n\n\tFILE* fp = fopen(fname, \"a+\");\n\tif (!fp) {\n\t\tprintf(\"I could not create %s.\\n\", fname);\n\t\treturn 1;\t\t\t\t\t// fail to return\n\t}\n\n\t// -------------------------------------------------------------------------\n\t//  Write the data set in new format to disk\n\t// -------------------------------------------------------------------------\n\t\t\n\ttimeval start;\n\tgettimeofday(&start, NULL);\t\n\twrite_data_new_form(n, d, B, data, output_folder);\n\t\t\n\tQALSH* lsh = new QALSH();\n\tlsh->init(n, d, B, ratio,N, output_folder);\n\tlsh->bulkload(data);\n\ttimeval end;\n\tgettimeofday(&end, NULL);\n\tfloat index_time = diff_timeval(end,start);\n\n\tfprintf(fp, \"%.6f #c_%.2f #B_%d #index_time \\n\", index_time, ratio, B);\n\tfclose(fp);\n\n\t// -------------------------------------------------------------------------\n\t//  Release space\n\t// -------------------------------------------------------------------------\n\tif (data != NULL) {\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tdelete[] data[i]; data[i] = NULL;\n\t\t}\n\t\tdelete[] data; data = NULL;\n\t\tg_memory -= SIZEFLOAT * n * d;\n\t}\n\tif (lsh != NULL) {\n\t\tdelete lsh; lsh = NULL;\n\t}\n\n\treturn 0;\n}\n\n// -----------------------------------------------------------------------------\nint lshknn(\t\t\t\t\t\t\t// k-nn via qalsh (data in disk)\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d, int N,\t\t\t\t\t\t\t// dimensionality\n\tchar* query_set,\t\t\t\t\t// path of query set\n\tchar* truth_set,\t\t\t\t\t// groundtrue file\n\tchar* output_folder,char* result_folder,float ratio,int B)\t\t\t\t// output folder\n{\n\tint ret = 0;\n\tint maxk = MAXK;\n\tint i, j;\n\tFILE* fp = NULL;\t\t\t\t// file pointer\n\n\t// -------------------------------------------------------------------------\n\t//  Read query set\n\t// -------------------------------------------------------------------------\n\tg_memory += SIZEFLOAT * qn * d;\n\tfloat** query = new float*[qn];\n\tfor (i = 0; i < qn; i++) query[i] = new float[d];\n\tif (read_set(qn, d, query_set, query)) {\n\t\terror(\"Reading Query Set Error!\\n\", true);\n\t}\n\t// -------------------------------------------------------------------------\n\t//  Read the ground truth file\n\t// -------------------------------------------------------------------------\n\tg_memory += SIZEFLOAT * qn * maxk;\n\t//float* R = new float[qn * maxk];\n\tint* R = new int[qn * maxk];\n\n\tfp = fopen(truth_set, \"r\");\t\t// open ground truth file\n\tif (!fp) {\n\t\tprintf(\"Could not open the ground truth file.\\n\");\n\t\treturn 1;\n\t}//*\n\tfor (int i = 0; i < qn; i++) {\n\t\tfor (j = 0; j < maxk; j ++) {\n\t\t\tfscanf(fp, \"%d \", &(R[i * maxk + j]));\n\t\t}\n\t}\n\tfclose(fp);\t\n\n\tint kNNs[] = {20};\n\tint maxRound = 1;\n\tint top_k = 0;\n\n\tfloat allRatio  = -1.0f;\n\tfloat thisRatio = -1.0f;\n\tint allIO=0;\n\t\t\t\t\t\t\t\t\t// init the results\n\tg_memory += (long) sizeof(ResultItem) * maxk;\n\tResultItem* rslt = new ResultItem[maxk];\n\tfor (i = 0; i < maxk; i++) {\n\t\trslt[i].id_ = -1;\n\t\trslt[i].dist_ = MAXREAL;\n\t}\n\n\tQALSH* lsh = new QALSH();\t\t// restore QALSH\n\tif (lsh->restore(output_folder)) {\n\t\terror(\"Could not restore qalsh\\n\", true);\n\t}\n\n\tchar output_set[200];\n\tstrcpy(output_set, result_folder);\n\t//strcat(output_set, \"20K.txt\");\n\n\tfp = fopen(output_set, \"a+\");\t//open output file\n\tif (!fp) {\n\t\tprintf(\"Could not create the output file.\\n\");\n\t\treturn 1;\n\t}\n\n\tprintf(\"QALSH for c-k-ANN Search: \\n\");\n\tprintf(\"  Top-k\\tRatio\\t\\tI/O\\t\\tTime (ms)\\n\");\n\tfor (int num = 0; num < maxRound; num++) {\n\t\ttop_k = kNNs[num];\n\t\tallRatio = 0.0f;\n\t\tfloat search_time=0;\n\t\tfor (i = 0; i < qn; i++) { //qn\n\t\t\ttimeval start;\n\t\t\tgettimeofday(&start, NULL);\n\t\t\tint thisIO =lsh->knn(query[i], top_k, rslt, output_folder);\n\t\t\ttimeval end;\n\t\t\tgettimeofday(&end, NULL);\n\t\t\tsearch_time += diff_timeval(end,start);\n\t\t\tallIO += thisIO;\n\t\t\tfloat found=0;\n\t\t\tint re_n=0;\n\t\t\tfor(int j=0;j<top_k;j++)\n\t\t\t{\n\t\t\t\tif(rslt[j].id_==R[i * maxk + j])\n\t\t\t\t{\n\t\t\t\t\tfound++;\n\t\t\t\t\tre_n++;\t\n\t\t\t\t}\n\t\t\t}\n\t\t\tallRatio += found;\n\t\t}\n\n\t\t/*\n\t\tfor (i = 0; i < qn*3; i++) { //qn\n\t\t\ttimeval start;\n\t\t\tgettimeofday(&start, NULL);\n\t\t\tlsh->knn(query[i/3], top_k, rslt, output_folder);\n\t\t\ttimeval end;\n\t\t\tgettimeofday(&end, NULL);\n\t\t\tif(i%3==2)\n\t\t\t{\n\t\t\t\tsearch_time += diff_timeval(end,start);\n\t\t\t\tfloat found=0;\n\t\t\t\tint re_n=0;\n\t\t\t\tfor(int j=0;j<top_k;j++)\n\t\t\t\t{\n\t\t\t\t\tif(rslt[j].id_==R[i/3 * maxk + j])\n\t\t\t\t\t{\n\t\t\t\t\t\tfound++;\n\t\t\t\t\t\tre_n++;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tallRatio += found;\n\t\t\t}\n\t\t}*/\n\t\tallRatio = allRatio / qn/maxk;\n\t\t//fprintf(fp, \" \\n\\n \");\n\t\tfprintf(fp, \"%.6f %d %.6f \\n\", allRatio, allIO/qn, search_time/qn);\n\t}\n\tprintf(\"\\n\");\n\tfclose(fp);\t\t\t\t\t\t// close output file\n\n\t// -------------------------------------------------------------------------\n\t//  Release space\n\t// -------------------------------------------------------------------------\n\tif (query != NULL) {\t\t\t// release <query>\n\t\tfor (i = 0; i < qn; i++) {\n\t\t\tdelete[] query[i]; query[i] = NULL;\n\t\t}\n\t\tdelete[] query; query = NULL;\n\t\tg_memory -= SIZEFLOAT * qn * d;\n\t}\n\tif (lsh != NULL) {\t\t\t\t// release <lsh>\n\t\tdelete lsh; lsh = NULL;\n\t}\n\t\t\t\t\t\t\t\t\t// release <R> and (/or) <rslt>\n\tif (R != NULL || rslt != NULL) {\n\t\tdelete[] R; R = NULL;\n\t\tdelete[] rslt; rslt = NULL;\n\t\tg_memory -= (SIZEFLOAT * qn * maxk + sizeof(ResultItem) * maxk);\n\t}\n\n\t//printf(\"memory = %.2f MB\\n\", (float) g_memory / (1024.0f * 1024.0f));\n\treturn ret;\n}\n\n// -----------------------------------------------------------------------------\nint linear_scan(\t\t\t\t\t// brute-force linear scan (data in disk)\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tint   B,\t\t\t\t\t\t\t// page size\n\tchar* query_set,\t\t\t\t\t// address of query set\n\tchar* truth_set,\t\t\t\t\t// address of ground truth file\n\tchar* output_folder)\t\t\t\t// output folder\n{\n\t// -------------------------------------------------------------------------\n\t//  Allocation and initialzation.\n\t// -------------------------------------------------------------------------\n\tclock_t startTime = (clock_t) -1.0f;\n\tclock_t endTime   = (clock_t) -1.0f;\n\n\tint kNNs[] = {1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100};\n\tint maxRound = 11;\n\t\n\tint i, j, top_k;\n\tint maxk = MAXK;\n\n\tfloat allTime   = -1.0f;\n\tfloat thisRatio = -1.0f;\n\tfloat allRatio  = -1.0f;\n\n\tg_memory += (SIZEFLOAT * (d + d + (qn + 1) * maxk) + SIZECHAR * (600 + B));\n\t\n\tfloat* knn_dist = new float[maxk];\n\tfor (i = 0; i < maxk; i++) {\n\t\tknn_dist[i] = MAXREAL;\n\t}\n\n\tfloat** R = new float*[qn];\n\tfor (i = 0; i < qn; i++) {\n\t\tR[i] = new float[maxk];\n\t\tfor (j = 0; j < maxk; j++) {\n\t\t\tR[i][j] = 0.0f;\n\t\t}\n\t}\n\n\tfloat* data     = new float[d];\t// one data object\n\tfloat* query    = new float[d];\t// one query object\n\n\tchar* buffer    = new char[B];\t// every time can read one page\n\tchar* fname     = new char[200];// file name for data\n\tchar* data_path = new char[200];// data path\n\tchar* out_set\t= new char[200];// output file\n\n\t// -------------------------------------------------------------------------\n\t//  Open the output file, and read the ground true results\n\t// -------------------------------------------------------------------------\n\tstrcpy(out_set, output_folder);\t// generate output file\n\tstrcat(out_set, \"L2_linear.out\");\n\n\tFILE* ofp = fopen(out_set, \"w\");\n\tif (!ofp) {\n\t\tprintf(\"I could not create %s.\\n\", out_set);\n\t\treturn 1;\n\t}\n\t\t\t\t\t\t\t\t\t// open ground true file\n\tFILE* tfp = fopen(truth_set, \"r\");\n\tif (!tfp) {\n\t\tprintf(\"I could not create %s.\\n\", truth_set);\n\t\treturn 1;\n\t}\n\t\t\t\t\t\t\t\t\t// read top-k nearest distance\n\tfscanf(tfp, \"%d %d\\n\", &qn, &maxk);\n\tfor (int i = 0; i < qn; i++) {\n\t\tfscanf(tfp, \"%d\", &j);\n\t\tfor (j = 0; j < maxk; j ++) {\n\t\t\tfscanf(tfp, \" %f\", &(R[i][j]));\n\t\t}\n\t}\n\tfclose(tfp);\t\t\t\t\t// close ground true file\n\n\t// -------------------------------------------------------------------------\n\t//  Calc the number of data object in one page and the number of data file.\n\t//  <num> is the number of data in one data file\n\t//  <total_file> is the total number of data file\n\t// -------------------------------------------------------------------------\n\tint num = (int) floor((float) B / (d * SIZEFLOAT));\n\tint total_file = (int) ceil((float) n / num);\n\tif (total_file == 0) return 1;\n\n\t// -------------------------------------------------------------------------\n\t//  Brute-force linear scan method (data in disk)\n\t//  For each query, we limit that we can ONLY read one page of data.\n\t// -------------------------------------------------------------------------\n\tint count = 0;\n\tfloat dist = -1.0F;\n\t\t\t\t\t\t\t\t\t// generate the data path\n\tstrcpy(data_path, output_folder);\n\tstrcat(data_path, \"data/\");\n\n\tprintf(\"Linear Scan Search:\\n\");\n\tprintf(\"    Top-k\\tRatio\\t\\tI/O\\t\\tTime (ms)\\n\");\n\tfor (int round = 0; round < maxRound; round++) {\n\t\ttop_k = kNNs[round];\n\t\tallRatio = 0.0f;\n\n\t\tstartTime = clock();\n\t\tFILE* qfp = fopen(query_set, \"r\");\n\t\tif (!qfp) error(\"Could not open the query set.\\n\", true);\n\n\t\tfor (i = 0; i < qn; i++) {\n\t\t\t// -----------------------------------------------------------------\n\t\t\t//  Step 1: read a query from disk and init the k-nn results\n\t\t\t// -----------------------------------------------------------------\n\t\t\tfscanf(qfp, \"%d\", &j);\n\t\t\tfor (j = 0; j < d; j++) {\n\t\t\t\tfscanf(qfp, \" %f\", &query[j]);\n\t\t\t}\n\n\t\t\tfor (j = 0; j < top_k; j++) {\n\t\t\t\tknn_dist[j] = MAXREAL;\n\t\t\t}\n\n\t\t\t// -----------------------------------------------------------------\n\t\t\t//  Step 2: find k-nn results for the query\n\t\t\t// -----------------------------------------------------------------\n\t\t\tfor (j = 0; j < total_file; j++) {\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\t//  Step 2.1: get the file name of current data page\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\tget_data_filename(j, data_path, fname);\n\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\t//  Step 2.2: read one page of data into buffer\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\tif (read_buffer_from_page(B, fname, buffer) == 1) {\n\t\t\t\t\terror(\"error to read a data page\", true);\n\t\t\t\t}\n\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\t//  Step 2.3: find the k-nn results in this page. NOTE: the \n\t\t\t\t// \tnumber of data in the last page may be less than <num>\n\t\t\t\t// -------------------------------------------------------------\n\t\t\t\tif (j < total_file - 1) count = num;\n\t\t\t\telse count = n % num;\n\n\t\t\t\tfor (int z = 0; z < count; z++) {\n\t\t\t\t\tread_data_from_buffer(z, d, data, buffer);\n\t\t\t\t\tdist = calc_l2_dist(data, query, d);\n\n\t\t\t\t\tint ii, jj;\n\t\t\t\t\tfor (jj = 0; jj < top_k; jj++) {\n\t\t\t\t\t\tif (compfloats(dist, knn_dist[jj]) == -1) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (jj < top_k) {\n\t\t\t\t\t\tfor (ii = top_k - 1; ii >= jj + 1; ii--) {\n\t\t\t\t\t\t\tknn_dist[ii] = knn_dist[ii - 1];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tknn_dist[jj] = dist;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthisRatio = 0.0f;\n\t\t\tfor (j = 0; j < top_k; j++) {\n\t\t\t\tthisRatio += knn_dist[j] / R[i][j];\n\t\t\t}\n\t\t\tthisRatio /= top_k;\n\t\t\tallRatio += thisRatio;\n\t\t}\n\t\t// -----------------------------------------------------------------\n\t\t//  Step 3: output result of top-k nn points\n\t\t// -----------------------------------------------------------------\n\t\tfclose(qfp);\t\t\t\t// close query file\n\t\tendTime  = clock();\n\t\tallTime  = ((float) endTime - startTime) / 1000.0f;\n\t\tallTime  = allTime  / qn;\n\t\tallRatio = allRatio / qn;\n\t\t\t\t\t\t\t\t\t// output results\n\t\tprintf(\"    %3d\\t\\t%.4f\\t\\t%d\\t\\t%.2f\\n\", top_k, allRatio, \n\t\t\ttotal_file, allTime);\n\t\tfprintf(ofp, \"%d\\t%f\\t%d\\t%f\\n\", top_k, allRatio, total_file, allTime);\n\t}\n\tprintf(\"\\n\");\n\tfclose(ofp);\t\t\t\t\t\t// close output file\n\n\t// -------------------------------------------------------------------------\n\t//  Release space\n\t// -------------------------------------------------------------------------\n\tif (R != NULL) {\n\t\tfor (i = 0; i < qn; i++) {\n\t\t\tdelete[] R[i]; R[i] = NULL;\n\t\t}\n\t\tdelete[] R; R = NULL;\n\t}\n\tif (knn_dist != NULL || buffer != NULL || data != NULL || query != NULL) {\n\t\tdelete[] knn_dist; knn_dist = NULL;\n\t\tdelete[] buffer; buffer = NULL;\n\t\tdelete[] data; data = NULL;\n\t\tdelete[] query; query = NULL;\n\t}\n\tif (fname != NULL || data_path != NULL || out_set != NULL) {\n\t\tdelete[] fname; fname = NULL;\n\t\tdelete[] data_path; data_path = NULL;\n\t\tdelete[] out_set; out_set = NULL;\n\t}\n\tg_memory -= (SIZEFLOAT * (d + d + (qn + 1) * maxk) + SIZECHAR * (600 + B));\n\t\n\t//printf(\"memory = %.2f MB\\n\", (float) g_memory / (1024.0f * 1024.0f));\n\treturn 0;\n}\n"
  },
  {
    "path": "algorithms/QALSH/src/ann.h",
    "content": "#ifndef __ANN_H\n#define __ANN_H\n\n// -----------------------------------------------------------------------------\nint ground_truth(\t\t\t\t\t// output ground truth (data in memory)\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tchar* data_set,\t\t\t\t\t\t// address of data set\n\tchar* query_set,\t\t\t\t\t// address of query set\n\tchar* truth_set);\t\t\t\t\t// address of ground truth file\n\n// -----------------------------------------------------------------------------\nint indexing(\t\t\t\t\t\t// build hash tables for the dataset\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tint   B,\t\t\t\t\t\t\t// page size\n\tfloat ratio, int N,\t\t\t\t\t\t// approximation ratio\n\tchar* data_set,\t\t\t\t\t\t// address of data set\n\tchar* output_folder,char* index_folder);\t\t\t\t// folder to store info of qalsh\n\n// -----------------------------------------------------------------------------\nint lshknn(\t\t\t\t\t\t\t// k-nn via qalsh (data in disk)\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d, int N,\t\t\t\t\t\t// dimensionality\n\tchar* query_set,\t\t\t\t\t// path of query set\n\tchar* truth_set,\t\t\t\t\t// groundtrue file\n\tchar* output_folder,char* result_folder,float ratio,int B);\t\t\t\t// output folder\n\n// -----------------------------------------------------------------------------\nint linear_scan(\t\t\t\t\t// brute-force linear scan (data in disk)\n\tint   n,\t\t\t\t\t\t\t// number of data points\n\tint   qn,\t\t\t\t\t\t\t// number of query points\n\tint   d,\t\t\t\t\t\t\t// dimension of space\n\tint   B,\t\t\t\t\t\t\t// page size\n\tchar* query_set,\t\t\t\t\t// address of query set\n\tchar* truth_set,\t\t\t\t\t// address of ground truth file\n\tchar* output_folder);\t\t\t\t// output folder\n\n\n#endif\n"
  },
  {
    "path": "algorithms/QALSH/src/b_node.cpp",
    "content": "#include \"headers.h\"\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BNode: basic structure of node in b-tree\r\n// -----------------------------------------------------------------------------\r\nBNode::BNode()\t\t\t\t\t\t// constructor\r\n{\r\n\tlevel_ = -1;\r\n\tnum_entries_ = -1;\r\n\tleft_sibling_ = right_sibling_ = -1;\r\n\tkey_ = NULL;\r\n\r\n\tblock_ = capacity_ = -1;\r\n\tdirty_ = false;\r\n\tbtree_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBNode::~BNode()\t\t\t\t\t\t// destructor\r\n{\r\n\tkey_ = NULL;\r\n\tbtree_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::init(\t\t\t\t\t// init a new node, which not exist\r\n\tint level,\t\t\t\t\t\t\t// level (depth) in b-tree\r\n\tBTree* btree)\t\t\t\t\t\t// b-tree of this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tlevel_ = (char) level;\t\t\t// init <level_>\r\n\r\n\tdirty_ = true;\t\t\t\t\t// init <dirty_>\r\n\tleft_sibling_ = -1;\t\t\t\t// init <left_sibling_>\r\n\tright_sibling_ = -1;\t\t\t\t// init <right_sibling_>\r\n\tkey_ = NULL;\t\t\t\t\t// init <key_>\r\n\r\n\tnum_entries_ = 0;\t\t\t\t// init <num_entries_>\r\n\tblock_ = -1;\t\t\t\t\t\t// init <block_>\r\n\tcapacity_ = -1;\t\t\t\t\t// init <capacity_>\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::init_restore(\t\t\t// load an exist node from disk to init\r\n\tBTree* btree,\t\t\t\t\t\t// b-tree of this node\r\n\tint block)\t\t\t\t\t\t\t// addr of disk for this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tblock_ = block;\t\t\t\t\t// init <block_>\r\n\r\n\tdirty_ = false;\t\t\t\t\t// init <dirty_>\r\n\tleft_sibling_ = -1;\t\t\t\t// init <left_sibling_>\r\n\tright_sibling_ = -1;\t\t\t\t// init <right_sibling_>\r\n\tkey_ = NULL;\t\t\t\t\t// init <key_>\r\n\r\n\tnum_entries_ = 0;\t\t\t\t// init <num_entries_>\r\n\tlevel_ = -1;\t\t\t\t\t\t// init <block_>\r\n\tcapacity_ = -1;\t\t\t\t\t// init <capacity_>\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BNode::get_entry_size()\t\t\t// get entry size of b-node\r\n{\r\n\treturn 0;\t\t\t\t\t\t// return nothing\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::read_from_buffer(\t\t// do nothing\r\n\tchar* buf)\r\n{\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::write_to_buffer(\t\t// do nothing\r\n\tchar* buf)\r\n{\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BNode::find_position_by_key(\t// find pos just less than input key\r\n\tfloat key)\t\t\t\t\t\t\t// input key\r\n{\r\n\treturn -1;\t\t\t\t\t\t// do nothing\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat BNode::get_key(\t\t\t\t// get <key> indexed by <index>\r\n\tint index)\t\t\t\t\t\t\t// input <index>\r\n{\r\n\treturn -1.0f;\t\t\t\t\t// do nothing\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBNode* BNode::get_left_sibling()\t// get the left-sibling node\r\n{\r\n\tBNode* node = NULL;\r\n\tif (left_sibling_ != -1) {\t\t// left sibling node exist\r\n\t\tnode = new BNode();\t\t\t// read left-sibling from disk\r\n\t\tnode->init_restore(btree_, left_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBNode* BNode::get_right_sibling()\t// get the right-sibling node\r\n{\r\n\tBNode* node = NULL;\r\n\tif (right_sibling_ != -1) {\t\t// right sibling node exist\r\n\t\tnode = new BNode();\t\t\t// read right-sibling from disk\r\n\t\tnode->init_restore(btree_, right_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BNode::get_block()\t\t\t\t// get <block_> (address of this node)\r\n{\r\n\treturn block_;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BNode::get_num_entries()\t\t// get <num_entries_>\r\n{\r\n\treturn num_entries_;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BNode::get_level()\t\t\t\t// get <level_>\r\n{\r\n\treturn level_;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//\t<level>: SIZECHAR\r\n//\t<num_entries> <left_sibling> and <right_sibling>: SIZEINT\r\n// -----------------------------------------------------------------------------\r\nint BNode::get_header_size()\t\t// get header size of b-node\r\n{\r\n\tint header_size = SIZECHAR + SIZEINT * 3;\r\n\treturn header_size;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat BNode::get_key_of_node()\t\t// get key of this node\r\n{\r\n\treturn key_[0];\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nbool BNode::isFull()\t\t\t\t// whether is full?\r\n{\r\n\tif (num_entries_ >= capacity_) return true;\r\n\telse return false;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::set_left_sibling(\t\t// set addr of left sibling node\r\n\tint left_sibling)\t\t\t\t\t// addr of left sibling node\r\n{\r\n\tleft_sibling_ = left_sibling;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BNode::set_right_sibling(\t\t// set addr of right sibling node\r\n\tint right_sibling)\t\t\t\t\t// addr of right sibling node\r\n{\r\n\tright_sibling_ = right_sibling;\r\n}\r\n\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BIndexNode: structure of index node for b-tree\r\n// -----------------------------------------------------------------------------\r\nBIndexNode::BIndexNode()\t\t\t// constructor\r\n{\r\n\tlevel_ = -1;\r\n\tnum_entries_ = -1;\r\n\tleft_sibling_ = right_sibling_ = -1;\r\n\r\n\tblock_ = capacity_ = -1;\r\n\tdirty_ = false;\r\n\tbtree_ = NULL;\r\n\r\n\tkey_ = NULL;\r\n\tson_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBIndexNode::~BIndexNode()\t\t\t// destructor\r\n{\r\n\tchar* buf = NULL;\r\n\tif (dirty_) {\t\t\t\t\t// if dirty, rewrite to disk\r\n\t\tint block_length = btree_->file_->get_blocklength();\r\n\t\tbuf = new char[block_length];\r\n\t\twrite_to_buffer(buf);\r\n\t\tbtree_->file_->write_block(buf, block_);\r\n\r\n\t\tdelete[] buf;buf = NULL;\r\n\t}\r\n\r\n\tif (key_) {\t\t\t\t\t\t// release <key_>\r\n\t\tdelete[] key_; key_ = NULL;\r\n\t}\r\n\tif (son_) {\t\t\t\t\t\t// release <son_>\r\n\t\tdelete[] son_; son_ = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BIndexNode::init(\t\t\t\t// init a new node, which not exist\r\n\tint level,\t\t\t\t\t\t\t// level (depth) in b-tree\r\n\tBTree* btree)\t\t\t\t\t\t// b-tree of this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tlevel_ = (char) level;\t\t\t// init <level_>\r\n\r\n\tnum_entries_ = 0;\t\t\t\t// init <num_entries_>\r\n\tleft_sibling_ = -1;\t\t\t\t// init <left_sibling_>\r\n\tright_sibling_ = -1;\t\t\t\t// init <right_sibling_>\r\n\tdirty_ = true;\t\t\t\t\t// init <dirty_>\r\n\r\n\t\t\t\t\t\t\t\t\t// init <capacity_>\r\n\tint b_length = btree_->file_->get_blocklength();\r\n\tcapacity_ = (b_length - get_header_size()) / get_entry_size();\r\n\tif (capacity_ < 50) {\t\t\t// ensure at least 50 entries\r\n\t\tprintf(\"capacity = %d\\n\", capacity_);\r\n\t\terror(\"BIndexNode::init() capacity too small.\\n\", true);\r\n\t}\r\n\r\n\tkey_ = new float[capacity_];\t// init <key_>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tkey_[i] = MINREAL;\r\n\t}\r\n\tson_ = new int[capacity_];\t\t// init <son_>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tson_[i] = -1;\r\n\t}\r\n\r\n\tchar* blk = new char[b_length];\t// init <block_>, get new addr\r\n\tblock_ = btree_->file_->append_block(blk);\r\n\tdelete[] blk; blk = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BIndexNode::init_restore(\t\t// load an exist node from disk to init\r\n\tBTree* btree,\t\t\t\t\t\t// b-tree of this node\r\n\tint block)\t\t\t\t\t\t\t// addr of disk for this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tblock_ = block;\t\t\t\t\t// init <block_>\r\n\tdirty_ = false;\t\t\t\t\t// init <dirty_>\r\n\r\n\t\t\t\t\t\t\t\t\t// get block length\r\n\tint b_len = btree_->file_->get_blocklength();\r\n\r\n\t\t\t\t\t\t\t\t\t// init <capacity_>\r\n\tcapacity_ = (b_len - get_header_size()) / get_entry_size();\r\n\tif (capacity_ < 50) {\t\t\t// at least 50 entries\r\n\t\tprintf(\"capacity = %d\\n\", capacity_);\r\n\t\terror(\"BIndexNode::init_restore capacity too small.\\n\", true);\r\n\t}\r\n\r\n\tkey_ = new float[capacity_];\t// init <key_>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tkey_[i] = MINREAL;\r\n\t}\r\n\tson_ = new int[capacity_];\t\t// init <son_>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tson_[i] = -1;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read the buffer <blk> to init <level_>, <num_entries_>, <left_sibling_>,\r\n\t//  <right_sibling_>, <key_> and <son_>.\r\n\t// -------------------------------------------------------------------------\r\n\tchar* blk = new char[b_len];\r\n\tbtree_->file_->read_block(blk, block);\r\n\tread_from_buffer(blk);\r\n\r\n\tdelete[] blk; blk = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  entry: <key_>: SIZEFLOAT and <son_>: SIZEINT\r\n// -----------------------------------------------------------------------------\r\nint BIndexNode::get_entry_size()\t// get entry size of b-node\r\n{\r\n\tint entry_size = SIZEFLOAT + SIZEINT;\r\n\treturn entry_size;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Read info from buffer to initialize <level_>, <num_entries_>,\r\n//  <left_sibling_>, <right_sibling_>, <key_> and <son_> of b-index node\r\n// -----------------------------------------------------------------------------\r\nvoid BIndexNode::read_from_buffer(\t// read a b-node from buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// store info of a b-index node\r\n{\r\n\tint i = 0;\t\t\t\t\t\t// read <level_>\r\n\tmemcpy(&level_, &buf[i], SIZECHAR);\r\n\ti += SIZECHAR;\r\n\t\t\t\t\t\t\t\t\t// read <num_entries_>\r\n\tmemcpy(&num_entries_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\t\t\t\t\t\t\t\t\t// read <left_sibling_>\r\n\tmemcpy(&left_sibling_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\t\t\t\t\t\t\t\t\t// read <right_sibling_>\r\n\tmemcpy(&right_sibling_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tfor (int j = 0; j < num_entries_; j++) {\r\n\t\t\t\t\t\t\t\t\t// read <key_>\r\n\t\tmemcpy(&key_[j], &buf[i], SIZEFLOAT);\r\n\t\ti += SIZEFLOAT;\r\n\t\t\t\t\t\t\t\t\t// read <son_>\r\n\t\tmemcpy(&son_[j], &buf[i], SIZEINT);\r\n\t\ti += SIZEINT;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BIndexNode::write_to_buffer(\t// write info of node into buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// store info of this node (return)\r\n{\r\n\tint i = 0;\t\t\t\t\t\t// write <level_>\r\n\tmemcpy(&buf[i], &level_, SIZECHAR);\r\n\ti += SIZECHAR;\r\n\t\t\t\t\t\t\t\t\t// write <num_entries_>\r\n\tmemcpy(&buf[i], &num_entries_, SIZEINT);\r\n\ti += SIZEINT;\r\n\t\t\t\t\t\t\t\t\t// write <left_sibling_>\r\n\tmemcpy(&buf[i], &left_sibling_, SIZEINT);\r\n\ti += SIZEINT;\r\n\t\t\t\t\t\t\t\t\t// write <right_sibling_>\r\n\tmemcpy(&buf[i], &right_sibling_, SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tfor (int j = 0; j < num_entries_; j++) {\r\n\t\t\t\t\t\t\t\t\t// write <key_>\r\n\t\tmemcpy(&buf[i], &key_[j], SIZEFLOAT);\r\n\t\ti += SIZEFLOAT;\r\n\t\t\t\t\t\t\t\t\t// write <son_>\r\n\t\tmemcpy(&buf[i], &son_[j], SIZEINT);\r\n\t\ti += SIZEINT;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Find position of entry that is just less than or equal to input entry.\r\n//  If input entry is smaller than all entry in this node, we'll return -1.\r\n//  The scan order is from right to left.\r\n// -----------------------------------------------------------------------------\r\nint BIndexNode::find_position_by_key(\r\n\tfloat key)\t\t\t\t\t\t\t// input key\r\n{\r\n\tint pos = -1;\r\n\t\t\t\t\t\t\t\t\t// linear scan (right to left)\r\n\tfor (int i = num_entries_ - 1; i >= 0; i--) {\r\n\t\tif (key_[i] <= key) {\r\n\t\t\tpos = i;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\treturn pos;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat BIndexNode::get_key(\t\t\t// get <key> indexed by <index>\r\n\tint index)\t\t\t\t\t\t\t// input index\r\n{\r\n\tif (index < 0 || index >= num_entries_) {\r\n\t\terror(\"BIndexNode::get_key out of range.\", true);\r\n\t}\r\n\treturn key_[index];\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get the left-sibling node\r\nBIndexNode* BIndexNode::get_left_sibling()\r\n{\r\n\tBIndexNode* node = NULL;\r\n\tif (left_sibling_ != -1) {\t\t// left sibling node exist\r\n\t\tnode = new BIndexNode();\t// read left-sibling from disk\r\n\t\tnode->init_restore(btree_, left_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get the right-sibling node\r\nBIndexNode* BIndexNode::get_right_sibling()\r\n{\r\n\tBIndexNode* node = NULL;\r\n\tif (right_sibling_ != -1) {\t\t// right sibling node exist\r\n\t\tnode = new BIndexNode();\t// read right-sibling from disk\r\n\t\tnode->init_restore(btree_, right_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BIndexNode::get_son(\t\t\t// get son indexed by <index>\r\n\tint index)\t\t\t\t\t\t\t// input index\r\n{\r\n\tif (index < 0 || index >= num_entries_) {\r\n\t\terror(\"BIndexNode::get_son out of range.\", true);\r\n\t}\r\n\treturn son_[index];\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BIndexNode::add_new_child(\t\t// add a new entry from its child node\r\n\tfloat key,\t\t\t\t\t\t\t// input key\r\n\tint son)\t\t\t\t\t\t\t// input son\r\n{\r\n\tif (num_entries_ >= capacity_) {\r\n\t\terror(\"BIndexNode::add_new_child overflow\", true);\r\n\t}\r\n\r\n\tkey_[num_entries_] = key;\t\t// add new entry into its pos\r\n\tson_[num_entries_] = son;\r\n\r\n\tnum_entries_++;\t\t\t\t\t// update <num_entries_>\r\n\tdirty_ = true;\t\t\t\t\t// node modified, <dirty_> is true\r\n}\r\n\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BLeafNode: structure of leaf node in b-tree\r\n// -----------------------------------------------------------------------------\r\nBLeafNode::BLeafNode()\t\t\t\t// constructor\r\n{\r\n\tlevel_ = -1;\r\n\tnum_entries_ = -1;\r\n\tleft_sibling_ = right_sibling_ = -1;\r\n\r\n\tblock_ = capacity_ = -1;\r\n\tdirty_ = false;\r\n\tbtree_ = NULL;\r\n\r\n\tnum_keys_ = -1;\r\n\tcapacity_keys_ = -1;\r\n\tkey_ = NULL;\r\n\tid_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBLeafNode::~BLeafNode()\t\t\t\t// destructor\r\n{\r\n\tchar* buf = NULL;\r\n\tif (dirty_) {\t\t\t\t\t// if dirty, rewrite to disk\r\n\t\tint block_length = btree_->file_->get_blocklength();\r\n\t\tbuf = new char[block_length];\r\n\t\twrite_to_buffer(buf);\r\n\t\tbtree_->file_->write_block(buf, block_);\r\n\r\n\t\tdelete[] buf;buf = NULL;\r\n\t}\r\n\r\n\tif (key_) {\t\t\t\t\t\t// release <key_>\r\n\t\tdelete[] key_; key_ = NULL;\r\n\t}\r\n\tif (id_) {\t\t\t\t\t\t// release <id_>\r\n\t\tdelete[] id_; id_ = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BLeafNode::init(\t\t\t\t// init a new node, which not exist\r\n\tint level,\t\t\t\t\t\t\t// level (depth) in b-tree\r\n\tBTree* btree)\t\t\t\t\t\t// b-tree of this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tlevel_ = (char) level;\t\t\t// init <level_>\r\n\r\n\tnum_entries_ = 0;\t\t\t\t// init <num_entries_>\r\n\tnum_keys_ = 0;\t\t\t\t\t// init <num_keys_>\r\n\tleft_sibling_ = -1;\t\t\t\t// init <left_sibling_>\r\n\tright_sibling_ = -1;\t\t\t\t// init <right_sibling_>\r\n\tdirty_ = true;\t\t\t\t\t// init <dirty_>\r\n\r\n\t\t\t\t\t\t\t\t\t// get block length\r\n\tint b_length = btree_->file_->get_blocklength();\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Init <capacity_keys_> and calc key size\r\n\t// -------------------------------------------------------------------------\r\n\tint key_size = get_key_size(b_length);\r\n\t\t\t\t\t\t\t\t\t// init <key>\r\n\tkey_ = new float[capacity_keys_];\r\n\tfor (int i = 0; i < capacity_keys_; i++) {\r\n\t\tkey_[i] = MINREAL;\r\n\t}\r\n\t\t\t\t\t\t\t\t\t// calc header size\r\n\tint header_size = get_header_size();\r\n\t\t\t\t\t\t\t\t\t// calc entry size\r\n\tint entry_size = get_entry_size();\t\r\n\t\t\t\t\t\t\t\t\t// init <capacity>\r\n\tcapacity_ = (b_length - header_size - key_size) / entry_size;\r\n\tif (capacity_ < 100) {\t\t\t// at least 100 entries\r\n\t\tprintf(\"capacity = %d\\n\", capacity_);\r\n\t\terror(\"BLeafNode::init capacity too small.\\n\", true);\r\n\t}\r\n\tid_ = new int[capacity_];\t\t// init <id>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tid_[i] = -1;\r\n\t}\r\n\r\n\tchar* blk = new char[b_length];\t// init <block>\r\n\tblock_ = btree_->file_->append_block(blk);\r\n\tdelete[] blk; blk = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BLeafNode::init_restore(\t\t// load an exist node from disk to init\r\n\tBTree* btree,\t\t\t\t\t\t// b-tree of this node\r\n\tint block)\t\t\t\t\t\t\t// addr of disk for this node\r\n{\r\n\tbtree_ = btree;\t\t\t\t\t// init <btree_>\r\n\tblock_ = block;\t\t\t\t\t// init <block_>\r\n\tdirty_ = false;\t\t\t\t\t// init <dirty_>\r\n\r\n\t\t\t\t\t\t\t\t\t// get block length\r\n\tint b_length = btree_->file_->get_blocklength();\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Init <capacity_keys> and calc key size\r\n\t// -------------------------------------------------------------------------\r\n\tint key_size = get_key_size(b_length);\r\n\t\t\t\t\t\t\t\t\t// init <key>\r\n\tkey_ = new float[capacity_keys_];\r\n\tfor (int i = 0; i < capacity_keys_; i++) {\r\n\t\tkey_[i] = MINREAL;\r\n\t}\r\n\t\t\t\t\t\t\t\t\t// calc header size\r\n\tint header_size = get_header_size();\r\n\t\t\t\t\t\t\t\t\t// calc entry size\r\n\tint entry_size = get_entry_size();\t\r\n\t\t\t\t\t\t\t\t\t// init <capacity>\r\n\tcapacity_ = (b_length - header_size - key_size) / entry_size;\r\n\tif (capacity_ < 100) {\t\t\t// at least 100 entries\r\n\t\tprintf(\"capacity = %d\\n\", capacity_);\r\n\t\terror(\"BLeafNode::init_store capacity too small.\\n\", true);\r\n\t}\r\n\tid_ = new int[capacity_];\t\t// init <id>\r\n\tfor (int i = 0; i < capacity_; i++) {\r\n\t\tid_[i] = -1;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read the buffer <blk> to init <level_>, <num_entries_>, <left_sibling_>,\r\n\t//  <right_sibling_>, <num_keys_> <key_> and <id_>\r\n\t// -------------------------------------------------------------------------\r\n\tchar* blk = new char[b_length];\r\n\tbtree_->file_->read_block(blk, block);\r\n\tread_from_buffer(blk);\r\n\r\n\tdelete[] blk; blk = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::get_entry_size()\t\t// get entry size in b-node\r\n{\r\n\treturn SIZEINT;\t\t\t\t\t\t// <id>: sizeof(int)\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BLeafNode::read_from_buffer(\t// read a b-node from buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// store info of a b-node\r\n{\r\n\tint i = 0;\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read header: <level_> <num_entries_> <left_sibling_> <right_sibling_>\r\n\t// -------------------------------------------------------------------------\r\n\tmemcpy(&level_, &buf[i], SIZECHAR);\r\n\ti += SIZECHAR;\r\n\r\n\tmemcpy(&num_entries_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tmemcpy(&left_sibling_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tmemcpy(&right_sibling_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read keys: <num_keys_> and <key_>\r\n\t// -------------------------------------------------------------------------\r\n\tmemcpy(&num_keys_, &buf[i], SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tfor (int j = 0; j < capacity_keys_; j++) {\r\n\t\tmemcpy(&key_[j], &buf[i], SIZEFLOAT);\r\n\t\ti += SIZEFLOAT;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read entries: <id_>\r\n\t// -------------------------------------------------------------------------\r\n\tfor (int j = 0; j < num_entries_; j++) {\r\n\t\tmemcpy(&id_[j], &buf[i], SIZEINT);\r\n\t\ti += SIZEINT;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BLeafNode::write_to_buffer(\t// write a b-node into buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// store info of a b-node\r\n{\r\n\tint i = 0;\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write header: <level_> <num_entries_> <left_sibling_> <right_sibling_>\r\n\t// -------------------------------------------------------------------------\r\n\tmemcpy(&buf[i], &level_, SIZECHAR);\r\n\ti += SIZECHAR;\r\n\r\n\tmemcpy(&buf[i], &num_entries_, SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tmemcpy(&buf[i], &left_sibling_, SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tmemcpy(&buf[i], &right_sibling_, SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write keys: <num_keys_> and <key_>\r\n\t// -------------------------------------------------------------------------\r\n\tmemcpy(&buf[i], &num_keys_, SIZEINT);\r\n\ti += SIZEINT;\r\n\r\n\tfor (int j = 0; j < capacity_keys_; j++) {\r\n\t\tmemcpy(&buf[i], &key_[j], SIZEFLOAT);\r\n\t\ti += SIZEFLOAT;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write entries: <id_>\r\n\t// -------------------------------------------------------------------------\r\n\tfor (int j = 0; j < num_entries_; j++) {\r\n\t\tmemcpy(&buf[i], &id_[j], SIZEINT);\r\n\t\ti += SIZEINT;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::find_position_by_key(// find pos just less than input key\r\n\tfloat key)\t\t\t\t\t\t\t// input key\r\n{\r\n\tint pos = -1;\r\n\t\t\t\t\t\t\t\t\t// linear scan (right to left)\r\n\tfor (int i = num_keys_ - 1; i >= 0; i--) {\r\n\t\tif (key_[i] <= key) {\r\n\t\t\tpos = i;\t\t\t\t// position of corresponding id\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\treturn pos;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat BLeafNode::get_key(\t\t\t// get <key_> indexed by <index>\r\n\tint index)\t\t\t\t\t\t\t// input <index>\r\n{\r\n\tif (index < 0 || index >= num_keys_) {\r\n\t\terror(\"BLeafNode::get_key out of range.\", true);\r\n\t}\r\n\treturn key_[index];\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get left-sibling node\r\nBLeafNode* BLeafNode::get_left_sibling()\r\n{\r\n\tBLeafNode* node = NULL;\r\n\tif (left_sibling_ != -1) {\t\t// left sibling node exist\r\n\t\tnode = new BLeafNode();\t\t// read left-sibling from disk\r\n\t\tnode->init_restore(btree_, left_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get right sibling node\r\nBLeafNode* BLeafNode::get_right_sibling()\r\n{\r\n\tBLeafNode* node = NULL;\r\n\tif (right_sibling_ != -1) {\t\t// right sibling node exist\r\n\t\tnode = new BLeafNode();\t\t// read right-sibling from disk\r\n\t\tnode->init_restore(btree_, right_sibling_);\r\n\t}\r\n\treturn node;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::get_key_size(\t\t// get key size of this node\r\n\tint _block_length)\t\t\t\t\t// block length\r\n{\r\n\tcapacity_keys_ = (int) ceil((float) _block_length / INDEX_SIZE_LEAF_NODE);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Array of <key_> with number <capacity_keys_> + <number_keys_> (SIZEINT)\r\n\t// -------------------------------------------------------------------------\r\n\tint key_size = capacity_keys_ * SIZEFLOAT + SIZEINT;\r\n\treturn key_size;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::get_increment()\t\t// get <increment>\r\n{\r\n\tint entry_size = get_entry_size();\r\n\tint increment = INDEX_SIZE_LEAF_NODE / entry_size;\r\n\r\n\treturn increment;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::get_num_keys()\t\t// get <num_keys_>\r\n{\r\n\treturn num_keys_;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BLeafNode::get_entry_id(\t\t// get entry id indexed by <index>\r\n\tint index)\t\t\t\t\t\t\t// input <index>\r\n{\r\n\tif (index < 0 || index >= num_entries_) {\r\n\t\terror(\"BLeafNode::get_entry_id out of range.\", true);\r\n\t}\r\n\treturn id_[index];\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BLeafNode::add_new_child(\t\t// add new child by input id and key\r\n\tint id,\t\t\t\t\t\t\t\t// input object id\r\n\tfloat key)\t\t\t\t\t\t\t// input key\r\n{\r\n\tif (num_entries_ >= capacity_) {\r\n\t\terror(\"BLeafNode::add_new_child entry overflow\", true);\r\n\t}\r\n\r\n\tid_[num_entries_] = id;\t\t\t// add new id into its pos\r\n\r\n\tif ((num_entries_ * SIZEINT) % INDEX_SIZE_LEAF_NODE == 0) {\r\n\t\tif (num_keys_ >= capacity_keys_) {\r\n\t\t\terror(\"BLeafNode::add_new_child key overflow\", true);\r\n\t\t}\r\n\r\n\t\tkey_[num_keys_] = key;\t\t// add new key into its pos\r\n\t\tnum_keys_++;\t\t\t\t// update <num_keys>\r\n\t}\r\n\r\n\tnum_entries_++;\t\t\t\t\t// update <num_entries>\r\n\tdirty_ = true;\t\t\t\t\t// node modified, <dirty> is true\r\n}\r\n\r\n\r\n"
  },
  {
    "path": "algorithms/QALSH/src/b_node.h",
    "content": "#ifndef __B_NODE_H\r\n#define __B_NODE_H\r\n\r\nclass BlockFile;\r\nclass BTree;\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BNode: basic structure of node in b-tree\r\n// -----------------------------------------------------------------------------\r\nclass BNode {\r\npublic:\r\n\tBNode();\t\t\t\t\t\t// constructor\r\n\tvirtual ~BNode();\t\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void init(\t\t\t\t// init a new node, which not exist\r\n\t\tint level,\t\t\t\t\t\t// level (depth) in b-tree\r\n\t\tBTree* btree);\t\t\t\t\t// b-tree of this node\r\n\r\n\tvirtual void init_restore(\t\t// load an exist node from disk to init\r\n\t\tBTree* btree,\t\t\t\t\t// b-tree of this node\r\n\t\tint block);\t\t\t\t\t\t// address of file of this node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void read_from_buffer(\t// read a b-node from buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\tvirtual void write_to_buffer(\t// write a b-node into buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual int get_entry_size();\t// get entry size in b-node\r\n\r\n\t\t\t\t\t\t\t\t\t// find pos just less than input key\r\n\tvirtual int find_position_by_key(\r\n\t\tfloat key);\t\t\t\t\t\t// input key\r\n\r\n\tvirtual float get_key(\t\t\t// get <key> indexed by <index>\r\n\t\tint index);\t\t\t\t\t\t// index\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get left sibling node\r\n\tvirtual BNode* get_left_sibling();\r\n\t\t\t\t\t\t\t\t\t// get right sibling node\r\n\tvirtual BNode* get_right_sibling();\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint get_block();\t\t\t\t// get <block_>\r\n\r\n\tint get_num_entries();\t\t\t// get <num_entries_>\r\n\r\n\tint get_level();\t\t\t\t// get <level_>\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint  get_header_size();\t\t\t// get header size in b-node\r\n\r\n\tfloat get_key_of_node();\t\t\t// get key of this node\r\n\r\n\tbool isFull();\t\t\t\t\t// whether is full?\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid set_left_sibling(\t\t\t// set <left_sibling>\r\n\t\tint left_sibling);\t\t\t\t// addr of left sibling node\r\n\r\n\tvoid set_right_sibling(\t\t\t// set <right sibling>\r\n\t\tint right_sibling);\t\t\t\t// addr of right sibling node\r\n\r\nprotected:\r\n\t// -------------------------------------------------------------------------\r\n\tchar   level_;\t\t\t\t\t// level of b-tree (level > 0)\r\n\tint    num_entries_;\t\t\t// number of entries in this node\r\n\tint    left_sibling_;\t\t\t// addr in disk for left  sibling\r\n\tint    right_sibling_;\t\t\t// addr in disk for right sibling\r\n\tfloat* key_;\t\t\t\t\t// keys\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tbool   dirty_;\t\t\t\t\t// if dirty, write back to file\r\n\tint    block_;\t\t\t\t\t// addr of disk for this node\r\n\tint    capacity_;\t\t\t\t// max num of entries can be stored\r\n\tBTree* btree_;\t\t\t\t\t// b-tree of this node\r\n};\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BIndexNode: structure of index node in b-tree\r\n// -----------------------------------------------------------------------------\r\nclass BIndexNode : public BNode {\r\npublic:\r\n\tBIndexNode();\t\t\t\t\t// constructor\r\n\tvirtual ~BIndexNode();\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void init(\t\t\t\t// init a new node, which not exist\r\n\t\tint level,\t\t\t\t\t\t// level (depth) in b-tree\r\n\t\tBTree* btree);\t\t\t\t\t// b-tree of this node\r\n\r\n\tvirtual void init_restore(\t\t// load an exist node from disk to init\r\n\t\tBTree* btree,\t\t\t\t\t// b-tree of this node\r\n\t\tint block);\t\t\t\t\t\t// address of file of this node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void read_from_buffer(\t// read a b-node from buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\tvirtual void write_to_buffer(\t// write a b-node into buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual int get_entry_size();\t// get entry size in b-node\r\n\r\n\t\t\t\t\t\t\t\t\t// find pos just less than input key\r\n\tvirtual int find_position_by_key(\r\n\t\tfloat key);\t\t\t\t\t\t// input key\r\n\r\n\tvirtual float get_key(\t\t\t// get <key_> indexed by <index>\r\n\t\tint index);\t\t\t\t\t\t// index\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get left sibling node\r\n\tvirtual BIndexNode* get_left_sibling();\t\r\n\t\t\t\t\t\t\t\t\t// get right sibling node\r\n\tvirtual BIndexNode* get_right_sibling();\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint get_son(\t\t\t\t\t// get <son_> indexed by <index>\r\n\t\tint index);\t\t\t\t\t\t// index\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid add_new_child(\t\t\t\t// add new child by its child node\r\n\t\tfloat key,\t\t\t\t\t\t// input key\r\n\t\tint son);\t\t\t\t\t\t// input son\r\n\r\nprotected:\r\n\tint* son_;\t\t\t\t\t\t// addr of son node\r\n};\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BLeafNode: structure of leaf node in b-tree\r\n// -----------------------------------------------------------------------------\r\nclass BLeafNode : public BNode {\r\npublic:\r\n\tBLeafNode();\t\t\t\t\t// constructor\r\n\tvirtual ~BLeafNode();\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void init(\t\t\t\t// init a new node, which not exist\r\n\t\tint level,\t\t\t\t\t\t// level (depth) in b-tree\r\n\t\tBTree* btree);\t\t\t\t\t// b-tree of this node\r\n\r\n\tvirtual void init_restore(\t\t// load an exist node from disk to init\r\n\t\tBTree* btree,\t\t\t\t\t// b-tree of this node\r\n\t\tint block);\t\t\t\t\t\t// address of file of this node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual void read_from_buffer(\t// read a b-node from buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\tvirtual void write_to_buffer(\t// write a b-node into buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// store info of a b-node\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvirtual int get_entry_size();\t// get entry size in b-node\r\n\r\n\t\t\t\t\t\t\t\t\t// find pos just less than input key\r\n\tvirtual int find_position_by_key(\r\n\t\tfloat key);\t\t\t\t\t\t// input key\r\n\r\n\tvirtual float get_key(\t\t\t// get <key_> indexed by <index>\r\n\t\tint index);\t\t\t\t\t\t// index\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// get left sibling node\r\n\tvirtual BLeafNode* get_left_sibling();\r\n\t\t\t\t\t\t\t\t\t// get right sibling node\r\n\tvirtual BLeafNode* get_right_sibling();\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint get_key_size(\t\t\t\t// get key size of this node\r\n\t\tint block_length);\t\t\t\t// block length\r\n\r\n\tint get_increment();\t\t\t// get <increment>\r\n\r\n\tint get_num_keys();\t\t\t\t// get <num_keys_>\r\n\r\n\tint get_entry_id(\t\t\t\t// get entry id indexed by <index>\r\n\t\tint index);\t\t\t\t\t\t// index\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid add_new_child(\t\t\t\t// add new child by input id and key\r\n\t\tint id,\t\t\t\t\t\t\t// input object id\r\n\t\tfloat key);\t\t\t\t\t\t// input key\r\n\r\nprotected:\r\n\tint  num_keys_;\t\t\t\t\t// number of keys\r\n\tint* id_;\t\t\t\t\t\t// object id\r\n\r\n\tint capacity_keys_;\t\t\t\t// max num of keys can be stored\r\n};\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/b_tree.cpp",
    "content": "#include \"headers.h\"\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BTree: b-tree to index hash values produced by qalsh\r\n// -----------------------------------------------------------------------------\r\nBTree::BTree()\t\t\t\t\t\t// constructor\r\n{\r\n\troot_ = -1;\r\n\tfile_ = NULL;\r\n\troot_ptr_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBTree::~BTree()\t\t\t\t\t\t// destructor\r\n{\r\n\tif (root_ptr_ != NULL) {\t\t// release <root_ptr_>\r\n\t\tdelete root_ptr_; root_ptr_ = NULL;\r\n\t}\r\n\r\n\tchar* header = new char[file_->get_blocklength()];\r\n\twrite_header(header);\t\t\t// write <root_> to <header>\r\n\tfile_->set_header(header);\t\t// write back to disk\r\n\r\n\tdelete[] header; header = NULL;\r\n\r\n\tif (file_ != NULL) {\t\t\t// release <file_>\r\n\t\tdelete file_; file_ = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BTree::init(\t\t\t\t\t// init a new tree\r\n\tchar* fname,\t\t\t\t\t\t// file name\r\n\tint b_length)\t\t\t\t\t\t// block length\r\n{\r\n\tFILE* fp = fopen(fname, \"r\");\r\n\tif (fp) {\t\t\t\t\t\t// check whether the file exist\r\n\t\tfclose(fp);\t\t\t\t\t// ask whether replace?\r\n\t\tprintf(\"The file \\\"%s\\\" exists. Replace? (y/n)\", fname);\r\n\t\t\r\n\t\tchar c ='y'; //getchar();\t\t\t// input 'Y' or 'y' or others\r\n\t\t//getchar();\t\t\t\t\t// input <ENTER>\r\n\t\tif (c != 'y' && c != 'Y') {\t// if not remove existing file\r\n\t\t\terror(\"\", true);\t\t// program will be stopped.\r\n\t\t}\r\n\t\tremove(fname);\t\t\t// otherwise, remove existing file\r\n\t}\r\n\t\t\t\t\t\t\t\t\t// init <file>, b-tree store here\r\n\tfile_ = new BlockFile(fname, b_length);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Init the first node: to store <blocklength> (page size of a node),\r\n\t//  <number> (number of nodes including both index node and leaf node), \r\n\t//  and <root> (address of root node)\r\n\t// -------------------------------------------------------------------------\r\n\troot_ptr_ = new BIndexNode();\r\n\troot_ptr_->init(0, this);\r\n\troot_ = root_ptr_->get_block();\r\n\tdelete_root();\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BTree::init_restore(\t\t\t// load the tree from a tree file\r\n\tchar* fname)\t\t\t\t\t\t// file name\r\n{\r\n\tFILE* fp = fopen(fname, \"r\");\t// check whether the file exists\r\n\tif (!fp) {\r\n\t\tprintf(\"tree file %s does not exist\\n\", fname);\r\n\t\tdelete[] fname; fname = NULL;\r\n\t\terror(\"\", true);\r\n\t}\r\n\tfclose(fp);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  It doesn't matter to initialize blocklength to 0.\r\n\t//  After reading file, <blocklength> will be reinitialized by file.\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// init <file>\r\n\tfile_ = new BlockFile(fname, 0);\r\n\troot_ptr_ = NULL;\t\t\t\t// init <root_ptr>\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read the content after first 8 bytes of first block into <header>\r\n\t// -------------------------------------------------------------------------\r\n\tchar* header = new char[file_->get_blocklength()];\r\n\tfile_->read_header(header);\t\t// read remain bytes from header\r\n\tread_header(header);\t\t\t// init <root> from <header>\r\n\r\n\tif (header != NULL) {\t\t\t// release space\r\n\t\tdelete[] header; header = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BTree::read_header(\t\t\t\t// read <root> from buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// buffer\r\n{\r\n\tmemcpy(&root_, buf, SIZEINT);\r\n\treturn SIZEINT;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BTree::write_header(\t\t\t// write <root> to buffer\r\n\tchar* buf)\t\t\t\t\t\t\t// buffer (return)\r\n{\r\n\tmemcpy(buf, &root_, SIZEINT);\r\n\treturn SIZEINT;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BTree::load_root()\t\t\t\t// load <root_ptr> of b-tree\r\n{\r\n\tif (root_ptr_ == NULL)  {\r\n\t\troot_ptr_ = new BIndexNode();\r\n\t\troot_ptr_->init_restore(this, root_);\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BTree::delete_root()\t\t\t// delete <root_ptr>\r\n{\r\n\tif (root_ptr_ != NULL) {\r\n\t\tdelete root_ptr_; root_ptr_ = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BTree::bulkload(\t\t\t\t// bulkload a tree from memory\r\n\tHashValue* hashtable,\t\t\t\t// hash table\r\n\tint n)\t\t\t\t\t\t\t\t// number of entries\r\n{\r\n\tBIndexNode* index_child   = NULL;\r\n\tBIndexNode* index_prev_nd = NULL;\r\n\tBIndexNode* index_act_nd  = NULL;\r\n\r\n\tBLeafNode* leaf_child   = NULL;\r\n\tBLeafNode* leaf_prev_nd = NULL;\r\n\tBLeafNode* leaf_act_nd  = NULL;\r\n\r\n\tint   id    = -1;\r\n\tint   block = -1;\r\n\tfloat key   = MINREAL;\r\n\r\n\tbool first_node  = false;\t\t// determine relationship of sibling\r\n\tint  start_block = -1;\t\t\t// position of first node\r\n\tint  end_block   = -1;\t\t\t// position of last node\r\n\r\n\tint current_level    = -1;\t\t// current level (leaf level is 0)\r\n\tint last_start_block = -1;\t\t// to build b-tree level by level\r\n\tint last_end_block   = -1;\t\t// to build b-tree level by level\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Build leaf node from <_hashtable> (level = 0)\r\n\t// -------------------------------------------------------------------------\r\n\tstart_block = 0;\r\n\tend_block   = 0;\r\n\tfirst_node  = true;\r\n\r\n\tfor (int i = 0; i < n; i++) {\r\n\t\tid = hashtable[i].id_;\r\n\t\tkey = hashtable[i].proj_;\r\n\r\n\t\tif (!leaf_act_nd) {\r\n\t\t\tleaf_act_nd = new BLeafNode();\r\n\t\t\tleaf_act_nd->init(0, this);\r\n\r\n\t\t\tif (first_node) {\r\n\t\t\t\tfirst_node = false;\t// init <start_block>\r\n\t\t\t\tstart_block = leaf_act_nd->get_block();\r\n\t\t\t}\r\n\t\t\telse {\t\t\t\t\t// label sibling\r\n\t\t\t\tleaf_act_nd->set_left_sibling(leaf_prev_nd->get_block());\r\n\t\t\t\tleaf_prev_nd->set_right_sibling(leaf_act_nd->get_block());\r\n\r\n\t\t\t\tdelete leaf_prev_nd; leaf_prev_nd = NULL;\r\n\t\t\t}\r\n\t\t\tend_block = leaf_act_nd->get_block();\r\n\t\t}\t\t\t\t\t\t\t// add new entry\r\n\t\tleaf_act_nd->add_new_child(id, key);\t\r\n\r\n\t\tif (leaf_act_nd->isFull()) {// change next node to store entries\r\n\t\t\tleaf_prev_nd = leaf_act_nd;\r\n\t\t\tleaf_act_nd = NULL;\r\n\t\t}\r\n\t}\r\n\tif (leaf_prev_nd != NULL) {\t\t// release the space\r\n\t\tdelete leaf_prev_nd; leaf_prev_nd = NULL;\r\n\t}\r\n\tif (leaf_act_nd != NULL) {\r\n\t\tdelete leaf_act_nd; leaf_act_nd = NULL;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Stop consition: lastEndBlock == lastStartBlock (only one node, as root)\r\n\t// -------------------------------------------------------------------------\r\n\tcurrent_level = 1;\t\t\t\t// build the b-tree level by level\r\n\tlast_start_block = start_block;\r\n\tlast_end_block = end_block;\r\n\r\n\twhile (last_end_block > last_start_block) {\r\n\t\tfirst_node = true;\r\n\t\tfor (int i = last_start_block; i <= last_end_block; i++) {\r\n\t\t\tblock = i;\t\t\t\t// get <block>\r\n\t\t\tif (current_level == 1) {\r\n\t\t\t\tleaf_child = new BLeafNode();\r\n\t\t\t\tleaf_child->init_restore(this, block);\r\n\t\t\t\tkey = leaf_child->get_key_of_node();\r\n\r\n\t\t\t\tdelete leaf_child; leaf_child = NULL;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tindex_child = new BIndexNode();\r\n\t\t\t\tindex_child->init_restore(this, block);\r\n\t\t\t\tkey = index_child->get_key_of_node();\r\n\r\n\t\t\t\tdelete index_child; index_child = NULL;\r\n\t\t\t}\r\n\r\n\t\t\tif (!index_act_nd) {\r\n\t\t\t\tindex_act_nd = new BIndexNode();\r\n\t\t\t\tindex_act_nd->init(current_level, this);\r\n\r\n\t\t\t\tif (first_node) {\r\n\t\t\t\t\tfirst_node = false;\r\n\t\t\t\t\tstart_block = index_act_nd->get_block();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tindex_act_nd->set_left_sibling(index_prev_nd->get_block());\r\n\t\t\t\t\tindex_prev_nd->set_right_sibling(index_act_nd->get_block());\r\n\r\n\t\t\t\t\tdelete index_prev_nd; index_prev_nd = NULL;\r\n\t\t\t\t}\r\n\t\t\t\tend_block = index_act_nd->get_block();\r\n\t\t\t}\t\t\t\t\t\t// add new entry\r\n\t\t\tindex_act_nd->add_new_child(key, block);\r\n\r\n\t\t\tif (index_act_nd->isFull()) {\r\n\t\t\t\tindex_prev_nd = index_act_nd;\r\n\t\t\t\tindex_act_nd = NULL;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (index_prev_nd != NULL) {// release the space\r\n\t\t\tdelete index_prev_nd; index_prev_nd = NULL;\r\n\t\t}\r\n\t\tif (index_act_nd != NULL) {\r\n\t\t\tdelete index_act_nd; index_act_nd = NULL;\r\n\t\t}\r\n\t\t\t\t\t\t\t\t\t// update info\r\n\t\tlast_start_block = start_block;\r\n\t\tlast_end_block = end_block;\t// build b-tree of higher level\r\n\t\tcurrent_level++;\r\n\t}\r\n\troot_ = last_start_block;\t\t// update the <root>\r\n\r\n\tif (index_prev_nd != NULL) {\r\n\t\tdelete index_prev_nd; index_prev_nd = NULL;\r\n\t}\r\n\tif (index_act_nd != NULL) {\r\n\t\tdelete index_act_nd; index_act_nd = NULL;\r\n\t}\r\n\tif (index_child != NULL) {\r\n\t\tdelete index_act_nd; index_act_nd = NULL;\r\n\t}\r\n\tif (leaf_prev_nd != NULL) {\r\n\t\tdelete leaf_prev_nd; leaf_prev_nd = NULL;\r\n\t}\r\n\tif (leaf_act_nd != NULL) {\r\n\t\tdelete leaf_act_nd; leaf_act_nd = NULL;\r\n\t}\r\n\tif (leaf_child != NULL) {\r\n\t\tdelete leaf_child; leaf_child = NULL;\r\n\t}\r\n\r\n\treturn 0;\t\t\t\t\t\t// success to return\r\n}\r\n"
  },
  {
    "path": "algorithms/QALSH/src/b_tree.h",
    "content": "#ifndef __B_TREE_H\r\n#define __B_TREE_H\r\n\r\n\r\nclass BlockFile;\r\nclass BNode;\r\n\r\nstruct HashValue;\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BTree: b-tree to index hash tables produced by qalsh\r\n// -----------------------------------------------------------------------------\r\nclass BTree {\r\npublic:\r\n\tint root_;\t\t\t\t\t\t// address of disk for root\r\n\r\n\tBlockFile* file_;\t\t\t\t// file in disk to store\r\n\tBNode* root_ptr_;\t\t\t\t// pointer of root\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tBTree();\t\t\t\t\t\t// constructor\r\n\t~BTree();\t\t\t\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid init(\t\t\t\t\t\t// init a new b-tree\r\n\t\tchar* fname,\t\t\t\t\t// file name\r\n\t\tint b_length);\t\t\t\t\t// block length\r\n\r\n\tvoid init_restore(\t\t\t\t// load an exist b-tree\r\n\t\tchar* fname);\t\t\t\t\t// file name\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint bulkload(\t\t\t\t\t// bulkload b-tree from hash table in mem\r\n\t\tHashValue* hashtable,\t\t\t// hash table\r\n\t\tint n);\t\t\t\t\t\t\t// number of entries\r\n\r\nprivate:\r\n\t// -------------------------------------------------------------------------\r\n\tint read_header(\t\t\t\t// read <root> from buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// the buffer\r\n\r\n\tint write_header(\t\t\t\t// write <root> into buffer\r\n\t\tchar* buf);\t\t\t\t\t\t// the buffer (return)\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid load_root();\t\t\t\t// load root of b-tree\r\n\r\n\tvoid delete_root();\t\t\t\t// delete root of b-tree\r\n};\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/block_file.cpp",
    "content": "#include \"headers.h\"\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  block_file.cpp: implementation of class BlockFile. When these classes are \r\n//  updated, remember to modify the version info in the constructors.\r\n//\r\n//  Some points to NOTE:\r\n//  1) 2 types of block # are used (i.e. the internal # (e.g. act_block) \r\n//     and external # (e.g. pos)). internal # is one larger than external #\r\n//     because the first block of the file is used to store header info. \r\n//     data info is stored starting from the 2nd block (excluding the header\r\n//     block).both types of # start from 0.\r\n//\r\n//  2) \"act_block\" is internal block #. \"number\" is the # of data block (i.e. \r\n//     excluding the header block). maximum actblock equals to number. Maximum \r\n//     external block # equals to number - 1 \r\n//\r\n//  3) cache_cont records the internal numbers. \r\n// -----------------------------------------------------------------------------\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BlockFile: structure of reading and writing file for b-tree\r\n// -----------------------------------------------------------------------------\r\nBlockFile::BlockFile(\t\t\t\t// constructor\r\n\tchar* name,\t\t\t\t\t\t\t// file name\r\n\tint b_length)\t\t\t\t\t\t// block length\r\n{\r\n\tfile_name_ = new char[strlen(name) + 1];\r\n\tstrcpy(file_name_, name);\r\n\tblock_length_ = b_length;\r\n\r\n\tnum_blocks_ = 0;\t\t\t\t// num of blocks, init to 0\r\n\t// -------------------------------------------------------------------------\r\n\t//  Init <fp> and open <file_name_>. If <file_name_> exists, then fp != 0,\r\n\t//  and we excute if-clause program. Otherwise, we excute else-clause \r\n\t//  program.\r\n\t//\r\n\t//  \"rb+\": read or write data from or into binary doc. if the file not \r\n\t//  exist, it will return NULL.\r\n\t// -------------------------------------------------------------------------\r\n\tif ((fp_ = fopen(name, \"rb+\")) != 0) {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Init <new_flag_> (since the file exists, <new_flag_> is false).\r\n\t\t//  Reinit <block_length_> (determined by the doc itself).\r\n\t\t//  Reinit <num_blocks_> (number of blocks in doc itself).\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tnew_flag_ = false;\t\t\t// reinit <block_length_> by file\r\n\t\tblock_length_ = fread_number();\r\n\t\tnum_blocks_ = fread_number();\r\n\t}\r\n\telse {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  <file_name_> not exists. we construct new file and reinit paras.\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tif (block_length_ < BFHEAD_LENGTH) {\r\n\t\t\t// -----------------------------------------------------------------\r\n\t\t\t//  Ensure <block_length_> is larger than or equal to 8 bytes.\r\n\t\t\t//  8 bytes = 4 bypes <block_length_> + 4 bytes <num_blocks_>.\r\n\t\t\t// -----------------------------------------------------------------\r\n\t\t\terror(\"BlockFile::BlockFile couldnot open file.\\n\", true);\r\n\t\t}\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  \"wb+\": read or write data from or into binary doc. if file not\r\n\t\t//  exist, we will construct a new file.\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tfp_ = fopen(file_name_, \"wb+\");\r\n\t\tif (fp_ == NULL) {\r\n\t\t\terror(\"BlockFile::BlockFile could not create file.\\n\", true);\r\n\t\t}\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Init <new_flag_>: as file is just constructed (new), it is true.\r\n\t\t//  Write <block_length_> and <num_blocks_> to the header of file.\r\n\t\t//  Since the file is empty (new), <num_blocks_> is 0 (no blocks in it).\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tnew_flag_ = true;\r\n\t\tfwrite_number(block_length_);\r\n\t\tfwrite_number(0);\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Since <block_length_> >= 8 bytes, for the remain bytes, we will \r\n\t\t//  init 0 to them.\r\n\t\t//\r\n\t\t//  ftell() return number of bytes from current position to the \r\n\t\t//  beginning position of the file.\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tchar* buffer = NULL;\r\n\t\tint len = -1;\t\t\t\t// cmpt remain length of a block\r\n\t\tbuffer = new char[(len = block_length_ - (int) ftell(fp_))];\r\n\t\t\t\t\t\t\t\t\t// set to 0 to remain bytes\r\n\t\tmemset(buffer, 0, sizeof(buffer));\r\n\t\tput_bytes(buffer, len);\r\n\r\n\t\tdelete[] buffer; buffer = NULL;\r\n\t}\r\n\t// -------------------------------------------------------------------------\r\n\t//  Redirect file pointer to the start position of the file\r\n\t// -------------------------------------------------------------------------\r\n\tfseek(fp_, 0, SEEK_SET);\r\n\tact_block_ = 0;\t\t\t\t\t// init <act_block_> (no blocks)\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nBlockFile::~BlockFile()\t\t\t\t// destructor\r\n{\r\n\tif (file_name_) {\t\t\t\t// release space of <file_name_>\r\n\t\tdelete[] file_name_; file_name_ = NULL;\r\n\t}\r\n\tif (fp_) fclose(fp_);\t\t\t// close <fp_>\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid BlockFile::fwrite_number(\t\t// write an <int> value to bin file\r\n\tint value)\t\t\t\t\t\t\t// a value of type <int>\r\n{\r\n\tput_bytes((char *) &value, SIZEINT);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint BlockFile::fread_number() \t\t// read an <int> value from bin file\r\n{\r\n\tchar ca[SIZEINT];\r\n\tget_bytes(ca, SIZEINT);\r\n\r\n\treturn *((int *)ca);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Note that this func does not read the header of blockfile. It fetches the \r\n//  info in the first block excluding the header of blockfile.\r\n// -----------------------------------------------------------------------------\r\nvoid BlockFile::read_header(\t\t// read remain bytes excluding header\r\n\tchar* buffer)\t\t\t\t\t\t// contain remain bytes (return)\r\n{\r\n\t\t\t\t\t\t\t\t\t// jump out of first 8 bytes\r\n\tfseek(fp_, BFHEAD_LENGTH, SEEK_SET);\r\n\t\t\t\t\t\t\t\t\t// read remain bytes into <buffer>\r\n\tget_bytes(buffer, block_length_ - BFHEAD_LENGTH); \r\n\r\n\tif (num_blocks_ < 1) {\t\t\t// no remain bytes\r\n\t\tfseek(fp_, 0, SEEK_SET);\t// fp return to beginning pos\r\n\t\tact_block_ = 0;\t\t\t\t// no act block\r\n\t} else {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Since we have read the first block (header block) of block file,\r\n\t\t//  thus <act_block_> = 1, and the file pointer point to the 2nd block\r\n\t\t//  (first block to store real data).\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tact_block_ = 1;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Note that this func does not write the header of blockfile. It writes the \r\n//  info in the first block excluding the header of blockfile.\r\n// -----------------------------------------------------------------------------\r\nvoid BlockFile::set_header(\t\t\t// set remain bytes excluding header\r\n\tchar* header)\t\t\t\t\t\t// contain remain bytes\r\n{\r\n\t\t\t\t\t\t\t\t\t// jump out of first 8 bytes\r\n\tfseek(fp_, BFHEAD_LENGTH, SEEK_SET);\r\n\t\t\t\t\t\t\t\t\t// write remain bytes into <buffer>\r\n\tput_bytes(header, block_length_ - BFHEAD_LENGTH);\r\n\t\r\n\tif (num_blocks_ < 1) {\t\t\t// no remain bytes\r\n\t\tfseek(fp_, 0, SEEK_SET);\t// fp return to beginning pos\r\n\t\tact_block_ = 0;\t\t\t\t// no act block\r\n\t}\r\n\telse {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Since we have write the first block (header block) of block file,\r\n\t\t//  thus <act_block_> = 1, and the file pointer point to the 2nd block \r\n\t\t//  (first block to store real data).\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tact_block_ = 1;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Read a <block> from <index>\r\n//\r\n//  We point out the difference of counting among the <number>, <act_block> \r\n//  and <pos>.\r\n//  (1) <num_blocks_>: record the number of blocks, excluding the block\r\n//      of header. start from 1. (internal block)\r\n//  (2) <act_block_>: record the number of blocks currently read or written,\r\n//      including the block of header, thus when we read or write file,\r\n//      current <act_block> equal to 1. <act_block> is corresponding to\r\n//      file pointer.\r\n//  (3) <index> : record position of block we want to read or write, excluding\r\n//      the block of header. start from 0. (external block), i.e., when \r\n//      <index> = 0, the file pointer is pointed to next block after the \r\n//      block of header, at this time, <act_block_> equals to 1.\r\n//\r\n//  i.e. if number = 3, there are 4 blocks in the file, 1 header block +\r\n//  3 data block.\r\n//\r\n//  When file is opened, <act_block_> = 1. if <index> = 1, it means that we \r\n//  want to read or write the 3rd block (2nd data block), thus firstly index++,\r\n//  then <index> = 2, then fseek move to 2nd data block.\r\n//\r\n//  After reading or writing the 2nd data block, file pointer is pointed to \r\n//  the 3rd data block. As we know it has read or written 3 blocks, thus \r\n//  currently <act_block> = <index> + 1 = 2 + 1 = 3.\r\n// -----------------------------------------------------------------------------\r\nbool BlockFile::read_block(\t\t\t// read a <block> from <index>\r\n\tBlock block,\t\t\t\t\t\t// a <block> (return)\r\n\tint index)\t\t\t\t\t\t\t// pos of the block\r\n{\r\n\tindex++;\t\t\t\t\t\t// extrnl block to intrnl block\r\n\t\t\t\t\t\t\t\t\t// move to the position\r\n\tif (index <= num_blocks_ && index > 0) {\r\n\t\tseek_block(index);\r\n\t}\r\n\telse {\r\n\t\tprintf(\"BlockFile::read_block request the block %d \"\r\n\t\t\t\"which is illegal.\", index - 1);\r\n\t\terror(\"\\n\", true);\r\n\t}\r\n\r\n\tget_bytes(block, block_length_);// read the block\r\n\tif (index + 1 > num_blocks_) {\t// <fp_> reaches the end of file\r\n\t\tfseek(fp_, 0, SEEK_SET);\r\n\t\tact_block_ = 0;\t\t\t\t// <act_block_> rewind to start pos\r\n\t}\r\n\telse {\r\n\t\tact_block_ = index + 1;\t\t// <act_block_> to next pos\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Note that this function can only write to an already \"allocated\" block (in \r\n//  the range of <num_blocks>).\r\n//  If you allocate a new block, please use \"append_block\" instead.\r\n// -----------------------------------------------------------------------------\r\nbool BlockFile::write_block(\t\t// write a <block> into <index>\r\n\tBlock block,\t\t\t\t\t\t// a <block>\r\n\tint index)\t\t\t\t\t\t\t// position of the blocks\r\n{\r\n\tindex++;\t\t\t\t\t\t// extrnl block to intrnl block\r\n\t\t\t\t\t\t\t\t\t// move to the position\r\n\tif (index <= num_blocks_ && index > 0) {\r\n\t\tseek_block(index);\r\n\t}\r\n\telse {\r\n\t\tprintf(\"BlockFile::write_block request the block %d \"\r\n\t\t\t\"which is illegal.\", index - 1);\r\n\t\terror(\"\\n\", true);\r\n\t}\r\n\t\r\n\tput_bytes(block, block_length_);// write this block\r\n\tif (index + 1 > num_blocks_) {\t// update <act_block_>\r\n\t\tfseek(fp_, 0, SEEK_SET);\r\n\t\tact_block_ = 0;\r\n\t}\r\n\telse {\r\n\t\tact_block_ = index + 1;\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Append a new block at the end of file (out of the range of <num_blocks_>).\r\n//  The file pointer is pointed to the new appended block and return its pos.\r\n// -----------------------------------------------------------------------------\r\nint BlockFile::append_block(\t\t// append new block at the end of file\r\n\tBlock block)\t\t\t\t\t\t// the new block\r\n{\r\n\tfseek(fp_, 0, SEEK_END);\t\t// <fp_> point to the end of file\r\n\tput_bytes(block, block_length_);// write a <block>\r\n\tnum_blocks_++;\t\t\t\t\t// add 1 to <num_blocks_>\r\n\t\r\n\tfseek(fp_, SIZEINT, SEEK_SET);\t// <fp_> point to pos of header\r\n\tfwrite_number(num_blocks_);\t\t// update <num_blocks_>\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  <fp_> point to the pos of new added block. \r\n\t//  The equation <act_block_> = <num_blocks_> indicates the file pointer \r\n\t//  point to new added block.\r\n\t//  Return index of new added block\r\n\t// -------------------------------------------------------------------------\r\n\tfseek(fp_, -block_length_, SEEK_END);\r\n\treturn (act_block_ = num_blocks_) - 1;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Delete last <num> block in the file.\r\n//\r\n//  Notice: we just logically delete the data (only modifying the total number\r\n//  of blcoks), the real data is still stored in file and the size of file is \r\n//  not changed.\r\n// -----------------------------------------------------------------------------\r\nbool BlockFile::delete_last_blocks(\t// delete last <num> blocks\r\n\tint num)\t\t\t\t\t\t\t// number of blocks to be deleted\r\n{\r\n\tif (num > num_blocks_) {\t\t// check whether illegal?\r\n\t\treturn false;\r\n\t}\r\n\r\n\tnum_blocks_ -= num;\t\t\t\t// update <number>\r\n\tfseek(fp_, SIZEINT, SEEK_SET);\r\n\tfwrite_number(num_blocks_);\r\n\r\n\tfseek(fp_, 0, SEEK_SET);\t\t// <fp> point to beginning of file\r\n\tact_block_ = 0;\t\t\t\t\t// <act_block> = 0\r\n\treturn true;\r\n}\r\n\r\n"
  },
  {
    "path": "algorithms/QALSH/src/block_file.h",
    "content": "#ifndef __BLOCK_FILE_H\r\n#define __BLOCK_FILE_H\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  BlockFile: structure of reading and writing file for b-tree\r\n// -----------------------------------------------------------------------------\r\nclass BlockFile {\r\npublic:\r\n\tFILE* fp_;\t\t\t\t\t\t// file pointer\r\n\tchar* file_name_;\t\t\t\t// file name\r\n\tbool  new_flag_;\t\t\t\t// specifies if this is a new file\r\n\t\r\n\tint block_length_;\t\t\t\t// length of a block\r\n\tint act_block_;\t\t\t\t\t// block num of fp position\r\n\tint num_blocks_;\t\t\t\t// total num of blocks\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tBlockFile(\t\t\t\t\t\t// constructor\r\n\t\tchar* name,\t\t\t\t\t\t// file name\r\n\t\tint b_length);\t\t\t\t\t// length of a block\r\n\r\n\t~BlockFile();\t\t\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// write <bytes> of length <num>\r\n\tvoid put_bytes(char* bytes, int num)\r\n\t{ fwrite(bytes, num, 1, fp_); }\r\n\t\t\t\t\t\t\t\t\t// read <bytes> of length <num>\r\n\tvoid get_bytes(char* bytes, int num)\r\n\t{ fread(bytes, num, 1, fp_); }\r\n\r\n\tvoid seek_block(int bnum) \t\t// move <fp_> to the right with <bnum>\r\n\t{ fseek(fp_, (bnum - act_block_) * block_length_, SEEK_CUR); }\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tbool file_new() \t\t\t\t// whether this block is modified?\r\n\t{ return new_flag_; }\r\n\r\n\tint get_blocklength()\t\t\t// get block length\r\n\t{ return block_length_; }\r\n\r\n\tint get_num_of_blocks()\t\t\t// get number of blocks\r\n\t{ return num_blocks_; }\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid fwrite_number(\t\t\t\t// write a value (type int)\r\n\t\tint num);\t\t\t\t\t\t// value to write\r\n\r\n\tint fread_number();\t\t\t\t// read a value (type int)\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid read_header(\t\t\t\t// fetches info in the first block\r\n\t\tchar* header);\t\t\t\t\t// excluding the header of blk file\r\n\r\n\tvoid set_header(\t\t\t\t// writes the info in the first block\r\n\t\tchar* header);\t\t\t\t\t// excluding the header of blk file\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tbool read_block(\t\t\t\t// read a block <b> in the <pos>\r\n\t\tBlock block,\t\t\t\t\t// a block\r\n\t\tint index);\t\t\t\t\t\t// pos of the block\r\n\r\n\tbool write_block(\t\t\t\t// write a block <b> in the <pos>\r\n\t\tBlock block,\t\t\t\t\t// a block\r\n\t\tint index);\t\t\t\t\t\t// pos of the block\r\n\r\n\tint append_block(\t\t\t\t// append a block at the end of file\r\n\t\tBlock block);\t\t\t\t\t// a block\r\n\r\n\tbool delete_last_blocks(\t\t// delete last <num> blocks\r\n\t\tint num);\t\t\t\t\t\t// num of blocks to be deleted\r\n};\r\n\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/def.h",
    "content": "#ifndef __DEF_H\r\n#define __DEF_H\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Typedefs\r\n// -----------------------------------------------------------------------------\r\ntypedef char Block[];\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Macros\r\n// -----------------------------------------------------------------------------\r\n#define MIN(a, b)\t(((a) < (b)) ? (a) : (b))\r\n#define MAX(a, b)\t(((a) > (b)) ? (a) : (b))\r\n\r\n#define SEEK_SET 0\r\n#define SEEK_CUR 1\r\n#define SEEK_END 2\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Constants\r\n// -----------------------------------------------------------------------------\r\nconst float E  = 2.7182818F;\t\t// math constants\r\nconst float PI = 3.141592654F;\r\n\r\nconst float FLOATZERO = 1e-6F;\t\t// accuracy\r\n\t\t\t\t\t\t\t\t\t// max real value\r\nconst float MAXREAL   = 3.402823466e+38F;\r\nconst float MINREAL   = -MAXREAL;\t// min real value\r\n\r\nconst long long MAXMEMORY = 1073741824*10;\t// max memory, 1 GB\r\nconst int   MAXINT    = 2147483647;\t// max integer value\r\nconst int   MININT    = -MAXINT;\t// min integer value\r\n\r\n\t\t\t\t\t\t\t\t\t// size of type <int>\r\nconst int   SIZEINT   = (int) sizeof(int);\r\n\t\t\t\t\t\t\t\t\t// size of type <char>\r\nconst int   SIZECHAR  = (int) sizeof(char);\r\n\t\t\t\t\t\t\t\t\t// size of type <float>\r\nconst int   SIZEFLOAT = (int) sizeof(float);\r\n\t\t\t\t\t\t\t\t\t// size of type <bool>\r\nconst int   SIZEBOOL  = (int) sizeof(bool);\r\n\r\n\t\t\t\t\t\t\t\t\t// file header size\r\nconst int   BFHEAD_LENGTH = (int) (sizeof(int) * 2);\r\n\t\t\t\t\t\t\t\t\t// index size of leaf node\r\nconst int   INDEX_SIZE_LEAF_NODE = 4096;\r\nconst int   MAXK = 20;\t\t\t\t// max top-k value\r\n\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/headers.h",
    "content": "// -----------------------------------------------------------------------------\r\n// Copyright (c) 2013-2018 Sun Yat-Sen University (SYSU). All Rights Reserved.\r\n//\r\n// SYSU grants permission to use, copy, modify, and distribute this software\r\n// and its documentation for NON-COMMERCIAL purposes and without fee, provided \r\n// that this copyright notice appears in all copies.\r\n//\r\n// SYSU provides this software \"as is,\" without representations or warranties\r\n// of any kind, either expressed or implied, including but not limited to the\r\n// implied warranties of merchantability, fitness for a particular purpose, \r\n// and noninfringement. SYSU shall not be liable for any damages arising from\r\n// any use of this software.\r\n//\r\n// Authors: Qiang Huang  (huangq2011@gmail.com)\r\n//          Jianlin Feng (fengjlin@mail.sysu.edu.cn)\r\n\r\n//\r\n// Created on:       2014-03-12\r\n// Last Modified on: 2016-03-16\r\n// Version 1.1.2\r\n// -----------------------------------------------------------------------------\r\n#include <stdio.h>\r\n#include <errno.h>\r\n\r\n#include <iostream>\r\n#include <fstream>\r\n#include <string>\r\n#include <cstring>\r\n#include <cstdlib>\r\n#include <cmath>\r\n#include <ctime>\r\n#include <vector>\r\n#include <algorithm>\n#include <time.h>\r\n\r\n// -----------------------------------------------------------------------------\r\n//  For Linux directory\r\n// -----------------------------------------------------------------------------\r\n#include <unistd.h>\r\n#include <stdarg.h>\r\n#include <sys/stat.h>\r\n#include <sys/types.h>\n#include <sys/time.h>\r\n\r\n// -----------------------------------------------------------------------------\r\n//  For Windows directory\r\n// -----------------------------------------------------------------------------\r\n//#include <direct.h>\r\n//#include <io.h>\r\n\r\n\r\n#include \"def.h\"\r\n#include \"util.h\"\r\n#include \"random.h\"\r\n#include \"block_file.h\"\r\n#include \"b_node.h\"\r\n#include \"b_tree.h\"\r\n#include \"qalsh.h\"\r\n#include \"ann.h\"\r\n\r\nusing namespace std;\r\n\r\n"
  },
  {
    "path": "algorithms/QALSH/src/main.cpp",
    "content": "#include \"headers.h\"\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid usage() \t\t\t\t\t\t// display the usage of qalsh\r\n{\r\n\tprintf(\"\\nParameters of QALSH:\\n\"\r\n\t\t\"    -alg  (integer)   options of algorithms (0 - 3)\\n\"\r\n\t\t\"    -d    (integer)   dimensionality of the dataset\\n\"\r\n\t\t\"    -n    (integer)   cardinality of the dataset\\n\"\r\n\t\t\"    -qn   (integer)   number of queries\\n\"\r\n\t\t\"    -B    (integer)   page size\\n\"\r\n\t\t\"    -c    (real)      approximation ratio\\n\"\r\n\t\t\"    -ds   (string)    file path of the dataset\\n\"\r\n\t\t\"    -qs   (string)    file path of the query set\\n\"\r\n\t\t\"    -ts   (string)    file path of the ground truth set\\n\"\r\n\t\t\"    -of   (string)    output folder to store info of qalsh\\n\\n\");\r\n\r\n\tprintf(\"\\n\"\r\n\t\t\"The options of algorithms (-alg) are:\\n\"\r\n\t\t\"    0 - Ground-Truth\\n\"\r\n\t\t\"        Parameters: -alg 0 -n -qn -d -p -ds -qs -ts\\n\\n\"\r\n\t\t\"    1 - Indexing\\n\"\r\n\t\t\"        Parameters: -alg 1 -n -d -B -p -c -ds -of\\n\\n\"\r\n\t\t\"    2 - QALSH\\n\"\r\n\t\t\"        Parameters: -alg 2 -qn -d -p -qs -ts -of\\n\\n\"\r\n\t\t\"    3 - Linear Scan\\n\"\r\n\t\t\"        Parameters: -alg 3 -n -qn -d -B -p -qs -ts -of\\n\\n\");\r\n\r\n\tprintf(\"NOTE: Each parameter is required to be separated\"\r\n\t\t\"by one space.\\n\\n\\n\");\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint main(int nargs, char **args)\r\n{\r\n\tsrand((unsigned) time(NULL));\t// set the random seed\r\n\t//usage();\r\n\r\n\tint alg = -1;\t\t\t\t\t// option of algorithm\r\n\tint n   = -1;\t\t\t\t\t// cardinality\r\n\tint qn  = -1;\t\t\t\t\t// query number\r\n\tint d   = -1;\t\t\t\t\t// dimensionality\r\n\tint B   = -1;\t\t\t\t\t// page size\r\n\tint N   =100 ;\r\n\tfloat ratio = -1.0f;\t\t\t// approximation ratio\r\n\r\n\tchar  data_set[200];\t\t\t// address of data set\r\n\tchar  query_set[200];\t\t\t// address of query set\r\n\tchar  truth_set[200];\t\t\t// address of ground truth file\r\n\tchar  output_folder[200];\t\t// output folder\n\tchar  result_folder[200];\n\tchar  index_folder[200];\r\n\r\n\tbool failed = false;\r\n\tint  cnt = 1;\r\n\t\r\n\twhile (cnt < nargs && !failed) {\r\n\t\tif (strcmp(args[cnt], \"-alg\") == 0) {\r\n\t\t\talg = atoi(args[++cnt]);\r\n\t\t\tprintf(\"alg = %d\\n\", alg);\r\n\r\n\t\t\tif (alg < 0 || alg > 5) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-n\") == 0) {\r\n\t\t\tn = atoi(args[++cnt]);\r\n\t\t\tprintf(\"n = %d\\n\", n);\r\n\t\t\tif (n <= 0) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-d\") == 0) {\r\n\t\t\td = atoi(args[++cnt]);\r\n\t\t\tprintf(\"d = %d\\n\", d);\r\n\t\t\tif (d <= 0) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\n\t\telse if (strcmp(args[cnt], \"-N\") == 0) {\r\n\t\t\tN = atoi(args[++cnt]);\r\n\t\t\tprintf(\"N = %d\\n\", N);\r\n\t\t\tif (N <= 0) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-qn\") == 0) {\r\n\t\t\tqn = atoi(args[++cnt]);\r\n\t\t\tprintf(\"qn = %d\\n\", qn);\r\n\t\t\tif (qn <= 0) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-B\") == 0) {\r\n\t\t\tB = atoi(args[++cnt]);\r\n\t\t\tprintf(\"B = %d\\n\", B);\r\n\t\t\tif (B <= 0) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-c\") == 0) {\r\n\t\t\tratio = (float) atof(args[++cnt]);\r\n\t\t\tprintf(\"c = %.2f\\n\", ratio);\r\n\t\t\tif (ratio <= 1.0f) {\r\n\t\t\t\tfailed = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-ds\") == 0) {\r\n\t\t\tstrncpy(data_set, args[++cnt], sizeof(data_set));\r\n\t\t\tprintf(\"dataset = %s\\n\", data_set);\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-qs\") == 0) {\r\n\t\t\tstrncpy(query_set, args[++cnt], sizeof(query_set));\r\n\t\t\tprintf(\"query set = %s\\n\", query_set);\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-ts\") == 0) {\r\n\t\t\tstrncpy(truth_set, args[++cnt], sizeof(truth_set));\r\n\t\t\tprintf(\"truth set = %s\\n\", truth_set);\r\n\t\t}\r\n\t\telse if (strcmp(args[cnt], \"-of\") == 0) {\r\n\t\t\tstrncpy(output_folder, args[++cnt], sizeof(output_folder));\r\n\t\t\tprintf(\"output folder = %s\\n\", output_folder);\r\n\t\t\t\t\t\t\t\t\t// ensure the path is a folder\r\n\t\t\tint len = (int) strlen(output_folder);\r\n\t\t\tif (output_folder[len - 1] != '/') {\r\n\t\t\t\toutput_folder[len] = '/';\r\n\t\t\t\toutput_folder[len + 1] = '\\0';\r\n\t\t\t}\r\n\t\t}\n\t\telse if (strcmp(args[cnt], \"-if\") == 0) {\r\n\t\t\tstrncpy(index_folder, args[++cnt], sizeof(index_folder));\r\n\t\t\tprintf(\"index folder = %s\\n\", index_folder);\r\n\t\t}\n\t\telse if (strcmp(args[cnt], \"-rf\") == 0) {\r\n\t\t\tstrncpy(result_folder, args[++cnt], sizeof(result_folder));\r\n\t\t\tprintf(\"result folder = %s\\n\", result_folder);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfailed = true;\r\n\t\t\terror(\"Parameters error!\\n\", false);\r\n\t\t\tusage();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tcnt++;\r\n\t}\r\n\tprintf(\"\\n\");\r\n\r\n\tswitch (alg) {\r\n\tcase 0:\r\n\t\tground_truth(n, qn, d, data_set, query_set, truth_set);\r\n\t\tbreak;\r\n\tcase 1:\r\n\t\tindexing(n, d, B, ratio, N, data_set, output_folder, index_folder);\r\n\t\tbreak;\r\n\tcase 2:\r\n\t\tlshknn(qn, d, N,query_set, truth_set, output_folder,result_folder, ratio, B);\r\n\t\tbreak;\r\n\tcase 3:\r\n\t\tlinear_scan(n, qn, d, B, query_set, truth_set, output_folder);\r\n\t\tbreak;\r\n\tdefault:\r\n\t\terror(\"Parameters error!\\n\", true);\r\n\t\tusage();\r\n\t\tbreak;\r\n\t}\r\n\r\n\treturn 0;\r\n}\r\n\r\n\r\n"
  },
  {
    "path": "algorithms/QALSH/src/qalsh.cpp",
    "content": "#include \"headers.h\"\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  QALSH: structure of qalsh indexed by b+ tree. QALSH is used to solve the \r\n//  problem of approximate nearest neighbor search.\r\n// -----------------------------------------------------------------------------\r\nQALSH::QALSH()\t\t\t\t\t\t// constructor\r\n{\r\n\tn_pts_ = dim_ = B_ = -1;\r\n\tappr_ratio_ = beta_ = delta_ = -1.0;\n\tN_=100;\r\n\r\n\tw_ = p1_ = p2_ = alpha_ = -1.0;\r\n\tm_ = l_ = -1;\r\n\r\n\ta_array_ = NULL;\r\n\ttrees_ = NULL;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nQALSH::~QALSH()\t\t\t\t\t\t// destructor\r\n{\r\n\tif (a_array_) {\r\n\t\tdelete[] a_array_; a_array_ = NULL;\r\n\t\tg_memory -= SIZEFLOAT * m_ * dim_;\r\n\t}\r\n\r\n\tif (trees_) {\r\n\t\tfor (int i = 0; i < m_; i++) {\r\n\t\t\tdelete trees_[i]; trees_[i] = NULL;\r\n\t\t}\r\n\t\tdelete[] trees_; trees_ = NULL;\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::init(\t\t\t\t\t// init params of qalsh\r\n\tint   n,\t\t\t\t\t\t\t// number of points\r\n\tint   d,\t\t\t\t\t\t\t// dimension of space\r\n\tint   B,\t\t\t\t\t\t\t// page size\r\n\tfloat ratio, int N,\t\t\t\t\t\t// approximation ratio\r\n\tchar* output_folder)\t\t\t\t// folder of info of qalsh\r\n{\r\n\tn_pts_ = n;\t\t\t\t\t\t// init <n_pts_>\r\n\tdim_   = d;\t\t\t\t\t\t// init <dim_>\r\n\tB_     = B;\t\t\t\t\t\t// init <B_>\r\n\tappr_ratio_ = ratio;\t\t\t// init <appr_ratio_>\n\tN_ = N;\r\n\r\n\t\t\t\t\t\t\t\t\t// init <index_path_>\r\n\tstrcpy(index_path_, output_folder);\r\n\tstrcat(index_path_, \"L2_indices/\");\r\n\r\n\t\t\t\t\t\t\t\t\t// init <w_> <delta_> <beta_> <p1_>\r\n\tcalc_params();\t\t\t\t\t// <p2_> <alpha_> <m_> and <l_>\r\n\r\n\tgen_hash_func();\t\t\t\t// init <a_array_>\r\n\tdisplay_params();\t\t\t\t// display params\r\n\ttrees_ = NULL;\t\t\t\t\t// init <trees_>\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::calc_params()\t\t\t// calc params of qalsh\r\n{\r\n\t// -------------------------------------------------------------------------\r\n\t//  init <delta_> and <beta_>\r\n\t// -------------------------------------------------------------------------\r\n\tdelta_ = 1.0f / E;\r\n\tbeta_  = N_*1.0 / n_pts_;   //modify \r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  init <w_> <p1_> and <p2_>\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// <w> <p1> and <p2> of L2 distance\r\n\t\t\t\t\t\t\t\t\t// init <w> (auto tuning-w)\r\n\tw_ = sqrt((8.0f * appr_ratio_ * appr_ratio_ * log(appr_ratio_))\r\n\t\t/ (appr_ratio_ * appr_ratio_ - 1.0f));\r\n\r\n\tp1_ = calc_l2_prob(w_ / 2.0f);\r\n\tp2_ = calc_l2_prob(w_ / (2.0f * appr_ratio_));\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  init <alpha_> <m_> and <l_>\r\n\t// -------------------------------------------------------------------------\r\n\tfloat para1 = sqrt(log(2.0f / beta_));\r\n\tfloat para2 = sqrt(log(1.0f / delta_));\r\n\tfloat para3 = 2.0f * (p1_ - p2_) * (p1_ - p2_);\r\n\t\r\n\tfloat eta = para1 / para2;\t\t// init <alpha_>\r\n\talpha_ = (eta * p1_ + p2_) / (1.0f + eta);\r\n\t\t\t\t\t\t\t\t\t// init <m_> and <l_>\r\n\tm_ = (int) ceil((para1 + para2) * (para1 + para2) / para3);\r\n\tl_ = (int) ceil((p1_ * para1 + p2_ * para2) * (para1 + para2) / para3);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::calc_l2_prob(\t\t\t// calc prob <p1_> and <p2_> of L2 dist\r\n\tfloat x)\t\t\t\t\t\t\t// x = w / (2.0 * r)\r\n{\r\n\treturn new_gaussian_prob(x);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::display_params()\t\t// display params of qalsh\r\n{\r\n\r\n\tprintf(\"Parameters of QALSH (L_2 Distance):\\n\");\r\n\r\n\tprintf(\"    n          = %d\\n\", n_pts_);\r\n\tprintf(\"    d          = %d\\n\", dim_);\r\n\tprintf(\"    B          = %d\\n\", B_);\r\n\tprintf(\"    ratio      = %0.2f\\n\", appr_ratio_);\r\n\tprintf(\"    w          = %0.4f\\n\", w_);\r\n\tprintf(\"    p1         = %0.4f\\n\", p1_);\r\n\tprintf(\"    p2         = %0.4f\\n\", p2_);\r\n\tprintf(\"    alpha      = %0.6f\\n\", alpha_);\r\n\tprintf(\"    beta       = %0.6f\\n\", beta_);\r\n\tprintf(\"    delta      = %0.6f\\n\", delta_);\r\n\tprintf(\"    m          = %d\\n\", m_);\r\n\tprintf(\"    l          = %d\\n\", l_);\r\n\tprintf(\"    beta * n   = %d\\n\", N_);\r\n\tprintf(\"    index path = %s\\n\\n\", index_path_);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::gen_hash_func()\t\t\t// generate hash function <a_array>\r\n{\r\n\tint sum = m_ * dim_;\r\n\r\n\tg_memory += SIZEFLOAT * sum;\r\n\ta_array_ = new float[sum];\r\n\r\n\tfor (int i = 0; i < sum; i++) {\r\n\t\ta_array_[i] = gaussian(0.0f, 1.0f);\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint QALSH::bulkload(\t\t\t\t// build m b-trees by bulkloading\r\n\tfloat** data)\t\t\t\t\t\t// data set\r\n{\r\n\t// -------------------------------------------------------------------------\r\n\t//  Check whether the default maximum memory is enough\r\n\t// -------------------------------------------------------------------------\r\n\tg_memory += sizeof(HashValue) * n_pts_;\r\n\tif (check_mem()) {\r\n\t\tprintf(\"*** memory = %.2f MB\\n\\n\", g_memory / (1024.0f * 1024.0f));\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Check whether the directory exists. If the directory does not exist, we\r\n\t//  create the directory for each folder.\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// create directory under Linux\r\n\tint len = (int) strlen(index_path_);\r\n\tfor (int i = 0; i < len; i++) {\r\n\t\tif (index_path_[i] == '/') {\r\n\t\t\tchar ch = index_path_[i + 1];\r\n\t\t\tindex_path_[i + 1] = '\\0';\r\n\t\t\t\t\t\t\t\t\t// check whether the directory exists\r\n\t\t\tint ret = access(index_path_, F_OK);\r\n\t\t\tif (ret != 0) {\t\t\t// create directory\r\n\t\t\t\tret = mkdir(index_path_, 0755);\r\n\t\t\t\tif (ret != 0) {\r\n\t\t\t\t\tprintf(\"Could not create directory %s\\n\", index_path_);\r\n\t\t\t\t\terror(\"QALSH::bulkload error\\n\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tindex_path_[i + 1] = ch;\r\n\t\t}\r\n\t}\r\n\t\r\n\t/*\t\t\t\t\t\t\t\t// create directory under Windows\r\n\tint len = (int) strlen(index_path_);\r\n\tfor (int i = 0; i < len; i++) {\r\n\t\tif (index_path_[i] == '/') {\r\n\t\t\tchar ch = index_path_[i + 1];\r\n\t\t\tindex_path_[i + 1] = '\\0';\r\n\t\t\t\t\t\t\t\t\t// check whether the directory exists\r\n\t\t\tint ret = _access(index_path_, 0);\r\n\t\t\tif (ret != 0) {\t\t\t// create directory\r\n\t\t\t\tret = _mkdir(index_path_);\r\n\t\t\t\tif (ret != 0) {\r\n\t\t\t\t\tprintf(\"Could not create directory %s\\n\", index_path_);\r\n\t\t\t\t\terror(\"QALSH::bulkload() error\\n\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tindex_path_[i + 1] = ch;\r\n\t\t}\r\n\t}\r\n\t*/\r\n\t\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write the file \"para\" where the parameters and hash functions are \r\n\t//  stored in it.\r\n\t// -------------------------------------------------------------------------\r\n\tchar fname[200];\r\n\tstrcpy(fname, index_path_);\t\t// write the \"para\" file\r\n\tstrcat(fname, \"para\");\r\n\tif (write_para_file(fname)) return 1;\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write the hash tables (indexed by b+ tree) to the disk\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// dataset sorted by hash value\r\n\tHashValue* hashtable = new HashValue[n_pts_];\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tprintf(\"    Tree %3d (out of %d)\\n\", i + 1, m_);\r\n\r\n\t\tprintf(\"        Computing Hash Values...\\n\");\r\n\t\tfor (int j = 0; j < n_pts_; j++) {\r\n\t\t\thashtable[j].id_ = j;\r\n\t\t\thashtable[j].proj_ = calc_hash_value(i, data[j]);\r\n\t\t}\r\n\r\n\t\tprintf(\"        Sorting...\\n\");\r\n\t\tqsort(hashtable, n_pts_, sizeof(HashValue), HashValueQsortComp);\r\n\r\n\t\tprintf(\"        Bulkloading...\\n\");\r\n\t\tget_tree_filename(i, fname);\r\n\r\n\t\tBTree *bt = new BTree();\r\n\t\tbt->init(fname, B_);\r\n\t\tif (bt->bulkload(hashtable, n_pts_)) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tdelete bt; bt = NULL;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Release space\r\n\t// -------------------------------------------------------------------------\r\n\tif (hashtable != NULL) {\r\n\t\tdelete[] hashtable; hashtable = NULL;\r\n\t\tg_memory -= sizeof(HashValue) * n_pts_;\r\n\t}\r\n\treturn 0;\t\t\t\t\t\t// success to return\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint QALSH::write_para_file(\t\t\t// write \"para\" file from disk\r\n\tchar* fname)\t\t\t\t\t\t// file name of \"para\" file\r\n{\r\n\tFILE* fp = NULL;\r\n\tfp = fopen(fname, \"r\");\r\n\tif (fp) {\t\t\t\t\t\t// ensure the file not exist\r\n\t\terror(\"QALSH: hash tables exist.\\n\", true);\r\n\t}\r\n\r\n\tfp = fopen(fname, \"w\");\t\t\t// open \"para\" file to write\r\n\tif (!fp) {\r\n\t\tprintf(\"I could not create %s.\\n\", fname);\r\n\t\tprintf(\"Perhaps no such folder %s?\\n\", index_path_);\r\n\t\treturn 1;\t\t\t\t\t// fail to return\r\n\t}\r\n\r\n\tfprintf(fp, \"n = %d\\n\", n_pts_);// write <n_pts_>\r\n\tfprintf(fp, \"d = %d\\n\", dim_);\t// write <dim_>\r\n\tfprintf(fp, \"B = %d\\n\", B_);\t// write <B_>\r\n\t\t\t\t\t\t\t\t\t// write <appr_ratio_>\r\n\tfprintf(fp, \"ratio = %f\\n\", appr_ratio_);\r\n\tfprintf(fp, \"w = %f\\n\", w_);\t// write <w_>\r\n\tfprintf(fp, \"p1 = %f\\n\", p1_);\t// write <p1_>\r\n\tfprintf(fp, \"p2 = %f\\n\", p2_);\t// write <p2_>\r\n\t\t\t\t\t\t\t\t\t// write <alpha_>\r\n\tfprintf(fp, \"alpha = %f\\n\", alpha_);\r\n\t\t\t\t\t\t\t\t\t// write <beta_>\r\n\tfprintf(fp, \"beta = %f\\n\", beta_);\r\n\t\t\t\t\t\t\t\t\t// write <delta_>\r\n\tfprintf(fp, \"delta = %f\\n\", delta_);\r\n\r\n\tfprintf(fp, \"m = %d\\n\", m_);\t// write <m_>\r\n\tfprintf(fp, \"l = %d\\n\", l_);\t// write <l_>\r\n\r\n\tint count = 0;\r\n\tfor (int i = 0; i < m_; i++) {\t// write <a_array_>\r\n\t\tfprintf(fp, \"%f\", a_array_[count++]);\r\n\t\tfor (int j = 1; j < dim_; j++) {\r\n\t\t\tfprintf(fp, \" %f\", a_array_[count++]);\r\n\t\t}\r\n\t\tfprintf(fp, \"\\n\");\r\n\t}\r\n\tif (fp) fclose(fp);\t\t\t\t// close para file\r\n\t\r\n\treturn 0;\t\t\t\t\t\t// success to return\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::calc_hash_value(\t\t// calc hash value\r\n\tint table_id,\t\t\t\t\t\t// hash table id\r\n\tfloat* point)\t\t\t\t\t\t// a point\r\n{\r\n\tfloat ret = 0.0f;\r\n\tfor (int i = 0; i < dim_; i++) {\r\n\t\tret += (a_array_[table_id * dim_ + i] * point[i]);\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::get_tree_filename(\t\t// get file name of b-tree\r\n\tint tree_id,\t\t\t\t\t\t// tree id, from 0 to m-1\r\n\tchar* fname)\t\t\t\t\t\t// file name (return)\r\n{\r\n\tchar c[20];\r\n\r\n\tstrcpy(fname, index_path_);\r\n\tsprintf(c, \"%d\", tree_id);\r\n\tstrcat(fname, c);\r\n\tstrcat(fname, \".qalsh\");\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint QALSH::restore(\t\t\t\t\t// load existing b-trees.\r\n\tchar* output_folder)\t\t\t\t// folder of info of qalsh\r\n{\r\n\t\t\t\t\t\t\t\t\t// init <index_path_>\r\n\tstrcpy(index_path_, output_folder);\r\n\tstrcat(index_path_, \"L2_indices/\");\r\n\r\n\tchar fname[200];\r\n\tstrcpy(fname, index_path_);\r\n\tstrcat(fname, \"para\");\r\n\r\n\tif (read_para_file(fname)) {\t// read \"para\" file and init params\r\n\t\treturn 1;\t\t\t\t\t// fail to return\r\n\t}\r\n\r\n\ttrees_ = new BTree*[m_];\t\t// allocate <trees>\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tget_tree_filename(i, fname);// get filename of tree\r\n\r\n\t\ttrees_[i] = new BTree();\t// init <trees>\r\n\t\ttrees_[i]->init_restore(fname);\r\n\t}\r\n\treturn 0;\t\t\t\t\t\t// success to return\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint QALSH::read_para_file(\t\t\t// read \"para\" file\r\n\tchar* fname)\t\t\t\t\t\t// file name of \"para\" file\r\n{\r\n\tFILE* fp = NULL;\r\n\tfp = fopen(fname, \"r\");\r\n\tif (!fp) {\t\t\t\t\t\t// ensure we can open the file\r\n\t\tprintf(\"QALSH::read_para_file could not open %s.\\n\", fname);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tfscanf(fp, \"n = %d\\n\", &n_pts_);// read <n_pts_>\r\n\tfscanf(fp, \"d = %d\\n\", &dim_);\t// read <dim_>\r\n\tfscanf(fp, \"B = %d\\n\", &B_);\t// read <B_>\r\n\t\t\t\t\t\t\t\t\t// read <appr_ratio_>\r\n\tfscanf(fp, \"ratio = %f\\n\", &appr_ratio_);\r\n\tfscanf(fp, \"w = %f\\n\", &w_);\t// read <w_>\r\n\tfscanf(fp, \"p1 = %f\\n\", &p1_);\t// read <p1_>\r\n\tfscanf(fp, \"p2 = %f\\n\", &p2_);\t// read <p2_>\r\n\t\t\t\t\t\t\t\t\t// read <alpha_>\r\n\tfscanf(fp, \"alpha = %f\\n\", &alpha_);\r\n\t\t\t\t\t\t\t\t\t// read <beta_>\r\n\tfscanf(fp, \"beta = %f\\n\", &beta_);\r\n\t\t\t\t\t\t\t\t\t// read <delta_>\r\n\tfscanf(fp, \"delta = %f\\n\", &delta_);\r\n\r\n\tfscanf(fp, \"m = %d\\n\", &m_);\t// read <m_>\r\n\tfscanf(fp, \"l = %d\\n\", &l_);\t// read <l_>\r\n\r\n\ta_array_ = new float[m_ * dim_];// read <a_array_>\r\n\tg_memory += SIZEFLOAT * m_ * dim_;\r\n\tint count = 0;\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tfor (int j = 0; j < dim_; j++) {\r\n\t\t\tfscanf(fp, \"%f\", &a_array_[count++]);\r\n\t\t}\r\n\t\tfscanf(fp, \"\\n\");\r\n\t}\r\n\tif (fp) fclose(fp);\t\t\t\t// close para file\r\n\t\r\n\tdisplay_params();\t\t\t\t// display params\r\n\treturn 0;\t\t\t\t\t\t// success to return\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint QALSH::knn(\t\t\t\t\t\t// k-nn search\r\n\tfloat* query,\t\t\t\t\t\t// query point\r\n\tint top_k,\t\t\t\t\t\t\t// top-k value\r\n\tResultItem* rslt,\t\t\t\t\t// k-nn results\r\n\tchar* output_folder)\t\t\t\t// output folder\r\n{\r\n\t// -------------------------------------------------------------------------\r\n\t//  Space allocation and initialization\r\n\t// -------------------------------------------------------------------------\r\n\t\t\t\t\t\t\t\t\t// init k-nn results\r\n\tfor (int i = 0; i < top_k; i++) {\r\n\t\trslt[i].id_   = -1;\r\n\t\trslt[i].dist_ = MAXREAL;\r\n\t}\r\n\t\t\t\t\t\t\t\t\t// objects frequency\r\n\tint* frequency  = new int[n_pts_];\r\n\tfor (int i = 0; i < n_pts_; i++) {\r\n\t\tfrequency[i]  = 0;\r\n\t}\r\n\t\t\t\t\t\t\t\t\t// whether an object is checked\r\n\tbool* is_checked = new bool[n_pts_];\r\n\tfor (int i = 0; i < n_pts_; i++) {\r\n\t\tis_checked[i] = false;\r\n\t}\r\n\r\n\tfloat* data = new float[dim_];\t// one object data\r\n\tfor (int i = 0; i < dim_; i++) {\r\n\t\tdata[i] = 0.0f;\r\n\t}\r\n\tg_memory += ((SIZEBOOL + SIZEINT) * n_pts_ + SIZEFLOAT * dim_);\r\n\r\n\tbool* flag = new bool[m_];\t\t// whether a hash table is finished\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tflag[i] = true;\r\n\t}\r\n\r\n\tfloat* q_val = new float[m_];\t// hash value of query\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tq_val[i] = -1.0f;\r\n\t}\r\n\tg_memory += (SIZEFLOAT + SIZEBOOL) * m_;\r\n\t\t\t\t\t\t\t\t\t// left and right page buffer\r\n\tPageBuffer* lptr = new PageBuffer[m_];\r\n\tPageBuffer* rptr = new PageBuffer[m_];\r\n\tg_memory += (SIZECHAR * B_ * m_ * 2 + SIZEINT * m_ * 6);\r\n\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\tlptr[i].leaf_node_ = NULL;\r\n\t\tlptr[i].index_pos_ = -1;\r\n\t\tlptr[i].leaf_pos_  = -1;\r\n\t\tlptr[i].size_      = -1;\r\n\r\n\t\trptr[i].leaf_node_ = NULL;\r\n\t\trptr[i].index_pos_ = -1;\r\n\t\trptr[i].leaf_pos_  = -1;\r\n\t\trptr[i].size_      = -1;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Compute hash value <q_dist> of query and init the page buffers \r\n\t//  <lptr> and <rptr>.\r\n\t// -------------------------------------------------------------------------\r\n\tpage_io_ = 0;\t\t\t\t\t// num of page i/os\r\n\tdist_io_ = 0;\t\t\t\t\t// num of dist cmpt\r\n\tinit_buffer(lptr, rptr, q_val, query);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Determine the basic <radius> and <bucket_width> \r\n\t// -------------------------------------------------------------------------\r\n\tfloat radius = find_radius(lptr, rptr, q_val);\r\n\tfloat bucket_width = (w_ * radius / 2.0f);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  K-nn search\r\n\t// -------------------------------------------------------------------------\r\n\tbool again      = true;\t\t\t// stop flag\r\n\tint  candidates = 99 + top_k;\t// threshold of candidates\r\n\tint  flag_num   = 0;\t\t\t// used for bucket bound\r\n\tint  scanned_id = 0;\t\t\t// num of scanned id\n\tint checked=0;\r\n\r\n\tint id    = -1;\t\t\t\t\t// current object id\r\n\tint count = -1;\t\t\t\t\t// count size in one page\r\n\tint start = -1;\t\t\t\t\t// start position\r\n\tint end   = -1;\t\t\t\t\t// end position\r\n\r\n\tfloat left_dist = -1.0f;\t\t// left dist with query\r\n\tfloat right_dist = -1.0f;\t\t// right dist with query\r\n\tfloat knn_dist = MAXREAL;\t\t// kth nn dist\r\n\t\t\t\t\t\t\t\t\t// result entry for update\r\n\tResultItem* item = new ResultItem();\r\n\tg_memory += (long) sizeof(ResultItem);\r\n\r\n\twhile (again) {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Step 1: initialize the stop condition for current round\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tflag_num = 0;\r\n\t\tfor (int i = 0; i < m_; i++) {\r\n\t\t\tflag[i] = true;\r\n\t\t}\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Step 2: find frequent objects\r\n\t\t// ---------------------------------------------------------------------\r\n\t\twhile (true) {\r\n\t\t\tfor (int i = 0; i < m_; i++) {\r\n\t\t\t\tif (!flag[i]) continue;\r\n\r\n\t\t\t\t// -------------------------------------------------------------\r\n\t\t\t\t//  Step 2.1: compute <left_dist> and <right_dist>\r\n\t\t\t\t// -------------------------------------------------------------\r\n\t\t\t\tleft_dist = -1.0f;\r\n\t\t\t\tif (lptr[i].size_ != -1) {\r\n\t\t\t\t\tleft_dist = calc_proj_dist(&lptr[i], q_val[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tright_dist = -1.0f;\r\n\t\t\t\tif (rptr[i].size_ != -1) {\r\n\t\t\t\t\tright_dist = calc_proj_dist(&rptr[i], q_val[i]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// -------------------------------------------------------------\r\n\t\t\t\t//  Step 2.2: determine the closer direction (left or right)\r\n\t\t\t\t//  and do collision counting to find frequent objects.\r\n\t\t\t\t//\r\n\t\t\t\t//  For the frequent object, we calc the L2 distance with\r\n\t\t\t\t//  query, and update the k-nn result.\r\n\t\t\t\t// -------------------------------------------------------------\r\n\t\t\t\tif (left_dist >= 0 && left_dist < bucket_width && \r\n\t\t\t\t\t((right_dist >= 0 && left_dist <= right_dist) ||\r\n\t\t\t\t\tright_dist < 0)) {\r\n\r\n\t\t\t\t\tcount = lptr[i].size_;\r\n\t\t\t\t\tend = lptr[i].leaf_pos_;\r\n\t\t\t\t\tstart = end - count;\r\n\t\t\t\t\tfor (int j = end; j > start; j--) {\r\n\t\t\t\t\t\tid = lptr[i].leaf_node_->get_entry_id(j);\r\n\t\t\t\t\t\tfrequency[id]++;\r\n\t\t\t\t\t\tscanned_id++;\r\n\r\n\t\t\t\t\t\tif (frequency[id] > l_ && !is_checked[id]) {\r\n\t\t\t\t\t\t\tis_checked[id] = true;\r\n\t\t\t\t\t\t\tread_data(id, dim_, B_, data, output_folder);\r\n\r\n\t\t\t\t\t\t\titem->dist_ = calc_l2_dist(data, query, dim_);\r\n\t\t\t\t\t\t\titem->id_ = id;\r\n\t\t\t\t\t\t\tknn_dist = update_result(rslt, item, top_k);\r\n\t\t\t\t\t\t\tchecked++;\r\n\t\t\t\t\t\t\t// -------------------------------------------------\r\n\t\t\t\t\t\t\t//  Terminating condition 2\r\n\t\t\t\t\t\t\t// -------------------------------------------------\r\n\t\t\t\t\t\t\tdist_io_++;\r\n\t\t\t\t\t\t\tif (dist_io_ >= candidates) {\r\n\t\t\t\t\t\t\t\tagain = false;\r\n\t\t\t\t\t\t\t\tflag_num += m_;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tupdate_left_buffer(&lptr[i], &rptr[i]);\r\n\t\t\t\t}\r\n\t\t\t\telse if (right_dist >= 0 && right_dist < bucket_width && \r\n\t\t\t\t\t((left_dist >= 0 && left_dist > right_dist) || \r\n\t\t\t\t\tleft_dist < 0)) {\r\n\r\n\t\t\t\t\tcount = rptr[i].size_;\r\n\t\t\t\t\tstart = rptr[i].leaf_pos_;\r\n\t\t\t\t\tend = start + count;\r\n\t\t\t\t\tfor (int j = start; j < end; j++) {\r\n\t\t\t\t\t\tid = rptr[i].leaf_node_->get_entry_id(j);\r\n\t\t\t\t\t\tfrequency[id]++;\r\n\t\t\t\t\t\tscanned_id++;\r\n\t\t\t\t\t\tif (frequency[id] > l_ && !is_checked[id]) {\r\n\t\t\t\t\t\t\tis_checked[id] = true;\r\n\t\t\t\t\t\t\tread_data(id, dim_, B_, data, output_folder);\r\n\r\n\t\t\t\t\t\t\titem->dist_ = calc_l2_dist(data, query, dim_);\r\n\t\t\t\t\t\t\titem->id_ = id;\r\n\t\t\t\t\t\t\tknn_dist = update_result(rslt, item, top_k);\r\n   \t\t\t\t\t\t\tchecked++;\r\n\t\t\t\t\t\t\t// -------------------------------------------------\r\n\t\t\t\t\t\t\t//  Terminating condition 2\r\n\t\t\t\t\t\t\t// -------------------------------------------------\r\n\t\t\t\t\t\t\tdist_io_++;\r\n\t\t\t\t\t\t\tif (dist_io_ >= candidates) {\r\n\t\t\t\t\t\t\t\tagain = false;\r\n\t\t\t\t\t\t\t\tflag_num += m_;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tupdate_right_buffer(&lptr[i], &rptr[i]);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tflag[i] = false;\r\n\t\t\t\t\tflag_num++;\r\n\t\t\t\t}\r\n\t\t\t\tif (flag_num >= m_) break;\r\n\t\t\t}\r\n\t\t\tif (flag_num >= m_) break;\r\n\t\t}\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Terminating condition 1\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tif (knn_dist < appr_ratio_ * radius && dist_io_ >= top_k) {\r\n\t\t\tagain = false;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Step 3: auto-update <radius>\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tradius = update_radius(lptr, rptr, q_val, radius);\r\n\t\tbucket_width = radius * w_ / 2.0f;\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Release space\r\n\t// -------------------------------------------------------------------------\r\n\tif (data != NULL || frequency != NULL || is_checked != NULL) {\r\n\t\tdelete[] data; data = NULL;\r\n\t\tdelete[] frequency;  frequency  = NULL;\r\n\t\tdelete[] is_checked; is_checked = NULL;\r\n\t\tg_memory -= ((SIZEBOOL + SIZEINT) * n_pts_ + SIZEFLOAT * dim_);\r\n\t}\r\n\tif (q_val != NULL || flag != NULL || item != NULL) {\r\n\t\tdelete[] q_val; q_val = NULL;\r\n\t\tdelete[] flag; flag = NULL;\r\n\t\tdelete   item; item = NULL;\r\n\t\tg_memory -= (SIZEFLOAT + SIZEBOOL) * m_;\r\n\t\tg_memory -= (long) sizeof(ResultItem);\r\n\t}\r\n\r\n\tfor (int i = 0; i < m_; i++) {\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  CANNOT remove the condition\r\n\t\t//              <lptrs[i].leaf_node != rptrs[i].leaf_node>\r\n\t\t//  Because <lptrs[i].leaf_node> and <rptrs[i].leaf_node> may point \r\n\t\t//  to the same address, then we would delete it twice and receive \r\n\t\t//  the runtime error or segmentation fault.\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tif (lptr[i].leaf_node_ && lptr[i].leaf_node_ != rptr[i].leaf_node_) {\r\n\t\t\tdelete lptr[i].leaf_node_; lptr[i].leaf_node_ = NULL;\r\n\t\t}\r\n\t\tif (rptr[i].leaf_node_) {\r\n\t\t\tdelete rptr[i].leaf_node_; rptr[i].leaf_node_ = NULL;\r\n\t\t}\r\n\t}\r\n\tdelete[] lptr; lptr = NULL;\r\n\tdelete[] rptr; rptr = NULL;\r\n\tg_memory -= (SIZECHAR * B_ * m_ * 2 + SIZEINT * m_ * 6);\r\n\treturn (page_io_ + dist_io_);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::init_buffer(\t\t\t// init page buffer (loc pos of b-treee)\r\n\tPageBuffer* lptr,\t\t\t\t\t// left buffer page (return)\r\n\tPageBuffer* rptr,\t\t\t\t\t// right buffer page (return)\r\n\tfloat* q_dist,\t\t\t\t\t\t// hash value of query (return)\r\n\tfloat* query)\t\t\t\t\t\t// query point\r\n{\r\n\tint  block   = -1;\t\t\t\t// tmp vars for index node\r\n\tint  follow  = -1;\r\n\tbool lescape = false;\r\n\r\n\tint pos = -1;\t\t\t\t\t// tmp vars for leaf node\r\n\tint increment = -1;\r\n\tint num_entries = -1;\r\n\r\n\tBIndexNode* index_node = NULL;\r\n\r\n\tfor (int i = 0; i < m_; i++) {\t// calc hash value of query\r\n\t\tq_dist[i] = calc_hash_value(i, query);\r\n\t\tblock = trees_[i]->root_;\r\n\r\n\t\tindex_node = new BIndexNode();\r\n\t\tindex_node->init_restore(trees_[i], block);\r\n\t\tpage_io_++;\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  Find the leaf node whose value is closest and larger than the key\r\n\t\t//  of query q <qe->key>\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tlescape = false;\t\t\t// locate the position of branch\r\n\t\twhile (index_node->get_level() > 1) {\r\n\t\t\tfollow = index_node->find_position_by_key(q_dist[i]);\r\n\r\n\t\t\tif (follow == -1) {\t\t// if in the most left branch\r\n\t\t\t\tif (lescape) {\t\t// scan the most left branch\r\n\t\t\t\t\tfollow = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (block != trees_[i]->root_) {\r\n\t\t\t\t\t\terror(\"QALSH::knn_bucket No branch found\\n\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tfollow = 0;\r\n\t\t\t\t\t\tlescape = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tblock = index_node->get_son(follow);\r\n\t\t\tdelete index_node; index_node = NULL;\r\n\r\n\t\t\tindex_node = new BIndexNode();\r\n\t\t\tindex_node->init_restore(trees_[i], block);\r\n\t\t\tpage_io_++;\t\t\t\t// access a new node (a new page)\r\n\t\t}\r\n\r\n\t\t// ---------------------------------------------------------------------\r\n\t\t//  After finding the leaf node whose value is closest to the key of\r\n\t\t//  query, initialize <lptrs[i]> and <rptrs[i]>.\r\n\t\t//\r\n\t\t//  <lescape> = true is that the query has no <lptrs>, the query is \r\n\t\t//  the smallest value.\r\n\t\t// ---------------------------------------------------------------------\r\n\t\tfollow = index_node->find_position_by_key(q_dist[i]);\r\n\t\tif (follow < 0) {\r\n\t\t\tlescape = true;\r\n\t\t\tfollow = 0;\r\n\t\t}\r\n\r\n\t\tif (lescape) {\t\t\t\t// only init right buffer\r\n\t\t\tblock = index_node->get_son(0);\r\n\t\t\trptr[i].leaf_node_ = new BLeafNode();\r\n\t\t\trptr[i].leaf_node_->init_restore(trees_[i], block);\r\n\t\t\trptr[i].index_pos_ = 0;\r\n\t\t\trptr[i].leaf_pos_ = 0;\r\n\r\n\t\t\tincrement = rptr[i].leaf_node_->get_increment();\r\n\t\t\tnum_entries = rptr[i].leaf_node_->get_num_entries();\r\n\t\t\tif (increment > num_entries) {\r\n\t\t\t\trptr[i].size_ = num_entries;\r\n\t\t\t} else {\r\n\t\t\t\trptr[i].size_ = increment;\r\n\t\t\t}\r\n\t\t\tpage_io_++;\r\n\t\t}\r\n\t\telse {\t\t\t\t\t\t// init left buffer\r\n\t\t\tblock = index_node->get_son(follow);\r\n\t\t\tlptr[i].leaf_node_ = new BLeafNode();\r\n\t\t\tlptr[i].leaf_node_->init_restore(trees_[i], block);\r\n\r\n\t\t\tpos = lptr[i].leaf_node_->find_position_by_key(q_dist[i]);\r\n\t\t\tif (pos < 0) pos = 0;\r\n\t\t\tlptr[i].index_pos_ = pos;\r\n\r\n\t\t\tincrement = lptr[i].leaf_node_->get_increment();\r\n\t\t\tif (pos == lptr[i].leaf_node_->get_num_keys() - 1) {\r\n\t\t\t\tnum_entries = lptr[i].leaf_node_->get_num_entries();\r\n\t\t\t\tlptr[i].leaf_pos_ = num_entries - 1;\r\n\t\t\t\tlptr[i].size_ = num_entries - pos * increment;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlptr[i].leaf_pos_ = pos * increment + increment - 1;\r\n\t\t\t\tlptr[i].size_ = increment;\r\n\t\t\t}\r\n\t\t\tpage_io_++;\r\n\t\t\t\t\t\t\t\t\t// init right buffer\r\n\t\t\tif (pos < lptr[i].leaf_node_->get_num_keys() - 1) {\r\n\t\t\t\trptr[i].leaf_node_ = lptr[i].leaf_node_;\r\n\t\t\t\trptr[i].index_pos_ = (pos + 1);\r\n\t\t\t\trptr[i].leaf_pos_ = (pos + 1) * increment;\r\n\t\t\t\t\r\n\t\t\t\tif ((pos + 1) == rptr[i].leaf_node_->get_num_keys() - 1) {\r\n\t\t\t\t\tnum_entries = rptr[i].leaf_node_->get_num_entries();\r\n\t\t\t\t\trptr[i].size_ = num_entries - (pos + 1) * increment;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trptr[i].size_ = increment;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trptr[i].leaf_node_ = lptr[i].leaf_node_->get_right_sibling();\r\n\t\t\t\tif (rptr[i].leaf_node_) {\r\n\t\t\t\t\trptr[i].index_pos_ = 0;\r\n\t\t\t\t\trptr[i].leaf_pos_ = 0;\r\n\r\n\t\t\t\t\tincrement = rptr[i].leaf_node_->get_increment();\r\n\t\t\t\t\tnum_entries = rptr[i].leaf_node_->get_num_entries();\r\n\t\t\t\t\tif (increment > num_entries) {\r\n\t\t\t\t\t\trptr[i].size_ = num_entries;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trptr[i].size_ = increment;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpage_io_++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (index_node != NULL) {\r\n\t\t\tdelete index_node; index_node = NULL;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::find_radius(\t\t\t// find proper radius\r\n\tPageBuffer* lptr,\t\t\t\t\t// left page buffer\r\n\tPageBuffer* rptr,\t\t\t\t\t// right page buffer\r\n\tfloat* q_dist)\t\t\t\t\t\t// hash value of query\r\n{\r\n\tfloat radius = update_radius(lptr, rptr, q_dist, 1.0f/appr_ratio_);\r\n\tif (radius < 1.0f) radius = 1.0f;\r\n\r\n\treturn radius;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::update_radius(\t\t\t// update radius\r\n\tPageBuffer* lptr,\t\t\t\t\t// left page buffer\r\n\tPageBuffer* rptr,\t\t\t\t\t// right page buffer\r\n\tfloat* q_dist,\t\t\t\t\t\t// hash value of query\r\n\tfloat  old_radius)\t\t\t\t\t// old radius\r\n{\r\n\tfloat dist = 0.0f;\t\t\t\t// tmp vars\r\n\tvector<float> list;\r\n\r\n\tfor (int i = 0; i < m_; i++) {\t// find an array of proj dist\r\n\t\tif (lptr[i].size_ != -1) {\r\n\t\t\tdist = calc_proj_dist(&lptr[i], q_dist[i]);\r\n\t\t\tlist.push_back(dist);\t\t\r\n\t\t}\r\n\t\tif (rptr[i].size_ != -1) {\r\n\t\t\tdist = calc_proj_dist(&rptr[i], q_dist[i]);\r\n\t\t\tlist.push_back(dist);\r\n\t\t}\r\n\t}\r\n\tsort(list.begin(), list.end());\t// sort the array\r\n\r\n\tint num = (int) list.size();\r\n\tif (num % 2 == 0) {\t\t\t\t// find median dist\r\n\t\tdist = (list[num/2 - 1] + list[num/2]) / 2.0f;\r\n\t} else {\r\n\t\tdist = list[num/2];\r\n\t}\r\n\tlist.clear();\r\n\r\n\tif (compfloats(dist, old_radius) == 0) {\r\n\t\tint kappa = (int) ceil(log(2.0f * dist / w_) / log(appr_ratio_));\r\n\t\tdist = pow(appr_ratio_, kappa);\r\n\t}\r\n\treturn dist;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::update_result(\t\t\t// update knn results\r\n\tResultItem* rslt,\t\t\t\t\t// k-nn results\r\n\tResultItem* item,\t\t\t\t\t// new result\r\n\tint top_k)\t\t\t\t\t\t\t// top-k value\r\n{\r\n\tint i = -1;\r\n\tint pos = -1;\r\n\tbool alreadyIn = false;\r\n\r\n\tfor (i = 0; i < top_k; i++) {\r\n\t\t\t\t\t\t\t\t\t// ensure the id is not exist before\r\n\t\tif (item->id_ == rslt[i].id_) {\r\n\t\t\talreadyIn = true;\r\n\t\t\tbreak;\r\n\t\t}\t\t\t\t\t\t\t// find the position to insert\r\n\t\telse if (compfloats(item->dist_, rslt[i].dist_) == -1) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\tpos = i;\r\n\r\n\tif (!alreadyIn && pos < top_k) {// insertion\r\n\t\tfor (i = top_k - 1; i > pos; i--) {\r\n\t\t\trslt[i].setto(&(rslt[i - 1]));\r\n\t\t}\r\n\t\trslt[pos].setto(item);\r\n\t}\r\n\treturn rslt[top_k - 1].dist_;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::update_left_buffer(\t\t// update left buffer\r\n\tPageBuffer* lptr,\t\t\t\t\t// left buffer\r\n\tconst PageBuffer* rptr)\t\t\t\t// right buffer\r\n{\r\n\tBLeafNode* leaf_node = NULL;\r\n\tBLeafNode* old_leaf_node = NULL;\r\n\r\n\tif (lptr->index_pos_ > 0) {\r\n\t\tlptr->index_pos_--;\r\n\r\n\t\tint pos = lptr->index_pos_;\r\n\t\tint increment = lptr->leaf_node_->get_increment();\r\n\t\tlptr->leaf_pos_ = pos * increment + increment - 1;\r\n\t\tlptr->size_ = increment;\r\n\t}\r\n\telse {\r\n\t\told_leaf_node = lptr->leaf_node_;\r\n\t\tleaf_node = lptr->leaf_node_->get_left_sibling();\r\n\r\n\t\tif (leaf_node) {\r\n\t\t\tlptr->leaf_node_ = leaf_node;\r\n\t\t\tlptr->index_pos_ = lptr->leaf_node_->get_num_keys() - 1;\r\n\r\n\t\t\tint pos = lptr->index_pos_;\r\n\t\t\tint increment = lptr->leaf_node_->get_increment();\r\n\t\t\tint num_entries = lptr->leaf_node_->get_num_entries();\r\n\t\t\tlptr->leaf_pos_ = num_entries - 1;\r\n\t\t\tlptr->size_ = num_entries - pos * increment;\r\n\t\t\tpage_io_++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlptr->leaf_node_ = NULL;\r\n\t\t\tlptr->index_pos_ = -1;\r\n\t\t\tlptr->leaf_pos_ = -1;\r\n\t\t\tlptr->size_ = -1;\r\n\t\t}\r\n\r\n\t\tif (rptr->leaf_node_ != old_leaf_node) {\r\n\t\t\tdelete old_leaf_node; old_leaf_node = NULL;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid QALSH::update_right_buffer(\t// update right buffer\r\n\tconst PageBuffer* lptr,\t\t\t\t// left buffer\r\n\tPageBuffer* rptr)\t\t\t\t\t// right buffer\r\n{\r\n\tBLeafNode* leaf_node = NULL;\r\n\tBLeafNode* old_leaf_node = NULL;\r\n\r\n\tif (rptr->index_pos_ < rptr->leaf_node_->get_num_keys() - 1) {\r\n\t\trptr->index_pos_++;\r\n\r\n\t\tint pos = rptr->index_pos_;\r\n\t\tint increment = rptr->leaf_node_->get_increment();\r\n\t\trptr->leaf_pos_ = pos * increment;\r\n\t\tif (pos == rptr->leaf_node_->get_num_keys() - 1) {\r\n\t\t\tint num_entries = rptr->leaf_node_->get_num_entries();\r\n\t\t\trptr->size_ = num_entries - pos * increment;\r\n\t\t}\r\n\t\telse {\r\n\t\t\trptr->size_ = increment;\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\told_leaf_node = rptr->leaf_node_;\r\n\t\tleaf_node = rptr->leaf_node_->get_right_sibling();\r\n\r\n\t\tif (leaf_node) {\r\n\t\t\trptr->leaf_node_ = leaf_node;\r\n\t\t\trptr->index_pos_ = 0;\r\n\t\t\trptr->leaf_pos_ = 0;\r\n\r\n\t\t\tint increment = rptr->leaf_node_->get_increment();\r\n\t\t\tint num_entries = rptr->leaf_node_->get_num_entries();\r\n\t\t\tif (increment > num_entries) {\r\n\t\t\t\trptr->size_ = num_entries;\r\n\t\t\t} else {\r\n\t\t\t\trptr->size_ = increment;\r\n\t\t\t}\r\n\t\t\tpage_io_++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\trptr->leaf_node_ = NULL;\r\n\t\t\trptr->index_pos_ = -1;\r\n\t\t\trptr->leaf_pos_ = -1;\r\n\t\t\trptr->size_ = -1;\r\n\t\t}\r\n\r\n\t\tif (lptr->leaf_node_ != old_leaf_node) {\r\n\t\t\tdelete old_leaf_node; old_leaf_node = NULL;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat QALSH::calc_proj_dist(\t\t// calc proj dist\r\n\tconst PageBuffer* ptr,\t\t\t\t// page buffer\r\n\tfloat q_val)\t\t\t\t\t\t// hash value of query\r\n{\r\n\tint pos = ptr->index_pos_;\r\n\tfloat key = ptr->leaf_node_->get_key(pos);\r\n\tfloat dist = fabs(key - q_val);\r\n\r\n\treturn dist;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Comparison function for qsort called by QALSH::bulkload()\r\n// -----------------------------------------------------------------------------\r\nint HashValueQsortComp(\t\t\t\t// compare function for qsort\r\n\tconst void* e1,\t\t\t\t\t\t// 1st element\r\n\tconst void* e2)\t\t\t\t\t\t// 2nd element\r\n{\r\n\tint ret = 0;\r\n\tHashValue* value1 = (HashValue *) e1;\r\n\tHashValue* value2 = (HashValue *) e2;\r\n\r\n\tif (value1->proj_ < value2->proj_) {\r\n\t\tret = -1;\r\n\t} else if (value1->proj_ > value2->proj_) {\r\n\t\tret = 1;\r\n\t} else {\r\n\t\tif (value1->id_ < value2->id_) ret = -1;\r\n\t\telse if (value1->id_ > value2->id_) ret = 1;\r\n\t}\r\n\treturn ret;\r\n}\r\n"
  },
  {
    "path": "algorithms/QALSH/src/qalsh.h",
    "content": "#ifndef __QALSH_H\r\n#define __QALSH_H\r\n\r\nclass BNode;\r\nclass BTree;\r\n\r\n// -----------------------------------------------------------------------------\r\n//  ResultItem: structure of result item which is used to k-nn search\r\n// -----------------------------------------------------------------------------\r\nstruct ResultItem {\r\n\tint   id_;\t\t\t\t\t\t// id of the point\r\n\tfloat dist_;\t\t\t\t\t// l2 distance to query\r\n\r\n\tvoid setto(ResultItem * item) {\r\n\t\tid_   = item->id_;\r\n\t\tdist_ = item->dist_;\r\n\t}\r\n};\r\n\r\n// -----------------------------------------------------------------------------\r\n//  PageBuffer: buffer of a page for the ANN search of qalsh\r\n// -----------------------------------------------------------------------------\r\nstruct PageBuffer {\r\n\tBLeafNode* leaf_node_;\t\t\t// leaf node (level = 0)\r\n\tint index_pos_;\t\t\t\t\t// cur pos of index key\r\n\tint leaf_pos_;\t\t\t\t\t// cur pos of leaf node\r\n\tint size_;\t\t\t\t\t\t// size for one scan\r\n};\r\n\r\n// -----------------------------------------------------------------------------\r\n//  HashValue: structure of hash table to store hash values\r\n// -----------------------------------------------------------------------------\r\nstruct HashValue {\r\n\tint id_;\t\t\t\t\t\t// object id\r\n\tfloat proj_;\t\t\t\t\t// projection of the object\r\n};\r\n\r\n// -----------------------------------------------------------------------------\r\n//  QALSH: structure of qalsh indexed by b+ tree. QALSH is used to solve\r\n//  the problem of Approximate Nearest Neighbor (ANN) search.\r\n// -----------------------------------------------------------------------------\r\nclass QALSH {\r\npublic:\r\n\tQALSH();\t\t\t\t\t\t// constructor\r\n\t~QALSH();\t\t\t\t\t\t// destructor\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid init(\t\t\t\t\t\t// init params of qalsh\r\n\t\tint   n,\t\t\t\t\t\t// number of data points\r\n\t\tint   d,\t\t\t\t\t\t// dimension of space\r\n\t\tint   B,\t\t\t\t\t\t// page size\r\n\t\tfloat ratio, int N,\t\t\t\t\t// approximation ratio\r\n\t\tchar* output_folder);\t\t\t// folder of info of qalsh\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint restore(\t\t\t\t\t// restore params of qalsh\r\n\t\tchar* output_folder);\t\t\t// folder of info of qalsh\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint bulkload(\t\t\t\t\t// build b+ trees by bulkloading\r\n\t\tfloat** data);\t\t\t\t\t// data set\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tint knn(\t\t\t\t\t\t// k-nn search\r\n\t\tfloat* query,\t\t\t\t\t// one query point\r\n\t\tint top_k,\t\t\t\t\t\t// top-k value\r\n\t\tResultItem* rslt,\t\t\t\t// k-nn results\r\n\t\tchar* output_folder);\t\t\t// folder of info of qalsh\r\n\r\nprivate:\r\n\t// -------------------------------------------------------------------------\r\n\tint   n_pts_;\t\t\t\t\t// number of points\r\n\tint   dim_;\t\t\t\t\t\t// dimensiona of space\r\n\tint   B_;\t\t\t\t\t\t// page size in words\r\n\tfloat appr_ratio_;\t\t\t\t// approximation ratio\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat w_;\t\t\t\t\t\t// bucket width\r\n\tfloat p1_;\t\t\t\t\t\t// positive probability\r\n\tfloat p2_;\t\t\t\t\t\t// negative probability\r\n\r\n\tfloat alpha_;\t\t\t\t\t// collision threshold percentage\r\n\tfloat beta_;\t\t\t\t\t// false positive percentage\r\n\tfloat delta_;\t\t\t\t\t// error probability\n\tint N_;\r\n\r\n\tint m_;\t\t\t\t\t\t\t// number of hashtables\r\n\tint l_;\t\t\t\t\t\t\t// collision threshold\r\n\r\n\tfloat* a_array_;\t\t\t\t// hash functions\r\n\tchar index_path_[200];\t\t\t// folder path of index\r\n\r\n\tint dist_io_;\t\t\t\t\t// io for calculating L2 distance\r\n\tint page_io_;\t\t\t\t\t// io for scanning pages by qalsh\r\n\tBTree** trees_;\t\t\t\t\t// b-trees\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid calc_params();\t\t\t\t// calc parama of qalsh\r\n\r\n\tfloat calc_l2_prob(\t\t\t\t// calc <p1> and <p2> for L2 distance\r\n\t\tfloat x);\t\t\t\t\t\t// para\r\n\r\n\tvoid display_params();\t\t\t// display params\r\n\r\n\tvoid gen_hash_func();\t\t\t// generate hash functions\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat calc_hash_value(\t\t\t// calc hash value\r\n\t\tint table_id,\t\t\t\t\t// hash table id\r\n\t\tfloat* point);\t\t\t\t\t// one point\r\n\r\n\tint write_para_file(\t\t\t// write file of para\r\n\t\tchar* fname);\t\t\t\t\t// file name of para\r\n\r\n\tint read_para_file(\t\t\t\t// read file of para\r\n\t\tchar* fname);\t\t\t\t\t// file name of para\r\n\r\n\tvoid get_tree_filename(\t\t\t// get file name of tree\r\n\t\tint tree_id,\t\t\t\t\t// tree id\r\n\t\tchar* fname);\t\t\t\t\t// file name of tree (return)\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid init_buffer(\t\t\t\t// init page buffer (loc pos of b-treee)\r\n\t\tPageBuffer* lptr,\t\t\t\t// left buffer page (return)\r\n\t\tPageBuffer* rptr,\t\t\t\t// right buffer page (return)\r\n\t\tfloat* q_dist,\t\t\t\t\t// hash value of query (return)\r\n\t\tfloat* query);\t\t\t\t\t// query point\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat find_radius(\t\t\t\t// find proper radius\r\n\t\tPageBuffer* lptr,\t\t\t\t// left page buffer\r\n\t\tPageBuffer* rptr,\t\t\t\t// right page buffer\r\n\t\tfloat* q_dist);\t\t\t\t\t// hash value of query\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat update_radius(\t\t\t// update radius\r\n\t\tPageBuffer* lptr,\t\t\t\t// left page buffer\r\n\t\tPageBuffer* rptr,\t\t\t\t// right page buffer\r\n\t\tfloat* q_dist,\t\t\t\t\t// hash value of query\r\n\t\tfloat  old_radius);\t\t\t\t// old radius\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat update_result(\t\t\t// update k-nn results\r\n\t\tResultItem* rslt,\t\t\t\t// k-nn results\r\n\t\tResultItem* item,\t\t\t\t// input result\r\n\t\tint topk);\t\t\t\t\t\t// top-k value\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tvoid update_left_buffer(\t\t// update left buffer\r\n\t\tPageBuffer* lptr,\t\t\t\t// left buffer\r\n\t\tconst PageBuffer* rptr);\t\t// right buffer\r\n\r\n\tvoid update_right_buffer(\t\t// update right buffer\r\n\t\tconst PageBuffer* lptr,\t\t\t// left buffer\r\n\t\tPageBuffer* rptr);\t\t\t\t// right buffer\r\n\r\n\t// -------------------------------------------------------------------------\r\n\tfloat calc_proj_dist(\t\t\t// calc proj dist\r\n\t\tconst PageBuffer* ptr,\t\t\t// page buffer\r\n\t\tfloat q_val);\t\t\t\t\t// hash value of query\r\n};\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Comparison function for qsort called by QALSH::bulkload()\r\n// -----------------------------------------------------------------------------\r\nint HashValueQsortComp(\t\t\t\t// compare function for qsort\r\n\tconst void* e1,\t\t\t\t\t\t// 1st element\r\n\tconst void* e2);\t\t\t\t\t// 2nd element\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/random.cpp",
    "content": "#include \"headers.h\"\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Functions used for generating random variables (r.v.).\r\n// -----------------------------------------------------------------------------\r\nfloat uniform(\t\t\t\t\t\t// r.v. from Uniform(min, max)\r\n\tfloat min,\t\t\t\t\t\t\t// min value\r\n\tfloat max)\t\t\t\t\t\t\t// max value\r\n{\r\n\tif (min > max) error(\"uniform() parameters error.\\n\", true);\r\n\r\n\tfloat x = min + (max - min) * (float) rand() / (float) RAND_MAX;\r\n\tif (x < min || x > max) error(\"uniform() func error.\\n\", true);\r\n\r\n\treturn x;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Use Box-Muller transform to generate a r.v. from Gaussian(mean, sigma)\r\n//\r\n//  Standard Gaussian distribution is Gaussian(0, 1), where mean = 0 and \r\n//  sigma = 1.\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian(\t\t\t\t\t\t// r.v. from Gaussian(mean, sigma)\r\n\tfloat mu,\t\t\t\t\t\t\t// mean (location)\r\n\tfloat sigma)\t\t\t\t\t\t// stanard deviation (scale > 0)\r\n{\r\n\tif (sigma <= 0.0f) error(\"gaussian() parameters error.\\n\", true);\r\n\r\n\tfloat u1, u2;\r\n\tdo {\r\n\t\tu1 = uniform(0.0f, 1.0f);\r\n\t} while (u1 < FLOATZERO);\r\n\tu2 = uniform(0.0f, 1.0f);\r\n\t\r\n\tfloat x = mu + sigma * sqrt(-2.0f * log(u1)) * cos(2.0f * PI * u2);\r\n\t//float x = mu + sigma * sqrt(-2.0f * log(u1)) * sin(2.0f * PI * u2);\r\n\treturn x;\r\n}\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Functions used for calculating probability distribution function (pdf) and \r\n//  cumulative distribution function (cdf).\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian_pdf(\t\t\t\t\t// pdf of N(0, 1)\r\n\tfloat x)\t\t\t\t\t\t\t// variable\r\n{\r\n\tfloat ret = exp(-x * x / 2.0f) / sqrt(2.0f * PI);\r\n\treturn ret;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian_cdf(\t\t\t\t\t// cdf of N(0, 1) in range (-inf, x]\r\n\tfloat x,\t\t\t\t\t\t\t// integral border\r\n\tfloat step)\t\t\t\t\t\t\t// step increment\r\n{\r\n\tfloat ret = 0.0f;\r\n\tfor (float i = -10.0f; i < x; i += step) {\r\n\t\tret += step * gaussian_pdf(i);\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat new_gaussian_cdf(\t\t\t\t// cdf of N(0, 1) in range [-x, x]\r\n\tfloat x,\t\t\t\t\t\t\t// integral border (x > 0)\r\n\tfloat step)\t\t\t\t\t\t\t// step increment\r\n{\r\n\tif (x <= 0.0f) error(\"new_gaussian_cdf() parameters error.\\n\", true);\r\n\r\n\tfloat ret = 0.0f;\r\n\tfor (float i = -x; i <= x; i += step) {\r\n\t\tret += step * gaussian_pdf(i);\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n\r\n// -----------------------------------------------------------------------------\n//  query-oblivious and query-aware collision probability under gaussian\n//      distribution and cauchy distribution\n// -----------------------------------------------------------------------------\nfloat orig_gaussian_prob(\t\t\t// calc original gaussian probability\n\tfloat x)\t\t\t\t\t\t\t// x = w / r\n{\n\tfloat norm = gaussian_cdf(-x, 0.001F);\n\tfloat tmp = 2.0F * (1.0F - exp(-x * x / 2.0F)) / (sqrt(2.0F * PI) * x);\n\n\tfloat p = 1.0F - 2.0F * norm - tmp;\n\treturn p;\n}\n\n// -----------------------------------------------------------------------------\nfloat new_gaussian_prob(\t\t\t// calc new gaussian probability\n\tfloat x)\t\t\t\t\t\t\t// x = w / (2 * r)\n{\n\tfloat p = new_gaussian_cdf(x, 0.001F);\n\treturn p;\n}\n\n// -----------------------------------------------------------------------------\n//  probability vs. w for a fixed ratio c\n// -----------------------------------------------------------------------------\nvoid prob_of_gaussian()\t\t\t\t// curve of p1, p2 vs. w under gaussian\n{\n\tprintf(\"probability vs. w for c = {2.0, 3.0} under gaussian\\n\");\n\n\tfloat c[2] = {2.0f, 3.0f};\n\tfloat orig_p1, orig_p2, new_p1, new_p2;\n\n\tfor (int i = 0; i < 2; i++) {\n\t\tprintf(\"c = %.1f\\n\", c[i]);\n\n\t\tfor (float w = 0.5f; w < 10.1f; w += 0.5f) {\n\t\t\torig_p1 = orig_gaussian_prob(w);\n\t\t\torig_p2 = orig_gaussian_prob(w / c[i]);\n\n\t\t\tnew_p1 = new_gaussian_prob(w / 2.0f);\n\t\t\tnew_p2 = new_gaussian_prob(w / (2.0f * c[i]));\n\n\t\t\tprintf(\"%.1f\\t%.4f\\t%.4f\\t%.4f\\t%.4f\\n\", \n\t\t\t\tw, orig_p1, orig_p2, new_p1, new_p2);\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n}\n\n// -----------------------------------------------------------------------------\n//  the difference (p1 - p2) vs. w for a fixed ratio\n// -----------------------------------------------------------------------------\nvoid diff_prob_of_gaussian()\t\t// curve of p1 - p2 vs. w under gaussian\n{\n\tprintf(\"prob of diff vs. w for c = {2.0, 3.0} under gaussian\\n\");\n\n\tfloat c[2] = {2.0f, 3.0f};\n\tfloat orig_p1, orig_p2, new_p1, new_p2, orig_diff, new_diff;\t\n\n\tfor (int i = 0; i < 2; i++) {\n\t\tprintf(\"c = %.1f\\n\", c[i]);\n\n\t\tfor (float w = 0.5f; w < 10.1f; w += 0.5f) {\n\t\t\torig_p1 = orig_gaussian_prob(w);\n\t\t\torig_p2 = orig_gaussian_prob(w / c[i]);\n\t\t\torig_diff = orig_p1 - orig_p2;\n\n\t\t\tnew_p1 = new_gaussian_prob(w / 2.0f);\n\t\t\tnew_p2 = new_gaussian_prob(w / (2.0f * c[i]));\n\t\t\tnew_diff = new_p1 - new_p2;\n\n\t\t\tprintf(\"%.1f\\t%.4f\\t%.4f\\n\", w, orig_diff, new_diff);\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n}\n\n// -----------------------------------------------------------------------------\n//  rho = log(1/p1) / log(1/p2) vs. w for a fixed ratio c\n// -----------------------------------------------------------------------------\nvoid rho_of_gaussian()\t\t\t\t// curve of rho vs. w under gaussian\n{\n\tprintf(\"rho vs. w for c = {2.0, 3.0} under gaussian\\n\");\n\n\tfloat c[2] = {2.0f, 3.0f};\n\tfloat orig_p1, orig_p2, new_p1, new_p2, orig_rho, new_rho;\n\n\tfor (int i = 0; i < 2; i++) {\n\t\tprintf(\"c = %.1f\\n\", c[i]);\n\n\t\tfor (float w = 0.5f; w < 10.1f; w += 0.5f) {\n\t\t\torig_p1 = orig_gaussian_prob(w);\n\t\t\torig_p2 = orig_gaussian_prob(w / c[i]);\n\t\t\torig_rho = log(1.0f / orig_p1) / log(1.0f / orig_p2);\n\n\t\t\tnew_p1 = new_gaussian_prob(w / 2.0f);\n\t\t\tnew_p2 = new_gaussian_prob(w / (2.0f * c[i]));\n\t\t\tnew_rho = log(1.0f / new_p1) / log(1.0f / new_p2);\n\n\t\t\tprintf(\"%.1f\\t%.4f\\t%.4f\\t%.4f\\n\", w, orig_rho, new_rho, 1.0f/c[i]);\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n}\n"
  },
  {
    "path": "algorithms/QALSH/src/random.h",
    "content": "#ifndef __RANDOM_H\r\n#define __RANDOM_H\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Functions used for generating random variables (r.v.).\r\n// -----------------------------------------------------------------------------\r\nfloat uniform(\t\t\t\t\t\t// r.v. from Uniform(min, max)\r\n\tfloat min,\t\t\t\t\t\t\t// min value\r\n\tfloat max);\t\t\t\t\t\t\t// max value\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian(\t\t\t\t\t\t// r.v. from Gaussian(mean, sigma)\r\n\tfloat mu,\t\t\t\t\t\t\t// mean (location)\r\n\tfloat sigma);\t\t\t\t\t\t// stanard deviation (scale > 0)\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Functions used for calculating probability distribution function (pdf) and \r\n//  cumulative distribution function (cdf).\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian_pdf(\t\t\t\t\t// pdf of N(0, 1)\r\n\tfloat x);\t\t\t\t\t\t\t// variable\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat gaussian_cdf(\t\t\t\t\t// cdf of N(0, 1) in range (-inf, x]\r\n\tfloat x,\t\t\t\t\t\t\t// integral border\r\n\tfloat step = 0.001f);\t\t\t\t// step increment\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat new_gaussian_cdf(\t\t\t\t// cdf of N(0, 1) in range [-x, x]\r\n\tfloat x,\t\t\t\t\t\t\t// integral border (x > 0)\r\n\tfloat step = 0.001f);\t\t\t\t// step increment\r\n\r\n\r\n// -----------------------------------------------------------------------------\n//  query-oblivious and query-aware collision probability under gaussian\n//  distribution, cauchy distribution and levy distribution\n// -----------------------------------------------------------------------------\nfloat orig_gaussian_prob(\t\t\t// calc original gaussian probability\n\tfloat x);\t\t\t\t\t\t\t// x = w / r\n\n// -----------------------------------------------------------------------------\nfloat new_gaussian_prob(\t\t\t// calc new gaussian probability\n\tfloat x);\t\t\t\t\t\t\t// x = w / (2 * r)\n\n// -----------------------------------------------------------------------------\n//  probability vs. w for a fixed ratio c\n// -----------------------------------------------------------------------------\nvoid prob_of_gaussian();\t\t\t// curve of p1, p2 vs. w under gaussian\n\n// -----------------------------------------------------------------------------\n//  the difference (p1 - p2) vs. w for a fixed ratio\n// -----------------------------------------------------------------------------\nvoid diff_prob_of_gaussian();\t\t// curve of p1 - p2 vs. w under gaussian\n\n// -----------------------------------------------------------------------------\n//  rho = log(1/p1) / log(1/p2) vs. w for a fixed ratio c\n// -----------------------------------------------------------------------------\nvoid rho_of_gaussian();\t\t\t\t// curve of rho vs. w under gaussian\n\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/QALSH/src/util.cpp",
    "content": "#include \"headers.h\"\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Global variables\r\n// -----------------------------------------------------------------------------\r\nlong g_memory = 0;\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Utility functions\r\n// -----------------------------------------------------------------------------\r\nint compfloats(\t\t\t\t\t\t// compare two real values \r\n\tfloat v1,\t\t\t\t\t\t\t// 1st value (type float)\r\n\tfloat v2)\t\t\t\t\t\t\t// 2nd value (type float)\r\n{\r\n\tif (v1 - v2 < -FLOATZERO) return -1;\r\n\telse if (v1 - v2 > FLOATZERO) return 1;\r\n\telse return 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid error(\t\t\t\t\t\t\t// display an error message\r\n\tchar* msg,\t\t\t\t\t\t\t// message\r\n\tbool is_exit)\t\t\t\t\t\t// whether exit\r\n{\r\n\tprintf(msg);\r\n\tif (is_exit) exit(1);\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint check_mem()\t\t\t\t\t\t// check memory is enough\r\n{\r\n\tif (g_memory > MAXMEMORY) {\t\t// default maximum memory is 1 GB\r\n\t\tprintf(\"I am going to need around %.2f MB memory.\\n\", \r\n\t\t\t(float) g_memory / (1024.0f * 1024.0f));\r\n\r\n\t\tprintf(\"Can you afford it (y/n)?\\n\");\r\n\t\tchar c = 'y';//getchar();\t\t\t// ask for more memory\r\n\t\t//getchar();\r\n\t\tif (c != 'y' && c != 'Y') {\r\n\t\t\treturn 1;\t\t\t\t// fail to return\r\n\t\t}\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat calc_l2_dist(\t\t\t\t\t// calculate l2 distance of 2 vectors\r\n\tfloat* p1,\t\t\t\t\t\t\t// 1st point\r\n\tfloat* p2,\t\t\t\t\t\t\t// 2nd point\r\n\tint dim)\t\t\t\t\t\t\t// dimension\r\n{\r\n\tfloat diff = 0.0f;\r\n\tfloat ret  = 0.0f;\r\n\tfor (int i = 0; i < dim; i++) {\r\n\t\tdiff = p1[i] - p2[i];\r\n\t\tret += diff * diff;\r\n\t}\r\n\treturn sqrt(ret);\r\n}\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Read the original dataset (or query set) from disk\r\n// -----------------------------------------------------------------------------\r\nint read_set(\t\t\t\t\t\t// read (data or query) set from disk\r\n\tint n,\t\t\t\t\t\t\t\t// number of data points\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tchar* set,\t\t\t\t\t\t\t// address of dataset\r\n\tfloat** points)\t\t\t\t\t\t// data or queries (return)\r\n{\r\n\tint i = 0;\r\n\tint j = 0;\r\n\tFILE* fp = NULL;\r\n\r\n\tfp = fopen(set, \"r\");\t\t\t// open data file\r\n\tif (!fp) {\r\n\t\tprintf(\"I could not open %s1111.\\n\", set);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\ti = 0;\r\n\twhile (!feof(fp) && i < n) {\t// read data file\r\n\t\t//fscanf(fp, \"%d\", &j);\r\n\t\tfor (j = 0; j < d; j++) {\r\n\t\t\tfscanf(fp, \"%f \", &points[i][j]);\r\n\t\t}\r\n\t\tfscanf(fp, \"\\n\");\r\n\r\n\t\ti++;\r\n\t}\r\n\tif (!feof(fp) && i == n) {\t\t// check the size of set\r\n\t\terror(\"The size of set is larger than you input\\n\", false);\r\n\t}\r\n\telse if (feof(fp) && i < n) {\r\n\t\tprintf(\"Set the size of dataset to be %d. \", i);\r\n\t\terror(\"And try again\\n\", true);\r\n\t}\r\n\tfclose(fp);\t\t\t\t\t\t// close data file\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Write the data set in new format to the disk\r\n// -----------------------------------------------------------------------------\r\nint write_data_new_form(\t\t\t// write dataset with new format\r\n\tint n,\t\t\t\t\t\t\t\t// cardinality\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tfloat** data,\t\t\t\t\t\t// data set\r\n\tchar* output_path)\t\t\t\t\t// output path\r\n{\r\n\t\t\t\t\t\t\t\t\t// number of data in one data file\r\n\tint num = (int) floor((float) B / (d * SIZEFLOAT));\r\n\t\t\t\t\t\t\t\t\t// total number of data file\r\n\tint total_file = (int) ceil((float) n / num);\r\n\tif (total_file == 0) {\r\n\t\treturn 1;\t\t\t\t\t// fail to return\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Check whether the directory exists. If the directory does not exist, we \r\n\t//  create the directory for each folder.\r\n\t// -------------------------------------------------------------------------\r\n\tchar* data_path = new char[200];\r\n\tg_memory += SIZECHAR * 200;\r\n\r\n\tstrcpy(data_path, output_path);\r\n\tstrcat(data_path, \"data/\");\r\n\t\r\n\t\t\t\t\t\t\t\t\t// create directory under Linux\r\n\tint len = (int) strlen(data_path);\r\n\tfor (int i = 0; i < len; i++) {\r\n\t\tif (data_path[i] == '/') {\r\n\t\t\tchar ch = data_path[i + 1];\r\n\t\t\tdata_path[i + 1] = '\\0';\r\n\t\t\t\t\t\t\t\t\t// check whether the directory exists\r\n\t\t\tint ret = access(data_path, F_OK);\r\n\t\t\tif (ret != 0) {\t\t\t// create the directory\r\n\t\t\t\tret = mkdir(data_path, 0755);\r\n\t\t\t\tif (ret != 0) {\r\n\t\t\t\t\tprintf(\"Could not create directory %s\\n\", data_path);\r\n\t\t\t\t\terror(\"write_data_new_form error\\n\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdata_path[i + 1] = ch;\r\n\t\t}\r\n\t}\r\n\r\n\t/*\t\t\t\t\t\t\t\t// create directory under Windows\r\n\tint len = (int) strlen(data_path);\r\n\tfor (int i = 0; i < len; i++) {\r\n\t\tif (data_path[i] == '/') {\r\n\t\t\tchar ch = data_path[i + 1];\r\n\t\t\tdata_path[i + 1] = '\\0';\r\n\t\t\t\t\t\t\t\t\t// check whether the directory exists\r\n\t\t\tint ret = _access(data_path, 0);\r\n\t\t\tif (ret != 0) {\t\t\t// create the directory\r\n\t\t\t\tret = _mkdir(data_path);\r\n\t\t\t\tif (ret != 0) {\r\n\t\t\t\t\tprintf(\"Could not create directory %s\\n\", data_path);\r\n\t\t\t\t\terror(\"Write_data_new_form() error\\n\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdata_path[i + 1] = ch;\r\n\t\t}\r\n\t}\r\n\t*/\r\n\t\r\n\t// -------------------------------------------------------------------------\r\n\t//  Write data of qalsh\r\n\t// -------------------------------------------------------------------------\r\n\tchar* fname = new char[200];\r\n\tchar* buffer = new char[B];\t\t// allocate one page size\r\n\tfor (int i = 0; i < B; i++) {\r\n\t\tbuffer[i] = 0;\r\n\t}\r\n\tg_memory += SIZECHAR * (200 + B);\r\n\r\n\tint left  = 0;\r\n\tint right = 0;\r\n\tfor (int i = 0; i < total_file; i++) {\r\n\t\t\t\t\t\t\t\t\t// get file name of data\r\n\t\tget_data_filename(i, data_path, fname);\r\n\r\n\t\tleft = i * num;\r\n\t\tright = left + num;\r\n\t\tif (right > n) right = n;\t// write data to buffer\r\n\t\twrite_data_to_buffer(d, left, right, data, buffer);\r\n\r\n\t\t\t\t\t\t\t\t\t// write one page of data to disk\r\n\t\tif (write_buffer_to_page(B, fname, buffer) == 1) {\r\n\t\t\terror(\"write_data_new_form error to write a page\", true);\r\n\t\t}\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Release space\r\n\t// -------------------------------------------------------------------------\r\n\tif (buffer != NULL) {\r\n\t\tdelete[] buffer; buffer = NULL;\r\n\t\tg_memory -= SIZECHAR * 200;\r\n\t}\r\n\tif (data_path != NULL || fname != NULL) {\r\n\t\tdelete[] data_path; data_path = NULL;\r\n\t\tdelete[] fname; fname = NULL;\r\n\t\tg_memory -= SIZECHAR * (200 + B);\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid get_data_filename(\t\t\t\t// get file name of data\r\n\tint file_id,\t\t\t\t\t\t// data file id\r\n\tchar* data_path,\t\t\t\t\t// path to store data in new format\r\n\tchar* fname)\t\t\t\t\t\t// file name of data (return)\r\n{\r\n\tchar c[20];\r\n\r\n\tstrcpy(fname, data_path);\r\n\tsprintf(c, \"%d\", file_id);\r\n\tstrcat(fname, c);\r\n\tstrcat(fname, \".data\");\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid write_data_to_buffer(\t\t\t// write data to buffer\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint left,\t\t\t\t\t\t\t// left data id\r\n\tint right,\t\t\t\t\t\t\t// right data id\r\n\tfloat** data,\t\t\t\t\t\t// data set\r\n\tchar* buffer)\t\t\t\t\t\t// buffer to store data\r\n{\r\n\tint c = 0;\r\n\tfor (int i = left; i < right; i++) {\r\n\t\tfor (int j = 0; j < d; j++) {\r\n\t\t\tmemcpy(&buffer[c], &data[i][j], SIZEFLOAT);\r\n\t\t\tc += SIZEFLOAT;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint write_buffer_to_page(\t\t\t// write buffer to one page\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tchar* fname,\t\t\t\t\t\t// file name of data\r\n\tchar* buffer)\t\t\t\t\t\t// buffer to store data\r\n{\r\n\tif (fname == NULL || buffer == NULL) return 1;\r\n\r\n\tFILE* fp = NULL;\r\n\tfp = fopen(fname, \"wb\");\t\t// open data file to write\r\n\tif (!fp) {\r\n\t\tprintf(\"I could not create %s.\\n\", fname);\r\n\t\treturn 1;\t\t\t\t\t// fail to return\r\n\t}\r\n\r\n\tfwrite(buffer, B, 1, fp);\r\n\tfclose(fp);\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Read data in new format from disk\r\n// -----------------------------------------------------------------------------\r\nint read_data(\t\t\t\t\t\t// read data from page\r\n\tint id,\t\t\t\t\t\t\t\t// index of data\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tfloat* data,\t\t\t\t\t\t// real data (return)\r\n\tchar* output_path)\t\t\t\t\t// output path\r\n{\r\n\t// -------------------------------------------------------------------------\r\n\t//  Get file name of data\r\n\t// -------------------------------------------------------------------------\r\n\tchar* fname     = new char[200];\r\n\tchar* data_path = new char[200];\r\n\tg_memory += SIZECHAR * 400;\r\n\r\n\tstrcpy(data_path, output_path);\r\n\tstrcat(data_path, \"data/\");\r\n\t\t\t\t\t\t\t\t\t// number of data in one data file\r\n\tint num = (int) floor((float) B / (d * SIZEFLOAT));\r\n\t\t\t\t\t\t\t\t\t// data file id\r\n\tint file_id = (int) floor((float) id / num);\r\n\r\n\tget_data_filename(file_id, data_path, fname);\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read buffer (one page of data) in new format from disk\r\n\t// -------------------------------------------------------------------------\r\n\tchar* buffer = new char[B];\t\t// allocate one page size\r\n\tg_memory += SIZECHAR * B;\r\n\tfor (int i = 0; i < B; i++) {\r\n\t\tbuffer[i] = 0;\r\n\t}\r\n\tif (read_buffer_from_page(B, fname, buffer) == 1) {\r\n\t\terror(\"read_data() error to read a page\", true);\r\n\t}\r\n\r\n\t// -------------------------------------------------------------------------\r\n\t//  Read data from buffer\r\n\t// -------------------------------------------------------------------------\r\n\tint index = id % num;\r\n\tread_data_from_buffer(index, d, data, buffer);\r\n\r\n\tif (buffer != NULL) {\r\n\t\tdelete[] buffer; buffer = NULL;\r\n\t\tg_memory -= SIZECHAR * B;\r\n\t}\r\n\tif (data_path != NULL || fname != NULL) {\r\n\t\tdelete[] data_path; data_path = NULL;\r\n\t\tdelete[] fname; fname = NULL;\r\n\t\tg_memory -= SIZECHAR * 400;\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nint read_buffer_from_page(\t\t\t// read buffer from page\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tchar* fname,\t\t\t\t\t\t// file name of data\r\n\tchar* buffer)\t\t\t\t\t\t// buffer to store data\r\n{\r\n\tif (fname == NULL || buffer == NULL) return 1;\r\n\t//printf(\"read dist \");\r\n\tFILE* fp = NULL;\r\n\tfp = fopen(fname, \"rb\");\r\n\tif (!fp) {\r\n\t\tprintf(\"read_buffer_from_page could not open %s.\\n\", fname);\r\n\t\treturn 1;\t\t\t\t\t// fail to return\r\n\t}\r\n\r\n\tfread(buffer, B, 1, fp);\r\n\tfclose(fp);\r\n\treturn 0;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid read_data_from_buffer(\t\t\t// read data from buffer\r\n\tint index,\t\t\t\t\t\t\t// index of data in buffer\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tfloat* data,\t\t\t\t\t\t// data set\r\n\tchar* buffer)\t\t\t\t\t\t// buffer to store data\r\n{\r\n\tint c = index * d * SIZEFLOAT;\r\n\tfor (int i = 0; i < d; i++) {\r\n\t\tmemcpy(&data[i], &buffer[c], SIZEFLOAT);\r\n\t\tc += SIZEFLOAT;\r\n\t}\r\n}\r\n\r\n\r\n"
  },
  {
    "path": "algorithms/QALSH/src/util.h",
    "content": "#ifndef __UTIL_H\r\n#define __UTIL_H\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Global variables\r\n// -----------------------------------------------------------------------------\r\nextern long g_memory;\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Uitlity functions\r\n// -----------------------------------------------------------------------------\r\nint compfloats(\t\t\t\t\t\t// compare two float values\r\n\tfloat v1,\t\t\t\t\t\t\t// 1st float value\r\n\tfloat v2);\t\t\t\t\t\t\t// 2nd float value\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid error(\t\t\t\t\t\t\t// an error message\r\n\tchar* msg,\t\t\t\t\t\t\t// an message\r\n\tbool is_exit);\t\t\t\t\t\t// whether exit the program\r\n\r\n// -----------------------------------------------------------------------------\r\nint check_mem();\t\t\t\t\t// check memory is enough\r\n\r\n// -----------------------------------------------------------------------------\r\nfloat calc_l2_dist(\t\t\t\t\t// calc L2 distance (type float)\r\n\tfloat* p1,\t\t\t\t\t\t\t// 1st point\r\n\tfloat* p2,\t\t\t\t\t\t\t// 2nd point\r\n\tint dim);\t\t\t\t\t\t\t// dimension\r\n\r\n\r\n// -----------------------------------------------------------------------------\r\n//  Functions used for the input/output of datasets and query sets.\r\n// -----------------------------------------------------------------------------\r\nint read_set(\t\t\t\t\t\t// read (data or query) set from disk\r\n\tint n,\t\t\t\t\t\t\t\t// number of data points\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tchar* set,\t\t\t\t\t\t\t// address of dataset\r\n\tfloat** points);\t\t\t\t\t// data or queries (return)\r\n\r\n// -----------------------------------------------------------------------------\r\nint write_data_new_form(\t\t\t// write dataset with new format\r\n\tint n,\t\t\t\t\t\t\t\t// cardinality\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tfloat** data,\t\t\t\t\t\t// data set\r\n\tchar* output_path);\t\t\t\t\t// output path\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid get_data_filename(\t\t\t\t// get file name of data\r\n\tint data_id,\t\t\t\t\t\t// data file id\r\n\tchar* data_path,\t\t\t\t\t// path to store data in new format\r\n\tchar* fname);\t\t\t\t\t\t// file name of data (return)\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid write_data_to_buffer(\t\t\t// write data to buffer\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint left,\t\t\t\t\t\t\t// left data id\r\n\tint right,\t\t\t\t\t\t\t// right data id\r\n\tfloat** data,\t\t\t\t\t\t// data set\r\n\tchar* buffer);\t\t\t\t\t\t// buffer to store data\r\n\r\n// -----------------------------------------------------------------------------\r\nint write_buffer_to_page(\t\t\t// write data to one page\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tchar* fname,\t\t\t\t\t\t// file name of data\r\n\tchar* buffer);\t\t\t\t\t\t// buffer to store data\r\n\r\n// -----------------------------------------------------------------------------\r\nint read_data(\t\t\t\t\t\t// read data from page\r\n\tint id,\t\t\t\t\t\t\t\t// index of data\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tfloat* data,\t\t\t\t\t\t// real data (return)\r\n\tchar* output_path);\t\t\t\t\t// output path\r\n\r\n// -----------------------------------------------------------------------------\r\nint read_buffer_from_page(\t\t\t// read data from page\r\n\tint B,\t\t\t\t\t\t\t\t// page size\r\n\tchar* fname,\t\t\t\t\t\t// file name of data\r\n\tchar* buffer);\t\t\t\t\t\t// buffer to store data\r\n\r\n// -----------------------------------------------------------------------------\r\nvoid read_data_from_buffer(\t\t\t// read data from buffer\r\n\tint index,\t\t\t\t\t\t\t// index of data in buffer\r\n\tint d,\t\t\t\t\t\t\t\t// dimensionality\r\n\tfloat* data,\t\t\t\t\t\t// data set\r\n\tchar* buffer);\t\t\t\t\t\t// buffer to store data\r\n\r\n\r\n#endif\r\n"
  },
  {
    "path": "algorithms/RCT/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"rct---rank-cover-tree\">RCT - Rank Cover Tree</h1>\n<p>The originial source code is obtained from the authors by email, who kindly allow us to release them through this benchmark.</p>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>gcc 4.7</code> and above)</li>\n<li><a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">A sample data</a> (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that all data files downloaded should be put to the <code>./knn_benchmark/data</code> directory.</li>\n</ul>\n<h2 id=\"compile-rctsrc\">Compile (RCT/src)</h2>\n<p>To compile the RCT program, go to <code>src</code> and type</p>\n<pre><code>make</code></pre>\n<h2 id=\"construct-rctscript\">Construct (RCT/script)</h2>\n<pre><code>build.sh</code></pre>\n<p>Build index based on the data points, which is put to its index directory (i.e., <code>RCT/index</code>).</p>\n<h2 id=\"search-rctscript\">Search (RCT/script)</h2>\n<pre><code>search.sh</code></pre>\n<p>Note that, in our experiment paper, we tuen the <code>c</code> value of RCT search (i.e., restricting the number of neighboring nodes to be visited at each level of the structure) to achieve the trade-off between search speed and search quality (recall). The search performance (time and recall) results are kept in the <code>RCT/results</code> directory.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/RCT/README.md",
    "content": "# RCT - Rank Cover Tree\n\nThe originial source code is obtained from the authors by email, who kindly allow us to release them through this benchmark.  \n\n## Prerequisites\n\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- [A sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that all data files downloaded should be put to the `./knn_benchmark/data` directory.\n \n## Compile (RCT/src)\n\nTo compile the RCT program, go to `src` and type\n\n```\nmake\n```\n\n## Construct (RCT/script) \n\n```\nbuild.sh\n```\n\nBuild index based on the data points, which is put to its index directory (i.e., `RCT/index`).\n\n## Search (RCT/script)\n\n```\nsearch.sh\n```\n\nNote that, in our experiment paper, we tuen the `c` value of RCT search (i.e.,\nrestricting the number of neighboring nodes to be visited at each level of the\nstructure) to achieve the trade-off between search speed and search quality\n(recall). The search performance (time and recall) results are kept in the\n`RCT/results` directory.\n\n"
  },
  {
    "path": "algorithms/RCT/script/build.sh",
    "content": "data_path=../../../data\nindex_path=../index\nmkdir ${index_path}\n\nsampleRate=4\nparent=5\nscale=5\n\nfor data in \"audio\"\ndo\n\n../src/indexer -s ${data_path}/${data}_base.fvecs -i ${index_path}/${data} -p ${parent} -f ${scale} -r ${sampleRate} \n\ndone\n\n\n\n\n"
  },
  {
    "path": "algorithms/RCT/script/search.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\ngnd_path=../../../data\nindices_path=../index\nresult_path=../results\nmkdir ${result_path}\n\nscale=5\nk=20\n\nfor data in \"audio\"\ndo\n\nfor c in 0.5 0.7 0.9 1 1.2 1.3 1.4 1.5 2.0 2.3 2.5 3 4 5 6\ndo\n\nif [ `expr $scale \\> $c` -eq 1 ];then\n\n../src/searcher -s ${data_path}/${data}_base.fvecs -q ${query_path}/${data}_query.fvecs -g ${gnd_path}/${data}_groundtruth.ivecs -i ${indices_path}/${data} -o ${result_path}/${data}.txt -k ${k} -c $c\n\nelse\necho $c\nfi\n\ndone\ndone\n\n\n\n\n"
  },
  {
    "path": "algorithms/RCT/src/DistData.cpp",
    "content": "/**\n * DistData.cpp: Container class and distance measures\n *                   for dense vector data.\n * \n * Author:           Michael Houle\n * Date:             4 December 2006\n * Version:          1.0\n */\n\n#include \"DistData.h\"\n#include <iostream>\nusing namespace std;\nusing std::cout;\nusing std::endl;\n////////////////////////////////////////////////////////////////////////\n//                            DistData                            //\n////////////////////////////////////////////////////////////////////////\n\n\n  //////////////////////////////////////////////////////////////////////\n  //                         Public Methods                           //\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Constructor building vector object from dense coordinate list.\n   */\n  DistData:: DistData ()\n  {\n     \n  }\n\n\n  DistData:: DistData (float* val, int len)\n  //\n  {\n    int i;\n\n    if (len <= 0)\n    {\n      value = NULL;\n      length = 0;\n      return;\n    }\n\n    value = new float [len];\n    length = len;\n\n    for (i=0; i<len; i++)\n    {\n      value[i] = val[i];\n\t  //std::cout<<value[i]<<std::endl;\n    }\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Constructor building vector object from dense coordinate list.\n   * For the sake of compactness, the coordinate values are\n   *   converted from double to float.\n   */\n\n  DistData:: DistData (double* val, int len)\n  //\n  {\n    int i;\n\n    if (len <= 0)\n    {\n      value = NULL;\n      length = 0;\n      return;\n    }\n\n    value = new float [len];\n    length = len;\n\n    for (i=0; i<len; i++)\n    {\n      value[i] = (float) val[i];\n    }\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Copy constructor.\n   */\n\n  DistData:: DistData (DistData* vec)\n  //\n  {\n    int i;\n    int len;\n\n    if ((vec == NULL) || (vec->length == 0))\n    {\n      this->value = NULL;\n      this->length = 0;\n      return;\n    }\n\n    len = vec->length;\n\n    this->value = new float [len];\n    this->length = len;\n\n    for (i=0; i<len; i++)\n    {\n      this->value[i] = vec->value[i];\n    }\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Destructor.\n   */\n\n  DistData:: ~DistData ()\n  //\n  {\n    if (value != NULL)\n    {\n      delete [] value;\n      value = NULL;\n    }\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Returns the distance between two vectors.\n   * A return value of 0.0F indicates that this vector object is\n   *   identical to the supplied object.\n   * If either vector is invalid, then a negative value is returned.\n   */\n\n  //float DistData:: distanceTo (DistData* vec)\n  // \n  //{\n  //  return distanceTo ((DistData*) vec);\n  //}\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Returns the distance between two vectors.\n   * A return value of 0.0F indicates that this vector object is\n   *   identical to the supplied object.\n   * If either vector is invalid, then a negative value is returned.\n   */\n\n  float DistData:: distanceTo (DistData* vec)\n  // \n  {\n#ifdef DISTDATA_VECTORANGLE_\n\n    int loc = 0;\n    int minLength = 0;\n    double normThis = 0.0F;\n    double normVec = 0.0F;\n    double cosine = 0.0F;\n\n    // Calculate the norm of this vector.\n\n    normThis = 0.0F;\n\n    for (loc=0; loc<length; loc++)\n    {\n      normThis += ((double) value[loc]) * value[loc];\n    }\n\n    if (normThis <= 0.0F)\n    {\n      return DistDATA_INVALID_;\n    }\n\n    normThis = sqrt (normThis);\n\n    // Calculate the norm of the supplied vector.\n\n    normVec = 0.0F;\n\n    for (loc=0; loc<vec->length; loc++)\n    {\n      normVec += ((double) vec->value[loc]) * vec->value[loc];\n    }\n\n    if (normVec <= 0.0F)\n    {\n      return DistDATA_INVALID_;\n    }\n\n    normVec = sqrt (normVec);\n\n    // Compute the dot product of the two vectors.\n\n    cosine = 0.0F;\n\n    minLength = vec->length;\n\n    if (minLength > length)\n    {\n      minLength = length;\n    }\n\n    for (loc=0; loc<minLength; loc++)\n    {\n      cosine += (value[loc] / normThis) * (vec->value[loc] / normVec);\n    }\n\n    // Compute the vector angle from the cosine value, and return.\n    // Roundoff error could have put the cosine value out of range.\n    // Handle these cases explicitly.\n\n    if (cosine >= 1.0F)\n    {\n      return 0.0F;\n    }\n    else if (cosine <= -1.0F)\n    {\n      return (float) acos (-1.0F);\n    }\n    else\n    {\n      return (float) acos (cosine);\n    }\n\n#else\n#ifdef DISTDATA_EUCLIDEAN_\n\n    int loc = 0;\n    int minLength = 0;\n    double diff = 0.0F;\n    double squareSum = 0.0F;\n\n    minLength = vec->length;\n\n    if (minLength > length)\n    {\n      minLength = length;\n    }\n\n    for (loc=0; loc<minLength; loc++)\n    {\n      diff = (value[loc] - vec->value[loc]);\n      squareSum += diff * diff;\n    }\n\n    return (float) squareSum; //sqrt (squareSum);\n\n#else\n#ifdef DISTDATA_L_ONE_\n\n    int loc = 0;\n    int minLength = 0;\n    double diff = 0.0F;\n    double absSum = 0.0F;\n\n    minLength = vec->length;\n\n    if (minLength > length)\n    {\n      minLength = length;\n    }\n\n    for (loc=0; loc<minLength; loc++)\n    {\n      diff = (value[loc] - vec->value[loc]);\n\n      if (diff < 0.0F)\n      {\n        absSum -= diff;\n      }\n      else\n      {\n        absSum += diff;\n      }\n    }\n\n    return (float) absSum;\n\n#else\n#ifdef DISTDATA_CHISQUAREDPLUS_\n\n    // Uses absolute values of raw data, incremented by one.\n    // As a result, data values are guaranteed to be at least 1.0F.\n\n    int loc = 0;\n    int minLength = 0;\n    double thisValue = 0.0F;\n    double vecValue = 0.0F;\n    double sum = 0.0F;\n    double diff = 0.0F;\n    double term = 0.0F;\n\n    minLength = vec->length;\n\n    if (minLength > length)\n    {\n      minLength = length;\n    }\n\n    for (loc=0; loc<minLength; loc++)\n    {\n      thisValue = value[loc];\n      vecValue = vec->value[loc];\n\n      if (thisValue < 0.0F)\n      {\n        thisValue = 1.0F - thisValue;\n      }\n      else\n      {\n        thisValue += 1.0F;\n      }\n\n      if (vecValue < 0.0F)\n      {\n        vecValue = 1.0F - vecValue;\n      }\n      else\n      {\n        vecValue += 1.0F;\n      }\n\n      diff = thisValue - vecValue;\n      sum = thisValue + vecValue;\n      term += diff * (diff / sum);\n    }\n\n    return (float) sqrt (term);\n\n#else\n#ifdef DISTDATA_JSDIVERGENCEPLUS_\n\n    // Uses absolute values of raw data, incremented by one.\n    // As a result, data values are guaranteed to be at least 1.0F.\n\n    int loc = 0;\n    int minLength = 0;\n    double avgValue = 0.0F;\n    double thisValue = 0.0F;\n    double vecValue = 0.0F;\n    double avgEntropy = 0.0F;\n    double thisEntropy = 0.0F;\n    double vecEntropy = 0.0F;\n\n    minLength = vec->length;\n\n    if (minLength > length)\n    {\n      minLength = length;\n    }\n\n    for (loc=0; loc<minLength; loc++)\n    {\n      thisValue = value[loc];\n      vecValue = vec->value[loc];\n\n      if (thisValue < 0.0F)\n      {\n        thisValue = 1.0F - thisValue;\n      }\n      else\n      {\n        thisValue += 1.0F;\n      }\n\n      if (vecValue < 0.0F)\n      {\n        vecValue = 1.0F - vecValue;\n      }\n      else\n      {\n        vecValue += 1.0F;\n      }\n\n      avgValue = (thisValue + vecValue) / 2.0F;\n\n      thisEntropy -= thisValue * log ((double) thisValue);\n      vecEntropy -= vecValue * log ((double) vecValue);\n      avgEntropy -= avgValue * log ((double) avgValue);\n    }\n\n    return (float) ((2.0F * avgEntropy) - (thisEntropy + vecEntropy));\n\n#else\n\n    return DISTDATA_INVALID_;\n\n#endif\n#endif\n#endif\n#endif\n#endif\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Fills the supplied buffer with all vector coordinate values.\n   * If the buffer is not sufficiently large, nothing is done.\n   * The method returns the number of values actually copied to the buffer.\n   */\n\n  int DistData:: getCoordValues (float* buffer, int capacity)\n  //\n  {\n    int i;\n\n    if ((buffer == NULL) || (capacity < length))\n    {\n      return 0;\n    }\n\n    for (i=0; i<length; i++)\n    {\n      buffer[i] = value[i];\n    }\n\n    return length;\n  }\n\n\n  //////////////////////////////////////////////////////////////////////\n\n\n  /**\n   * Returns the number of non-zero vector coordinate values.\n   */\n\n  int DistData:: getLength ()\n  //\n  {\n    return length;\n  }\n\n  float* DistData::getValue()\n  {\n\t\t//return 1;\n\t\treturn value;\n  }\n\n  //////////////////////////////////////////////////////////////////////\n  //////////////////////////////////////////////////////////////////////\n  //////////////////////////////////////////////////////////////////////\n\n"
  },
  {
    "path": "algorithms/RCT/src/DistData.h",
    "content": "#ifndef __DISTDATA_H\n#define\t__DISTDATA_H\n\n#ifndef DISTDATA_EUCLIDEAN_\n#define DISTDATA_EUCLIDEAN_\n#endif\n\n#ifndef DISTDATA_INVALID_\n#define DISTDATA_INVALID_ (-1.0F)\n#endif\n\nclass DistData {\n\npublic:\n\tfloat* value;\n    int length;\npublic:\n    DistData ();\n\tDistData (float* val, int len);\n\tDistData (double* val, int len);\n\tDistData (DistData* vec);\n    float distanceTo (DistData* vec);\n\tint getCoordValues (float* buffer, int capacity);\n    ~DistData() ;\n\tint getLength();\n\tfloat* getValue();\n};\n\n#endif\t/* __DISTDATA_H */\n\n"
  },
  {
    "path": "algorithms/RCT/src/Makefile",
    "content": "# Project setup.\nCC=g++\nCCFLAGS=-O3 -lm -fPIC -fomit-frame-pointer -fno-stack-protector # '-fno-stack-protector' used to fix an issue with 'ld' in GCC 4.X+!\nCPP_FILES=random.cpp rct.cpp DistData.cpp\nOBJ_FILES=$(CPP_FILES:%.cpp=%.o)\nH_FILES=$(CPP_FILES:%.cpp=%.h)\n\n# Compile a single file.\n%.o: %.cpp %.h\n\t$(CC) $(CCFLAGS) -c $<\n\n# Main target.\nall: rct.a rct.so indexer searcher doc\n\trm -f *.o\n\nindexer: $(OBJ_FILES) indexer.o\n\trm -f $@\n\tg++ -fPIC $(OBJ_FILES) indexer.o -o $@\n\nsearcher: $(OBJ_FILES) searcher.o\n\trm -f $@\n\tg++ -fPIC $(OBJ_FILES) searcher.o -o $@\n\n# Build static library.\nrct.a: $(OBJ_FILES)\n\trm -f $@\n\tar cq $@ $(OBJ_FILES)\n\n# Build shared library.\nrct.so: $(OBJ_FILES)\n\trm -f $@\n\t#ld -G $(OBJ_FILES) -o $@\n\tg++ -shared $(OBJ_FILES) -o $@ \n# Clean up.\nclean: \n\trm -f *~ *.o rct.a rct.so\n\trm -rf html latex dist\n\trm indexer searcher\n\n# Declare phony targets.\n.PHONY: all clean doc\n\n# Documentation\n#doc: rct.h rct.cpp\n\t#doxygen rct.h rct.cpp\n"
  },
  {
    "path": "algorithms/RCT/src/data_util.h",
    "content": "#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <stdexcept>\n#include \"DistData.h\"\n//#include \"VecData.h\"\n\n#ifndef _DATA_UTIL_H\n#define _DATA_UTIL_H\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nDistData** ReadPoints(const char * filepath, int *len, int *d) {\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tDistData ** points = new DistData*[n];\n\tfor(int i=0 ; i<n ; i++)\n  \t{\n\t\tfloat * data = new float [dim];\n\t\tfread(&dim, sizeof(int), 1, dfp);\n\t\tfread(data, sizeof(float), dim, dfp);\n\t\tDistData* a=new DistData(data,dim);\n\t\tpoints[i]= a;\n\t\tdelete data;\n  \t}\n\tfclose(dfp);\n\treturn points;\n}\n\nvoid ReadPoints(const char * filepath,DistData** points, int *len, int *d) {\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tpoints = new DistData*[n];\n\tfor(int i=0 ; i<n ; i++)\n  \t{\n\t\tfloat * data = new float [dim];\n\t\tfread(&dim, sizeof(int), 1, dfp);\n\t\tfread(data, sizeof(float), dim, dfp);\n\t\tDistData* a=new DistData(data,dim);\n\t\tpoints[i]= a;\n\t\tdelete data;\n  \t}\n\tfclose(dfp);\n}\n\nvoid ReadGroundtruth(const string& filename,int** gnds, int count) {\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  int nn;\n  for(int pid = 0; pid < count; ++pid) {\n    input.read((char*)&nn, sizeof(nn));\n    if(nn <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n\tint* gnd=(int*)malloc(sizeof(int)*nn);//new float[dimension];\n    for(int d = 0; d < nn; ++d) {\n      int buffer;\n      input.read((char*)&(buffer), sizeof(int));\n      gnd[d] = buffer;\t  \n    }    \n\tgnds[pid]= gnd;\n  }\n}\n\nvoid ReadChecks(const string& filename, vector<float>* checks) {\n  FILE *fp = fopen(filename.c_str(), \"r\");\n  int n;\n  fscanf(fp, \"%f \", &n);\n  checks->resize(n);\n  int tmp;\n  for (int i = 0; i < n; ++i) {\n    fscanf(fp, \"%f \", &tmp);\n    checks->at(i)=tmp;\n  }\n}\n\nfloat compute_recall(int** gnds, int** indices,int nq,int nn,int* nums)\n{\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0;j<nums[i];++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (indices[i][j]==gnds[i][k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(int** gnds, int** indices,int nq,int nn,int* nums)\n{\n\tfloat avg = 0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tint j=0;\n\t\t//for(int j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(int k=0;k<nums[i];k++)\n\t\t\t{\n\t\t\t\tif(gnds[i][j]==indices[i][k])\n\t\t\t\t{\n\t\t\t\t\trate +=1.0/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(int** gnds, int** indices,int nq,int nn,int* nums)\n{\n\tfloat avg = 0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(int j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(int k=0;k<nums[i];k++)\n\t\t\t{\n\t\t\t\tif(gnds[i][j]==indices[i][k])\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\n\nfloat compute_relative_distance_error(int** gnds,DistData** points,DistData** query, float** distances,int nq,int nn,int dim,int* nums)\n{\n\tfloat count = 0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\t\tif(nums[i]!=0)\n\t\t{\n\t\t\tfor (size_t j=0;j<nums[i];++j)\n\t\t\t{\n\t\t\t\tfloat min_distance= points[gnds[i][j]]-> distanceTo(query[i]);\n\t\t\t\tfloat test_distance=distances[i][j];\n\t\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\t\tif(d >4)\n\t\t\t\t\tsum +=4;\n\t\t\t\telse\n\t\t\t\t\tsum +=d;\n\t\t\t}\n\t\t\tsum = sum /nums[i];\n\t\t\tcount += sum ;\n\t\t}\n\n\t}\n\treturn count/ nq;\n}\n\nfloat compute_mean_average_precision (int** gnds,  int** indices,int nq,int nn,int* nums)\n{\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\t\tint re_n = 0;\n\t\tint count = 0;\n\t\tfor(int gs_n=0; gs_n < nums[i]; gs_n++)\n\t\t{\n\t\t\tif(gnds[i][gs_n]==indices[i][re_n])\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t\trate += 1.0*(count)/(gs_n+1);\n\t\t\t\tre_n ++;\n\t\t\t}\n\t\t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (int** gnds,  int** indices,int nq,int nn,int* nums) \n{\n\tfloat sum = 0;\n\tfor (int i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\t\tint re_n = 0;\n\t\tfor(int gs_n=0; gs_n < nums[i]; gs_n++)\n\t\t{\n\t\t\tif(gnds[i][gs_n]==indices[i][re_n])\n\t\t\t{\n\t\t\t\trate += 1.0/log2(re_n+2);\n\t\t\t\tre_n ++;\n\t\t\t}\n\t\t}\n        sum += rate;\n    }\n    return sum / nq;\n}\n\n#endif\n\n"
  },
  {
    "path": "algorithms/RCT/src/indexer.cpp",
    "content": "#include \"data_util.h\"\n#include \"rct.h\"\n#include <stdlib.h>\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <time.h>\n#include <sys/time.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"dataset_filepath\",            required_argument, 0, 's'},\n\t    {\"indices_filepath\",            required_argument, 0, 'i'},\n\t    {\"maxParents\",                  required_argument, 0, 'p'},\n\t    {\"scaleFactor\",                 required_argument, 0, 'f'},\n\t\t{\"sampleRate\",                  required_argument, 0, 'r'},\n\t  };\n\t  int index;\n\t  int iarg = 0;\n\t  opterr = 1;    //getopt error message (off: 0)\n\t  int n;   //data size\n\t  int dim;  //dimension\n\t  int maxParents; //max parent size\n\t  float scaleFactor; \n\t  int r; //for show\n\n\t  char dataset_filepath[100] = \"\";\n      char indices_filepath[100] = \"\";\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"s:i:p:f:r:h\",\n\t                       longopts, &index);\n\n\t    switch (iarg) {\n\t      case 's':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_filepath, optarg);\n\t        }\n\t        break;\n\t\t  case 'i':\n\t        if (optarg) {\n\t        \tstrcpy(indices_filepath, optarg);\n\t        }\n\t        break;\n\t\t  case 'p':\n\t    \t  if (optarg) {\n\t    \t  maxParents = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'f':\n\t    \t  if (optarg) {\n\t    \t  scaleFactor = atof(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'r':\n\t    \t  if (optarg) {\n\t    \t  r = atof(optarg);\n\t    \t  }\n\t    \t  break;\n\t      }\n\t  }\n\t  //read data points\n\t  DistData** points = ReadPoints(dataset_filepath, &n, &dim);\n\t  //build rct\n\t  timeval start;\n      gettimeofday(&start, NULL);\n\t  \n\t  RCT* rct = new RCT();\n\t  rct->setVerbosity(2);\n\t  const float sampleRate_ = pow(n, 1.0 / r);\n\t  rct->setSampleRate(sampleRate_);\n\t  rct->build(points, n, scaleFactor, maxParents);\n\n      timeval end;\n      gettimeofday(&end, NULL);\n      float build_time = diff_timeval(end, start);\n\t  int levels = rct->getNumLevels();\n\n\t  int return_size = rct->saveToFile(indices_filepath);\n\n\t  cout<<build_time << \"(s) #levels:\"<<levels<<\" #sample_rate:\"<<r << \" #maxParent:\"<<maxParents<<\" #scale:\"<< scaleFactor <<endl;\n\n}\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/RCT/src/random.cpp",
    "content": "#include \"random.h\"\r\n\r\nint\t\tRandom::p\t\t= 0;\r\nbool            Random::init\t= false;\r\nunsigned long\tRandom::state[Random::n];\r\n\r\nRandom::Random() {\r\n    if (!init) {\r\n        seed(5489UL);\r\n    }\r\n    init = true;\r\n}\r\n\r\nRandom::Random(const unsigned long& s) {\r\n   seed(s);\r\n   init = true;\r\n}\r\n\r\nRandom::Random(const unsigned long* array, const unsigned long& size) {\r\n    seed(array, size);\r\n    init = true;\r\n}\r\n\r\ndouble Random::operator()() {\r\n    return integer() * (1.0 / 4294967295.0); \r\n}\r\n\r\nunsigned long Random::integer() {\r\n    if (p == n) {\r\n        gen_state();\r\n    }\r\n    unsigned long x = state[p++];\r\n    x ^= (x >> 11);\r\n    x ^= (x << 7) & 0x9D2C5680UL;\r\n    x ^= (x << 15) & 0xEFC60000UL;\r\n    return x ^ (x >> 18);\r\n}\r\n\r\nvoid Random::gen_state() {\r\n    for (int i = 0; i < (n - m); ++i)\r\n        state[i] = state[i + m] ^ twiddle(state[i], state[i + 1]);\r\n    for (int i = n - m; i < (n - 1); ++i)\r\n        state[i] = state[i + m - n] ^ twiddle(state[i], state[i + 1]);\r\n    state[n - 1] = state[m - 1] ^ twiddle(state[n - 1], state[0]);\r\n    p = 0;\r\n}\r\n\r\nRandom& Random::seed(const unsigned long& s) {\r\n    state[0] = s & 0xFFFFFFFFUL;\r\n    for (int i = 1; i < n; ++i) {\r\n        state[i] = 1812433253UL * (state[i - 1] ^ (state[i - 1] >> 30)) + i;\r\n        state[i] &= 0xFFFFFFFFUL;\r\n    }\r\n    p = n;\r\n    return *this;\r\n}\r\n\r\nRandom& Random::seed(const unsigned long* array, const unsigned long& size) {\r\n    seed(19650218UL);\r\n    int i = 1, j = 0;\r\n    for (int k = ((n > size) ? n : size); k; --k) {\r\n        state[i] = (state[i] ^ ((state[i - 1] ^ (state[i - 1] >> 30)) * 1664525UL))\r\n                + array[j] + j;\r\n        state[i] &= 0xFFFFFFFFUL;\r\n        ++j;\r\n        j %= size;\r\n        if ((++i) == n) {\r\n            state[0] = state[n - 1];\r\n            i = 1;\r\n        }\r\n    }\r\n    for (int k = n - 1; k; --k) {\r\n        state[i] = (state[i] ^ ((state[i - 1] ^ (state[i - 1] >> 30)) * 1566083941UL)) - i;\r\n        state[i] &= 0xFFFFFFFFUL;\r\n        if ((++i) == n) {\r\n            state[0] = state[n - 1];\r\n            i = 1;\r\n        }\r\n    }\r\n    state[0] = 0x80000000UL;\r\n    p = n;\r\n    return *this;\r\n}\r\n"
  },
  {
    "path": "algorithms/RCT/src/random.h",
    "content": "#ifndef __MTRAND_H\n#define __MTRAND_H\n\nclass Random {\n\nprivate:\n        //! The size of the state vector.\n        static const int n = 624;\n\n        //! A magic number.\n        static const int m = 397;\n\n        //! The generator's state vector.\n        static unsigned long state[n];\n\n        //! The position in the state vector.\n        static int p;\n\n        //! Was the generator intialized?\n        static bool init;\n\n        //! Bit twiddling used by the generator.\n        inline unsigned long twiddle(const unsigned long& u,\n                const unsigned long& v) const {\n                return (((u & 0x80000000UL) | (v & 0x7FFFFFFFUL)) >> 1)\n                                ^ ((v & 1UL) ? 0x9908B0DFUL : 0x0UL);\n        }\n\n        //! Generate the next state vector.\n        void gen_state();\n\nprotected:\n        //! Hide the copy constructor.\n        Random(const Random&) {}\n\n        //! Hide the assignment operator.\n        Random& operator=(const Random&) {}\n\npublic:\n        //! Default constructor.\n        Random();\n\n        //! Seed the generator.\n        Random(const unsigned long& s);\n\n        //! Seed with an array of values.\n        Random(const unsigned long* array, const unsigned long& size);\n\n        //! Seed the generator from an integer.\n        Random& seed(const unsigned long& s);\n\n        //! Seed the generator from an array of integers.\n        Random& seed(const unsigned long* array, const unsigned long& size);\n\n        //! Make the generator a functor.\n        double operator()();\n\n        //! The destructor.\n        virtual ~Random() {}\n\n        //! Generate a 32-bit random integer.\n        unsigned long integer();\n\n} /* .. */;\n\n#endif /* __MTRAND_H */\n"
  },
  {
    "path": "algorithms/RCT/src/rct.cpp",
    "content": "#include \"rct.h\"\n\n/*!\n * Sets the sample rate.\n *\n * @note Must be called before construction.\n *\n * @param sampleRate The desired sample rate.\n */\nvoid RCT::setSampleRate(const float& sampleRate) {\n    (*this).sampleRate = sampleRate;\n}\n\n/*!\n * Constructor using seed for random number generator initialization.\n */\nRCT::RCT(const unsigned long& seed) {\n    data = NULL;\n    size = 0;\n    maxParents = 1;\n    maxDegree = 0;\n    avgDegree = 0.0F;\n    internToExternMapping = NULL;\n    levelSetSizeList = NULL;\n    levels = 0;\n    numNodes = 0;\n    parentIndexLLList = NULL;\n    parentLSizeLList = NULL;\n    childIndexLLList = NULL;\n    childLSizeLList = NULL;\n    query = NULL;\n    distFromQueryList = NULL;\n    storedDistIndexList = NULL;\n    numStoredDists = 0;\n    numDistComps = 0UL;\n    levelQuotaList = NULL;\n    coverageParameter = 1.0f;\n    queryResultIndexList = NULL;\n    queryResultDistList = NULL;\n    visitedNodeIndexList = NULL;\n    tempResultIndexList = NULL;\n    tempResultDistList = NULL;\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n    verbosity = 0;\n\t\tcoverageParameter = 1.0f;\n\t\tsampleRate = 2.0f;\n    buildScaleFactor = RCT_UNKNOWN_;\n    rand.seed(seed);\n    (*this).seed = seed;\n}\n\n/*!\n * The destructor releases memory allocated by the RCT prior to its\n * destruction.\n */\nRCT::~RCT() {\n    int i;\n    int lvl;\n    int tempLength = 0;\n    data = NULL;\n    if (internToExternMapping != NULL) {\n        delete [] internToExternMapping;\n        internToExternMapping = NULL;\n    }\n\n    if (parentIndexLLList != NULL) {\n        for (lvl = 0; lvl <= levels; lvl++) {\n            if (parentIndexLLList[lvl] != NULL) {\n                tempLength = levelSetSizeList[lvl];\n\n                for (i = 0; i < tempLength; i++) {\n                    if (parentIndexLLList[lvl][i] != NULL) {\n                        delete [] parentIndexLLList[lvl][i];\n                        parentIndexLLList[lvl][i] = NULL;\n                    }\n                }\n\n                delete [] parentIndexLLList[lvl];\n                parentIndexLLList[lvl] = NULL;\n            }\n        }\n\n        delete [] parentIndexLLList;\n        parentIndexLLList = NULL;\n    }\n\n    if (parentLSizeLList != NULL) {\n        for (lvl = 0; lvl <= levels; lvl++) {\n            if (parentLSizeLList[lvl] != NULL) {\n                delete [] parentLSizeLList[lvl];\n                parentLSizeLList[lvl] = NULL;\n            }\n        }\n\n        delete [] parentLSizeLList;\n        parentLSizeLList = NULL;\n    }\n\n    if (childIndexLLList != NULL) {\n        for (lvl = 0; lvl <= levels; lvl++) {\n            if (childIndexLLList[lvl] != NULL) {\n                tempLength = levelSetSizeList[lvl];\n\n                for (i = 0; i < tempLength; i++) {\n                    if (childIndexLLList[lvl][i] != NULL) {\n                        delete [] childIndexLLList[lvl][i];\n                        childIndexLLList[lvl][i] = NULL;\n                    }\n                }\n\n                delete [] childIndexLLList[lvl];\n                childIndexLLList[lvl] = NULL;\n            }\n        }\n\n        delete [] childIndexLLList;\n        childIndexLLList = NULL;\n    }\n\n    if (childLSizeLList != NULL) {\n        for (lvl = 0; lvl <= levels; lvl++) {\n            if (childLSizeLList[lvl] != NULL) {\n                delete [] childLSizeLList[lvl];\n                childLSizeLList[lvl] = NULL;\n            }\n        }\n\n        delete [] childLSizeLList;\n        childLSizeLList = NULL;\n    }\n\n    if (levelSetSizeList != NULL) {\n        delete [] levelSetSizeList;\n        levelSetSizeList = NULL;\n    }\n\n    query = NULL;\n\n    if (distFromQueryList != NULL) {\n        delete [] distFromQueryList;\n        distFromQueryList = NULL;\n    }\n\n    if (storedDistIndexList != NULL) {\n        delete [] storedDistIndexList;\n        storedDistIndexList = NULL;\n    }\n\n    if (levelQuotaList != NULL) {\n        delete [] levelQuotaList;\n        levelQuotaList = NULL;\n    }\n\n    if (queryResultIndexList != NULL) {\n        delete [] queryResultIndexList;\n        queryResultIndexList = NULL;\n    }\n\n    if (queryResultDistList != NULL) {\n        delete [] queryResultDistList;\n        queryResultDistList = NULL;\n    }\n\n    if (tempResultIndexList != NULL) {\n        delete [] tempResultIndexList;\n        tempResultIndexList = NULL;\n    }\n\n    if (tempResultDistList != NULL) {\n        delete [] tempResultDistList;\n        tempResultDistList = NULL;\n    }\n\n    if (visitedNodeIndexList != NULL) {\n        delete [] visitedNodeIndexList;\n        visitedNodeIndexList = NULL;\n    }\n}\n\n/*!\n * Constructs the RCT from an array of data items. The maximum number of\n * parents per node (default <em>1</em>) and the scale factor used during\n * construction (default <em>1.0</em>) can be supplied as optional arguments.\n *\n * @note If a negative value of <em>scaleFactor</em> is chosen, parents will\n *       be determined using exact nearest-neighbor search. This is quite\n *       expensive, but guaranteed to produce a well-formed RCT.\n *\n * @param inputData An array of data items to build the RCT on.\n * @param numItems The number of item in the data array that should be used.\n * @param scaleFactor The scale factor used during construction.\n * @param nunParents The maximum number of parents allowed per node.\n * @return The number of items in the constructed RCT.\n */\nint RCT::build(DistData** inputData, const int& numItems, const float& scaleFactor, const int& numParents) {\n    int i = 0;\n    int loc = 0;\n    int temp = 0;\n\n    // If the data set is empty, then abort.\n    if ((numItems <= 0) || (inputData == NULL)) {\n        if (verbosity > 0) {\n            if (numItems == 1) {\n                cerr << \"ERROR (from build): data set has only 1 item.\" << endl;\n            } else {\n                cerr << \"ERROR (from build): empty data set.\" << endl;\n            }\n        }\n        return 0;\n    }\n    if (verbosity >= 2) {\n        cout << \"Building RCT from data array...\" << endl;\n    }\n\n    data = inputData;\n\n    // Set up level sizes.\n    setupLevels(numItems, numParents);\n\n    // Reserve RCT storage, and set up tree parameters.\n    // As a result of this operation, the RCT size, number of levels,\n    // etc, are set.    \n    reserveStorage();\n\n    // Randomly assign data items to RCT levels.\n    for (i = 0; i < size; i++) {\n        internToExternMapping[i] = i;\n    }\n    for (i = size - 1; i >= 0; i--) {\n        loc = rand.integer() % (i + 1);\n        temp = internToExternMapping[loc];\n        internToExternMapping[loc] = internToExternMapping[i];\n        internToExternMapping[i] = temp;\n    }\n\n    // Build the RCT structure.\n    numDistComps = 0UL;\n    buildScaleFactor = scaleFactor;\n    doBuild();\n\n    if (verbosity >= 2) {\n        printStats();\n    }\n    \n    return size;\n}\n\n/*!\n * Loads a previously-computed RCT from the specified file. The original data\n * set must also be provided (as well as the number of items in the data set).\n *\n * @note The extension \".rctf\" is automatically appended to the file name.\n *\n * @return If successful, the number of RCT items is returned. Otherwise, zero\n *         is returned.\n */\nint RCT::build(const char* fileName, DistData** inputData, const int& numItems) {\n    int i = 0;\n    int j = 0;\n    int lvl = 0;\n    int loc = 0;\n    int inLevel = 0;\n    int temp = 0;\n    int inSize = 0;\n    int inLevels = 0;\n    int inNumNodes = 0;\n    int inMaxParents = 0;\n    int inMaxDegree = 0;\n    float inAvgDegree = 0.0f;\n    float inCoverageParameter = 0.0f;\n    float inBuildScaleFactor = 0.0f;\n    int numChildren = 0;\n    int* childList = NULL;\n    ifstream inFile;\n    int levelSetSize = 0;\n\n    // If the data set is empty, then abort.\n    if ((fileName == NULL) || (numItems <= 0) || (inputData == NULL)) {\n        if (verbosity > 0) {\n            if (numItems == 1) {\n                cerr << \"ERROR (from build): data set has only 1 item.\" << endl;\n            } else {\n                cerr << \"ERROR (from build): empty data set or filename.\";\n                cerr << endl;\n            }\n\n        }\n        return 0;\n    }\n\n    if (verbosity >= 2) {\n        cout << \"Loading RCT from file '\" << fileName << \".rctf' ...\" << endl;\n    }\n    data = inputData;\n\n    // Open the file containing the RCT. If we fail to open the file, abort.\n    ostringstream fullFileName;\n    fullFileName << fileName << \".rctf\";\n    inFile.open(fullFileName.str().c_str(), ios::in);\n    if (!inFile.is_open()) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from build): file '\" << fullFileName.str();\n            cerr << \"' could not be opened.\" << endl;\n        }\n        return 0;\n    }\n\n    // Skip two comment lines.\n    string buffer;\n    getline(inFile, buffer);\n    assert ((buffer[0] == '%') && (buffer[1] == '%'));\n    getline(inFile, buffer);\n    assert ((buffer[0] == '%') && (buffer[1] == '%'));\n\n    // Read in basic parameters.\n    inFile >> inSize >> inLevels >> inNumNodes >> inMaxParents >> inMaxDegree;\n    inFile >> inAvgDegree >> inCoverageParameter >> inBuildScaleFactor;\n    inFile >> seed;\n\n    // Are these parameter values what we expected? If not, then abort!\n    if (inSize != numItems) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from build): unexpected RCT parameters in file\";\n            cerr << \" '\" << fullFileName.str() << \"'.\" << endl;\n        }\n        inFile.close();\n        return 0;\n    }\n    getline(inFile, buffer);\n\n    // Assign properties.\n    size = inSize;\n    levels = inLevels;\n    numNodes = inNumNodes;\n    maxParents = inMaxParents;\n    maxDegree = inMaxDegree;\n    avgDegree = inAvgDegree;\n    coverageParameter = inCoverageParameter;\n    buildScaleFactor = inBuildScaleFactor;\n\n    // Skip another comment line.\n    getline(inFile, buffer);\n    assert ((buffer[0] == '%') && (buffer[1] == '%'));\n\n    // Fetch the level set sizes.\n    levelSetSizeList = new int [levels + 1];\n    levelQuotaList = new int [levels + 1];\n    for (lvl = 0; lvl <= levels; lvl++) {\n        inFile >> levelSetSizeList[lvl];\n        levelQuotaList[lvl] = 0;\n    }\n    getline(inFile, buffer);\n\n    // Reserve RCT storage. After this operation, the expected RCT size,\n    // number of levels, etc, are set.\n    reserveStorage();\n\n    // Skip yet another comment line.\n    getline(inFile, buffer);\n    assert ((buffer[0] == '%') && (buffer[1] == '%'));\n\n    // Read in information for each node: level set, internal index,\n    // external index, number of children, and indices of children.\n    // Build the list of children, if any exist.\n    for (lvl = levels; lvl >= 0; lvl--) {\n        levelSetSize = levelSetSizeList[lvl];\n        for (i = 0; i < levelSetSize; i++) {\n            inFile >> inLevel >> loc;\n            if ((loc != i) || (lvl != inLevel)) {\n                if (verbosity > 0) {\n                    cerr << \"ERROR (from build): invalid entry in file '\";\n                    cerr << fileName << \".rctf'.\" << endl;\n                }\n                inFile.close();\n                return 0;\n            }\n            inFile >> internToExternMapping[i] >> numChildren;\n            if (numChildren > 0) {\n                childList = new int [numChildren];\n            } else {\n                childList = NULL;\n            }\n            childIndexLLList[lvl][i] = childList;\n            childLSizeLList[lvl][i] = numChildren;\n            for (j = 0; j < numChildren; j++) {\n                inFile >> childList[j];\n            }\n            getline(inFile, buffer);\n        }\n    }\n    return size;\n}\n\n/*!\n * Perform an exact range query for the specified item. The upper limit on the\n * query-to-item distance must be supplied. The search is relative to the\n * random level <em>sampleLevel</em> (default is <em>0</em>, i.e. the complete\n * data set).\n * \n * @param query The query location.\n * @param limit The range limit.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n * \n * @return The number of elements actually found.\n *\n * @note The query result can be obtained via calls to the following methods:\n *       <code>getResultAcc</code>, <code>getResultDists</code>,\n *       <code>getResultDistComps</code>, <code>getResultIndices</code> and\n *       <code>getResultNumFound</code>. The result items are sorted in\n *       increasing order of their distances to the query.\n */\nint RCT::findAllInRange(DistData* query, const float& limit, const int& sampleLevel) {\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n    numDistComps = 0UL;\n    if ((size <= 0)\n            || (query == NULL)\n            || (limit < 0.0F)\n            || (sampleLevel < 0)\n            || ((sampleLevel >= levels) && (size > 1))) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from findAllInRange): invalid argument(s).\" << endl;\n        }\n        return 0;\n    }\n    setNewQuery(query);\n    return doFindAllInRange(limit, sampleLevel);\n}\n\n/*!\n * Perform an approximate range query for the specified item. The upper limit on\n * the query-to-item distance must be supplied. The search is relative to the\n * random level <em>sampleLevel</em> (default is <em>0</em>, i.e. the complete\n * data set). The method also makes use of a parameter (<code>scaleFactor\n * </code>) that influences the trade-off between time and accuracy.\n *\n * @param scaleFactor Additional search efforts.\n * @param query The query location.\n * @param limit The range limit.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n *\n * @return The number of elements actually found.\n *\n * @note The query result can be obtained via calls to the following methods:\n *       <code>getResultAcc</code>, <code>getResultDists</code>,\n *       <code>getResultDistComps</code>, <code>getResultIndices</code> and\n *       <code>getResultNumFound</code>. The result items are sorted in\n *       increasing order of their distances to the query.\n */\nint RCT::findMostInRange(DistData* query, const float& limit, const float& scaleFactor, const int& sampleLevel) {\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n    numDistComps = 0UL;\n    if ((size <= 0)\n            || (query == NULL)\n            || (limit < 0.0F)\n            || (sampleLevel < 0)\n            || ((sampleLevel >= levels) && (size > 1))\n            || (scaleFactor <= 0.0F)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from findMostInRange): invalid argument(s).\" << endl;\n        }\n        return 0;\n    }\n    setNewQuery(query);\n    return doFindMostInRange(limit, sampleLevel, scaleFactor);\n}\n\n/*!\n * Perform an approximate nearest-neighbor query for the specified item. The \n * number of desired nearest neighbors <code>howMany</code> (default <em>1</em>)\n * can be specified. The search is relative to the random level \n * <em>sampleLevel</em> (default is <em>0</em>, i.e. the complete\n * data set). The method also makes use of a parameter (<code>scaleFactor\n * </code>) that influences the trade-off between time and accuracy.\n *\n * @param scaleFactor Additional search efforts.\n * @param query The query location.\n * @param howMany The desired number of neighbors.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n *\n * @return The number of elements actually found.\n *\n * @note The query result can be obtained via calls to the following methods:\n *       <code>getResultAcc</code>, <code>getResultDists</code>,\n *       <code>getResultDistComps</code>, <code>getResultIndices</code> and\n *       <code>getResultNumFound</code>. The result items are sorted in\n *       increasing order of their distances to the query.\n */\nint RCT::findNear(DistData* query, const int& howMany, const float& scaleFactor, const int& sampleLevel) {\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n    numDistComps = 0UL;\n    if ((size <= 0)\n            || (query == NULL)\n            || (howMany <= 0)\n            || (sampleLevel < 0)\n            || ((sampleLevel >= levels) && (size > 1))\n            || (scaleFactor <= 0.0F)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from findNear): invalid argument(s).\" << endl;\n        }\n        return 0;\n    }\n    setNewQuery(query);\n    return doFindNear(howMany, sampleLevel, scaleFactor);\n}\n\n/*!\n * Perform an exact nearest-neighbor query for the specified item. The\n * number of desired nearest neighbors <code>howMany</code> (default <em>1</em>)\n * can be specified. The search is relative to the random level\n * <em>sampleLevel</em> (default is <em>0</em>, i.e. the complete\n * data set).\n *\n * @param query The query location.\n * @param howMany The desired number of neighbors.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n *\n * @return The number of elements actually found.\n *\n * @note The query result can be obtained via calls to the following methods:\n *       <code>getResultAcc</code>, <code>getResultDists</code>,\n *       <code>getResultDistComps</code>, <code>getResultIndices</code> and\n *       <code>getResultNumFound</code>. The result items are sorted in\n *       increasing order of their distances to the query.\n */\nint RCT::findNearest(DistData* query, const int& howMany, const int& sampleLevel) {\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n    numDistComps = 0UL;\n    if ((size <= 0)\n            || (query == NULL)\n            || (howMany <= 0)\n            || (sampleLevel < 0)\n            || ((sampleLevel >= levels) && (size > 1))) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from findNearest): invalid argument(s).\" << endl;\n        }\n        return 0;\n    }\n    setNewQuery(query);\n    return doFindNearest(howMany, sampleLevel);\n}\n\n/*!\n * Retrieve the average degree of a node in the RCT. This value is roughly\n * equal to <em>sampleRate</em>.\n *\n * @return The average degree of a node in the RCT.\n */\nfloat RCT::getAvgDegree() const {\n    return avgDegree;\n}\n\n/*!\n * Retrieve the scale factor used during the consturction of the RCT.\n *\n * @return The scale factor used during RCT construction.\n */\nfloat RCT::getBuildScaleFactor() const {\n    return buildScaleFactor;\n}\n\n/*!\n * Retrieve the coverage parameter set for the RCT.\n *\n * @return The coverage parameter of the RCT.\n */\nfloat RCT::getCoverageParameter() const {\n    return coverageParameter;\n}\n\n/*!\n * Retrieve a pointer to the data array used to assemble the\n * RCT.\n *\n * @note Since the random leveling process only permutes the\n *       data items internally, be aware that only the item\n *       indices retrieved by the <code>getResultIndices</code>\n *       function refer to external (original) indices. All\n *       internally used indices reffer to the permuted\n *       ordering of data items.\n * \n * @return A pointer to the data items in the RCT.\n */\nDistData** RCT::getData() {\n    return data;\n}\n\n/*!\n * Fills the supplied list with the mapping from external item indices to\n * internal RCT indices.\n *\n * @param result An array to store the mapping in.\n * @param capacity The capacity of the target array.\n *\n * @return If successful, the number of RCT items is returned. Otherwise, zero\n *         is returned.\n */\nint RCT::getExternToInternMapping(int* result, int capacity) const {\n    int i;\n    if ((result == NULL) || (capacity < size)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getExternToInternMapping): result list \";\n            cerr << \"capacity is too small.\" << endl;\n        }\n        return 0;\n    }\n    for (i = 0; i < size; i++) {\n        result[internToExternMapping[i]] = i;\n    }\n    return size;\n}\n\n/*!\n * Fills the supplied list with the mapping from internal RCT item indices to\n * external indices.\n *\n * @param result An array to store the mapping in.\n * @param capacity The capacity of the target array.\n *\n * @return If successful, the number of RCT items is returned. Otherwise, zero\n *         is returned.\n */\nint RCT::getInternToExternMapping(int* result, int capacity) const {\n    int i;\n    if ((result == NULL) || (capacity < size)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getInternToExternMapping): result list \";\n            cerr << \"capacity is too small.\" << endl;\n        }\n        return 0;\n    }\n    for (i = 0; i < size; i++) {\n        result[i] = internToExternMapping[i];\n    }\n    return size;\n}\n\n/*!\n * Fills the supplied list with the RCT level set sizes, from smallest to \n * largest. The result does not include the <em>sample</em> consisting solely of\n * the virtual RCT root item.\n * \n * @param result An array to hold the level set sizes.\n * @param capacity The capacity of the target array.\n * \n * @return If successful, the number of RCT levels is returned (excluding that\n *         of the root). If unsuccessful, zero is returned.\n */\nint RCT::getLevelSetSizes(int* result, int capacity) const {\n    int lvl;\n    if ((result == NULL) || (capacity < levels)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getLevelSetSizes): result list capacity is \";\n            cerr << \"too small.\" << endl;\n        }\n        return 0;\n    }\n    for (lvl = 0; lvl < levels; lvl++) {\n        result[lvl] = levelSetSizeList[lvl];\n    }\n    return levels;\n}\n\n/*!\n * Retrieve the maximum node degree occurring in the RCT.\n *\n * @return The degree of the node with the largest number of children.\n */\nint RCT::getMaxDegree() const {\n    return maxDegree;\n}\n\n/*!\n * Fills the supplied list with the mapping from external item indices to\n * internal RCT level sets.\n * \n * @param result An array to hold the item heights.\n * @param capacity The capacity of the target array.\n * \n * @return If successful, the number of RCT items is returned. If unsuccessful,\n *         zero is returned.\n */\nint RCT::getMaxLevelAssignment(int* result, int capacity) const {\n    int i;\n    int lvl;\n    if ((result == NULL) || (capacity < size)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getMaxLevelAssignment): result list capacity \";\n            cerr << \"is too small.\" << endl;\n        }\n        return 0;\n    }\n    for (lvl = 0; lvl < levels; lvl++) {\n        for (i = levelSetSizeList[lvl + 1]; i < levelSetSizeList[lvl]; i++) {\n            result[internToExternMapping[i]] = lvl;\n        }\n    }\n    result[internToExternMapping[0]] = levels;\n    return size;\n}\n\n/*!\n * Retrieve the maximum number of parents a node in the RCT is allowed to\n * have.\n *\n * @return The maxmimum number of allowed parents per node.\n */\nint RCT::getMaxParents() const {\n    return maxParents;\n}\n\n/*!\n * Retrieve the number of data items stored in the RCT.\n *\n * @return The number of data items the RCT is built on.\n */\nint RCT::getNumItems() const {\n    return size;\n}\n\n/*!\n * Retrieve the number of levels in the RCT.\n *\n * @note Since the RCT is built on level sets whose membership in items\n *       is purely randomized one can observe variance in height when\n *       rebuilding an RCT on the same data with a different random leveling\n *       (using different seeds for example).\n */\nint RCT::getNumLevels() const {\n    return levels;\n}\n\n/*!\n * Retrieve the number of nodes in the RCT.\n *\n * @note Although the model of the RCT relies on using copies of nodes\n *       in different level sets, the actual implementation does not do this.\n *       The number of nodes should therefore be seen as a symbolic property\n *       of the random leveling and not as a contributor to the search\n *       or construction time complexity.\n *\n * @return The number of nodes in the RCt.\n */\nint RCT::getNumNodes() const {\n    return numNodes;\n}\n\n/*!\n * Computes the recall accuracy of the most recent query result. A list of the\n * exact distances must be provided, sorted from smallest to largest. The\n * number of exact distances provided determines the size of the neighbourhood\n * within which the accuracy is assessed.\n *\n * @note The list must contain at least as many entries as the number of items\n *       found in the query result.\n *\n * @return If unsuccessful, a negative value is returned.\n */\nfloat RCT::getResultAcc(float* exactDistList, int howMany) const {\n    int i;\n    int loc = 0;\n    if ((exactDistList == NULL) || (howMany < queryResultSize)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getResultAcc): exact distance list is too \";\n            cerr << \"small.\" << endl;\n        }\n        return RCT_UNKNOWN_;\n    }\n    for (i = 0; i < howMany; i++) {\n        if ((loc < queryResultSize)\n                && (queryResultDistList[loc] <= exactDistList[i])) {\n            loc++;\n        }\n    }\n    return ((float)loc) / howMany;\n}\n\n/*!\n * Fills the supplied list with the query-to-neighbour distances found in the\n * most recent RCT query.\n * \n * @param result An array to store the distance values.\n * @param capacity The capacity of the target array.\n * \n * @return If successful, the number of items found is returned. Otherwise,\n *         zero is returned.\n */\nint RCT::getResultDists(float* result, int capacity) const {\n    int i;\n    if ((result == NULL) || (capacity < queryResultSize)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getResultDists): result list capacity is too \";\n            cerr << \"small.\" << endl;\n        }\n        return 0;\n    }\n    for (i = 0; i < queryResultSize; i++) {\n        result[i] = queryResultDistList[i];\n    }\n    return queryResultSize;\n}\n\n/*!\n * Retrieve the number of distance comparisons performed during the most\n * recent operation.\n *\n * @return The number of distance comparisons.\n */\nunsigned long RCT::getResultDistComps() const {\n    return numDistComps;\n}\n\n/*!\n * Fills the supplied list with the (external) indices of the items found in\n * the most recent RCT query.\n *\n * @param result An array to store the item indices.\n * @param capacity The capacity of the target array.\n *\n * @return If successful, the number of items found is returned. Otherwise,\n *         zero is returned.\n */\nint RCT::getResultIndices(int* result, int capacity) const {\n    int i;\n    if ((result == NULL) || (capacity < queryResultSize)) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from getResultIndices): result list capacity is \";\n            cerr << \"too small.\" << endl;\n        }\n        return 0;\n    }\n    for (i = 0; i < queryResultSize; i++) {\n        result[i] = internToExternMapping[queryResultIndexList[i]];\n    }\n    return queryResultSize;\n}\n\n/*!\n * Returns the number of items found in the most recent query.\n *\n * @return Number of results found in the most recent query.\n */\nint RCT::getResultNumFound() const {\n    return queryResultSize;\n}\n\n/*!\n * Returns the sample size used in the most recent query.\n *\n * @return Sample size used in the most recent query.\n */\nint RCT::getResultSampleSize() const {\n    return queryResultSampleSize;\n}\n\n/*!\n * Retrieve the seed value used to initialize the random number generator.\n */\nunsigned long RCT::getRNGSeed() const {\n    return seed;\n}\n\n/*!\n * Resets the current query object to <em>NULL</em>. This has the effect of\n * clearing any saved distances - subsequent <code>findNear</code> and\n * <code>findNearest</code> operations would be forced to compute\n * all needed distances from scratch.\n */\nvoid RCT::resetQuery() {\n    setNewQuery(NULL);\n}\n\n/*!\n * Save the RCT to the specified file. The extension \".rctf\" is automatically \n * appended to the file name.\n *\n * @param fileName The file name to save the RCT under.\n * @return If successful, the number of RCT items is returned. Otherwise,\n *         zero is returned.\n */\nint RCT::saveToFile(const char* fileName) const {\n    int i;\n    int j;\n    int lvl;\n    int numChildren = 0;\n    int* childList = NULL;\n    ofstream outFile;\n    int levelSetSize = 0;\n\n    // If the RCT has not yet been built, abort.\n    if (size <= 0) {\n        return 0;\n    }\n\n    // Open the file for writing.\n    // If this fails, then abort.\n    if (fileName == NULL) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from saveToFile): output file name is NULL.\" << endl;\n        }\n        return 0;\n    }\n\n    // Attach extension '.rctf'.\n    ostringstream fullFileName;\n    fullFileName << fileName << \".rctf\";\n    \n    // Try to open the output file.\n    outFile.open(fullFileName.str().c_str(), ios::out);\n    if (!outFile.is_open()) {\n        if (verbosity > 0) {\n            cerr << \"ERROR (from saveToFile): file '\" << fullFileName.str();\n            cerr << \"' could not be opened.\" << endl;\n        }\n        return 0;\n    }\n\n    // Begin writing to the output file. First, write a comment identifying the\n    // RCT version and the output file name.\n    outFile << \"%% RCT \" << RCT_VERSION_ <<  ' ' << fileName << endl;\n    \n    // Write the main RCT parameters.\n    outFile << \"%% size levels numNodes maxParents maxDegree avgDegree \";\n    outFile << \"coverageParameter buildScaleFactor seed\" << endl;\n    outFile << size << ' ' << levels << ' ' << numNodes << ' ';\n    outFile << maxParents << ' ' << maxDegree << ' ' << avgDegree;\n    outFile << ' ' << coverageParameter << ' ' << buildScaleFactor;\n    outFile << ' ' << seed << endl;\n\n    // Write the level sizes.\n    outFile << \"%% level set sizes:\" << endl;\n    for (lvl = 0; lvl < levels; lvl++) {\n        outFile << levelSetSizeList[lvl] << ' ';\n    }\n    outFile << 1 << endl;\n\n    // For each item at each level, write out:\n    //   its level,\n    //   its index,\n    //   the index of the item in the original input list,\n    //   the number of children of the item,\n    //   and a list of the indices of the children.\n    outFile << \"%% level nodeID origItemID numChildren c_0 c_1 ...\" << endl;\n    for (lvl = levels; lvl >= 0; lvl--) {\n        levelSetSize = levelSetSizeList[lvl];\n        for (i = 0; i < levelSetSize; i++) {\n            numChildren = childLSizeLList[lvl][i];\n            childList = childIndexLLList[lvl][i];\n            outFile << lvl << ' ' << i << ' ' << internToExternMapping[i];\n            outFile << ' ' << numChildren;\n            for (j = 0; j < numChildren; j++) {\n                outFile << ' ' << childList[j];\n            }\n            outFile << endl;\n        }\n    }\n    outFile.close();\n    return size;\n}\n\n/*!\n * Sets the coverage parameter to a specific value.\n * \n * @param coverageParameter The desired value of the coverage parameter.\n * @return If the coverage parameter was changes <em>true</em> is returned.\n *         Otherwise, <em>false</em> is returned.\n */\nbool RCT::setCoverageParameter(const float& coverageParameter) {\n    if ((*this).coverageParameter == coverageParameter) {\n        return false;\n    }\n    (*this).coverageParameter = coverageParameter;\n    return true;\n}\n\n/*!\n * Sets the verbosity level for messages. Verbosity of <em>zero</em> or less:\n * no messages produced. Verbosity of <em>1</em>: error messages only.\n * Verbosity of <em>2</em>: error and progress messages only. Verbosity of\n * <em>3</em> or more: error, progress, and debug messages reported.\n */\nvoid RCT::setVerbosity(const int& verbosity) {\n    if (verbosity <= 0) {\n        (*this).avgDegree = 0;\n    } else if (verbosity >= 3) {\n        (*this).verbosity = 3;\n    } else {\n        (*this).verbosity = verbosity;\n    }\n}\n\n/*!\n * Returns the distance from the current query object to the specified data\n * object. If the distance has already been computed and stored, the stored\n * distance is returned. Otherwise, the distance is computed and stored\n * before returning it.\n *\n * @param itemIndex The internal index of a data item.\n * @return The distance from the current query to that item.\n */\nfloat RCT::computeDistFromQuery(int itemIndex) {\n    if (distFromQueryList[itemIndex] == RCT_UNKNOWN_) {\n        distFromQueryList[itemIndex]\n                = query->distanceTo(data[internToExternMapping[itemIndex]]);\n        storedDistIndexList[numStoredDists] = itemIndex;\n        numStoredDists++;\n        numDistComps++;\n    }\n    return distFromQueryList[itemIndex];\n}\n\n/*!\n * Builds an RCT on items in the first locations of the scrambled data array.\n */\nvoid RCT::doBuild() {\n    int i = 0;\n    int j = 0;\n    int lvl = 0;\n    int numLowerItems = 0;\n    int numUpperItems = 0;\n    int parent = 0;\n    int child = 0;\n    int childLSize = 0;\n    int offset = 0;\n    long int totalDegree = 0L;\n\n    // Build the top level of the RCT as a special case.\n    // Treat the first array item as the root.\n    parentLSizeLList[levels][0] = 0;\n    parentIndexLLList[levels][0] = NULL;\n\n    // Explicitly connect all other items as children of the root,\n    //   if they exist.\n    // Don't bother sorting the children according to distance from\n    //   the root.\n    numLowerItems = levelSetSizeList[levels - 1];\n    childLSizeLList[levels][0] = numLowerItems;\n    childIndexLLList[levels][0] = new int [numLowerItems];\n    maxDegree = numLowerItems;\n    totalDegree = (long int)numLowerItems;\n\n    for (i = 0; i < numLowerItems; i++) {\n        childIndexLLList[levels][0][i] = i;\n    }\n\n    if (verbosity >= 2) {\n        printf(\"RCT root level constructed.\\n\");\n        fflush(NULL);\n    }\n\n    for (lvl = levels - 2; lvl >= 0; lvl--) {\n        numUpperItems = levelSetSizeList[lvl + 1];\n        numLowerItems = levelSetSizeList[lvl];\n\n        // We now want to connect the bottom level of the\n        //   current RCT (level lvl+1) to the items at\n        //   this level (level lvl).\n\n        // For each item at this level, generate a set of\n        //   parents from the bottom level of the current RCT.\n        // Also, temporarily store (in \"childLSizeLList\") the number of times\n        //   each node is requested as a parent.\n        for (child = 0; child < numLowerItems; child++) {\n            if ((child % 5000 == 4999) && (verbosity >= 2)) {\n                printf(\"Inserting item %d (out of %d) at level %d...\\n\",\n                        child + 1, size, lvl);\n                fflush(NULL);\n            }\n\n            // Find some parents for the current child.\n            // If only one parent is requested and the child has a copy\n            //   at the level above, then just choose it directly.\n            // Otherwise, do a search.\n\n            if ((child < numUpperItems) && (maxParents == 1)) {\n                queryResultSize = 1;\n                queryResultIndexList[0] = child;\n            } else {\n                setNewQuery(data[internToExternMapping[child]]);\n\n                if (buildScaleFactor <= 0.0F) {\n                    doFindNearest(maxParents, lvl + 1);\n                } else {\n                    doFindNear(maxParents, lvl + 1, buildScaleFactor);\n                }\n            }\n\n            // Connect links from child to parents.\n            // If a copy of the child also exists at the upper level,\n            //   then make sure that it is listed as the first parent.\n\n            parentLSizeLList[lvl][child] = queryResultSize;\n            parentIndexLLList[lvl][child] = new int [maxParents];\n\n            if ((child < numUpperItems) && (queryResultIndexList[0] != child)) {\n                // The first query result should have been a copy of the\n                //   child, but wasn't.\n                // Repair this situation by explicitly placing a copy of the child\n                //   at the head of the list, and shifting the remaining query\n                //   result elements to accommodate the child copy.\n\n                offset = 1;\n                parentIndexLLList[lvl][child][0] = child;\n                childLSizeLList[lvl + 1][child]++;\n            } else {\n                // Either the query result contains a copy of the child at its\n                //   head, or the child isn't supposed to appear in the\n                //   query result anyway.\n\n                offset = 0;\n                parentIndexLLList[lvl][child][0] = queryResultIndexList[0];\n                childLSizeLList[lvl + 1][queryResultIndexList[0]]++;\n            }\n\n            for (i = 1; i < queryResultSize; i++) {\n                // Apply an offset shift only until a copy of the child is found\n                //   (one may not necessarily be found).\n                // This is to avoid picking up this copy more than once.\n\n                if (queryResultIndexList[i] == child) {\n                    offset = 0;\n                } else {\n                    parentIndexLLList[lvl][child][i]\n                            = queryResultIndexList[i - offset];\n                    childLSizeLList[lvl + 1][queryResultIndexList[i - offset]]++;\n                }\n            }\n        }\n\n        // For each parent, reserve storage for its child lists.\n\n        for (parent = 0; parent < numUpperItems; parent++) {\n            childLSize = childLSizeLList[lvl + 1][parent];\n\n            if (childLSize > 0) {\n                childIndexLLList[lvl + 1][parent]\n                        = new int [childLSizeLList[lvl + 1][parent]];\n                childLSizeLList[lvl + 1][parent] = 0;\n\n                totalDegree += (long int)childLSize;\n\n                if (childLSize > maxDegree) {\n                    maxDegree = childLSize;\n                }\n            }\n        }\n\n        // Construct child lists for each of the parents,\n        //   by reversing the child-to-parent edges.\n        // Since the child-to-parent edges are no longer needed,\n        //   delete them.\n\n        for (child = 0; child < numLowerItems; child++) {\n            for (i = parentLSizeLList[lvl][child] - 1; i >= 0; i--) {\n                parent = parentIndexLLList[lvl][child][i];\n                j = childLSizeLList[lvl + 1][parent];\n                childIndexLLList[lvl + 1][parent][j] = child;\n                childLSizeLList[lvl + 1][parent]++;\n            }\n\n            if (parentLSizeLList[lvl][child] > 0) {\n                delete [] parentIndexLLList[lvl][child];\n                parentIndexLLList[lvl][child] = NULL;\n                parentLSizeLList[lvl][child] = 0;\n            }\n        }\n\n        // The RCT has grown by one level.\n        if (verbosity >= 2) {\n\t\t\t\t\tcout << \"RCT level \" << lvl << \" constructed.\" << endl;\n        }\n    }\n\n    avgDegree = (float)(((double)totalDegree) / (numNodes - size));\n}\n\n/*!\n * Performs an exact range query from the current query object, with respect to\n * a subset of the items. The subset consists of all items at the indicated\n * sample level and higher. The upper limit on the query-to-item distance is\n * <em>limit</em>; the number of neighbours actually found is returned.\n *\n * @param limit The limit on the query-to-neighbor distance.\n * @param sampleLevel The sample level which is searched.\n *\n * @return The number of neighbors found.\n */\nint RCT::doFindAllInRange(float limit, int sampleLevel) {\n    int i;\n\n    // Handle the singleton case separately.\n    if (size == 1) {\n        queryResultDistList[0] = computeDistFromQuery(0);\n        queryResultIndexList[0] = 0;\n        queryResultSampleSize = 1;\n\n        if (queryResultDistList[0] <= limit) {\n            queryResultSize = 1;\n        } else {\n            queryResultSize = 0;\n        }\n\n        return queryResultSize;\n    }\n\n    queryResultSampleSize = levelSetSizeList[sampleLevel];\n\n    // Compute distances from the current query to all items.\n\n    for (i = 0; i < queryResultSampleSize; i++) {\n        queryResultDistList[i] = computeDistFromQuery(i);\n        queryResultIndexList[i] = i;\n    }\n\n    // Sort the items by distances, returning the number of \n    //   elements actually found.\n\n    quickSort\n            (queryResultDistList,\n            queryResultIndexList,\n            0,\n            queryResultSampleSize - 1);\n\n    // Report only those items whose distances fall within the limit.\n\n    i = 0;\n\n    while ((i < queryResultSize) && (queryResultDistList[i] <= limit)) {\n        i++;\n    }\n\n    queryResultSize = i;\n\n    return queryResultSize;\n}\n\n/*!\n * Performs an approximate range query from the current query object, with\n * respect to a subset of the items. The subset consists of all items at the\n * indicated sample level and higher. The upper limit on the query-to-item\n * distance must be supplied. The number of elements actually found is returned.\n *\n * The results are stored in the RCT query result lists. The parameter\n * <em>scaleFactor</em> influences the tradeoff between speed and accuracy.\n *\n * @param limit The limit of query-to-neighbor distance.\n * @param sampleLevel which is searched.\n * @param scaleFactor The time/accuracy trade-off factor.\n *\n * @return Number of neighbors found.\n */\nint RCT::doFindMostInRange(float limit, int sampleLevel, float scaleFactor) {\n    int i;\n    int j;\n    int lvl;\n    int child = 0;\n    int minNeighbors = 0;\n    int nodeIndex = 0;\n    int numChildren = 0;\n    int numFound = 0;\n    int numRetained = 0;\n    int* childList = NULL;\n\n    // Handle the singleton case separately.\n\n    if (size == 1) {\n        queryResultDistList[0] = computeDistFromQuery(0);\n        queryResultIndexList[0] = 0;\n        queryResultSampleSize = 1;\n\n        if (queryResultDistList[0] <= limit) {\n            queryResultSize = 1;\n        } else {\n            queryResultSize = 0;\n        }\n\n        return queryResultSize;\n    }\n\n    // Compute the sample size for the operation.\n\n    queryResultSampleSize = levelSetSizeList[sampleLevel];\n\n    // Compute the minimum number of neighbours for each sample level.\n\n    minNeighbors = (int)((scaleFactor * coverageParameter) + 0.999999F);\n\n    // Load the root as the tentative sole member of the query result list.\n\n    queryResultSize = 0;\n\n    queryResultDistList[0] = computeDistFromQuery(0);\n    queryResultIndexList[0] = 0;\n    numRetained = 1;\n\n    // From the root, search out other nodes to place in the query result.\n\n    for (lvl = levels - 1; lvl >= sampleLevel; lvl--) {\n        // For every node at the active level, load its children\n        //   into the scratch list, and compute their distances to the query.\n\n        numFound = 0;\n\n        for (i = 0; i < numRetained; i++) {\n            nodeIndex = queryResultIndexList[i];\n            numChildren = childLSizeLList[lvl][nodeIndex];\n            childList = childIndexLLList[lvl][nodeIndex];\n\n            for (j = 0; j < numChildren; j++) {\n                child = childList[j];\n\n                if (visitedNodeIndexList[child] != TRUE) {\n                    visitedNodeIndexList[child] = TRUE;\n                    tempResultIndexList[numFound] = child;\n                    tempResultDistList[numFound] = computeDistFromQuery(child);\n                    numFound++;\n                }\n            }\n        }\n\n        for (i = 0; i < numFound; i++) {\n            visitedNodeIndexList[tempResultIndexList[i]] = FALSE;\n        }\n\n        // Extract the closest nodes from the list of accumulated children,\n        //   and keep them as the tentative parents of the query.\n\n        quickSort(tempResultDistList, tempResultIndexList, 0, numFound - 1);\n\n        // Determine the elements in the query result that\n        //   lie within the range.\n\n        queryResultSize = 0;\n\n        while ((queryResultSize < numFound)\n                && (tempResultDistList[queryResultSize] <= limit)) {\n            queryResultIndexList[queryResultSize]\n                    = tempResultIndexList[queryResultSize];\n            queryResultDistList[queryResultSize]\n                    = tempResultDistList[queryResultSize];\n            queryResultSize++;\n        }\n\n        // Determine the number of elements to be retained at this level.\n\n        numRetained = (int)((scaleFactor * numFound * coverageParameter) + 0.999999F);\n\n        if (numRetained < minNeighbors) {\n            numRetained = minNeighbors;\n        }\n\n        if (numRetained > numFound) {\n            numRetained = numFound;\n        }\n    }\n\n    childList = NULL;\n\n    return queryResultSize;\n}\n\n/*!\n * Perform an approximate nearest-neighbor query for the specified item. The\n * number of desired nearest neighbors <code>howMany</code> must be specified.\n * The search is relative to the random level <em>sampleLevel</em>.\n *\n * @param scaleFactor Additional search efforts.\n * @param howMany The desired number of neighbors.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n *\n * @return The number of elements actually found.\n */\nint RCT::doFindNear(int howMany, int sampleLevel, float scaleFactor) {\n    int i;\n    int j;\n    int lvl;\n    int child = 0;\n    int nodeIndex = 0;\n    int numChildren = 0;\n    int tempQueryResultSize = 0;\n    double varQuota = 0.0F;\n    int numFound = 0;\n    int numRetained = 0;\n    int* childList = NULL;\n\n    // Compute quota of items to be retained at every level.\n    // Rank cover tree rules.levelQuotaList\n    varQuota = (double)howMany;\n    for (lvl = sampleLevel; lvl < levels; lvl++) {\n        levelQuotaList[lvl] = (int)((scaleFactor * varQuota * coverageParameter) + 0.999999F);\n        if (levelQuotaList[lvl] < scaleFactor * coverageParameter) {\n            levelQuotaList[lvl] = (int)((scaleFactor * coverageParameter) + 0.999999F);\n        }\n        varQuota /= sampleRate;\n    }\n    if (howMany > levelQuotaList[sampleLevel]) {\n        levelQuotaList[sampleLevel] = howMany;\n    }\n\n    // Load the root as the tentative sole member of the query result list.\n    queryResultSize = 0;\n    queryResultDistList[0] = computeDistFromQuery(0);\n    queryResultIndexList[0] = 0;\n    numRetained = 1;\n    checks = 0;\n    // From the root, search out other nodes to place in the query result.\n    for (lvl = levels - 1; lvl >= sampleLevel; lvl--) {\n        // For every node at the active level, load its children\n        //   into the scratch list, and compute their distances to the query.\n        numFound = 0;\n\n        for (i = 0; i < numRetained; i++) {\n            nodeIndex = queryResultIndexList[i];\n            numChildren = childLSizeLList[lvl + 1][nodeIndex];\n            childList = childIndexLLList[lvl + 1][nodeIndex];\n\n            for (j = 0; j < numChildren; j++) {\n                child = childList[j];\n\n                if (visitedNodeIndexList[child] != TRUE) {\n                    visitedNodeIndexList[child] = TRUE;\n                    tempResultIndexList[numFound] = child;\n                    tempResultDistList[numFound] = computeDistFromQuery(child);\n                    numFound++;\n\t\t\t\t\tchecks++;\n                }\n            }\n        }\n\n        for (i = 0; i < numFound; i++) {\n            visitedNodeIndexList[tempResultIndexList[i]] = FALSE;\n        }\n\n        // Extract the closest nodes from the list of accumulated children,\n        //   and keep them as the tentative parents of the query.\n\n        if (numFound > levelQuotaList[lvl]) {\n            numRetained = levelQuotaList[lvl];\n        } else {\n            numRetained = numFound;\n        }\n\n        numRetained = partialQuickSort\n                (numRetained,\n                tempResultDistList,\n                tempResultIndexList,\n                0,\n                numFound - 1);\n\n        for (i = 0; i < numRetained; i++) {\n            queryResultIndexList[i] = tempResultIndexList[i];\n            queryResultDistList[i] = tempResultDistList[i];\n        }\n    }\n\n    // Select the final number of neighbors needed.\n    if (numRetained > howMany) {\n        queryResultSize = howMany;\n    } else {\n        queryResultSize = numRetained;\n    }\n    childList = NULL;\n    return queryResultSize;\n\n}\n\n/*!\n * Perform an exact nearest-neighbor query for the specified item. The\n * number of desired nearest neighbors <code>howMany</code> must be specified.\n * The search is relative to the random level <em>sampleLevel</em>.\n *\n * @param howMany The desired number of neighbors.\n * @param sampleLevel The sample level with respect to which the query is\n *                    performed.\n *\n * @return The number of elements actually found.\n */\nint RCT::doFindNearest(int howMany, int sampleLevel) {\n    int i;\n\n    // Handle the singleton case separately.\n    if (size == 1) {\n        queryResultSize = 1;\n        queryResultDistList[0] = computeDistFromQuery(0);\n        queryResultIndexList[0] = 0;\n\n        return 1;\n    }\n\n    queryResultSize = levelSetSizeList[sampleLevel];\n\n    // Compute distances from the current query to all items.\n    for (i = 0; i < queryResultSize; i++) {\n        queryResultDistList[i] = computeDistFromQuery(i);\n        queryResultIndexList[i] = i;\n    }\n\n\t\tqueryResultSize = partialQuickSort(howMany, queryResultDistList, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t queryResultIndexList, 0, queryResultSize - 1);\n\n    return queryResultSize;\n}\n\n/*!\n * Sorts the smallest items in the supplied list ranges, in place, according to\n * distances. A partial quicksort is used to sort only the requested number\n * of items. The smallest items are placed at the beginning of the range, in\n * increasing order of distance.\n *\n * @note The remainder of the range can become corrupted by this operation!\n *\n * @param howMany Number of nearest items sought.\n * @param distList List of item distances.\n * @param indexList List of item indices.\n * @param rangeFirst First element in range.\n * @param rangeLast Last element in range.\n *\n * @return Number of items sorted.\n */\nint RCT::partialQuickSort(int howMany, float* distList, int* indexList, int rangeFirst, int rangeLast) {\n    int i;\n    int pivotLoc = 0;\n    int pivotIndex = 0;\n    float pivotDist = 0.0F;\n    int tempIndex = 0;\n    float tempDist = 0.0F;\n    int low = 0;\n    int high = 0;\n    int numFound = 0;\n    int numDuplicatesToReplace = 0;\n    int tieBreakIndex = 0;\n\n    // If the range is empty, or if we've been asked to sort no\n    //   items, then return immediately.\n\n    if ((rangeLast < rangeFirst) || (howMany < 1)) {\n        return 0;\n    }\n\n    // If there is exactly one element, then again there is nothing\n    //   that need be done.\n\n    if (rangeLast == rangeFirst) {\n        return 1;\n    }\n\n    // If the range to be sorted is small, just do an insertion sort.\n\n    if (rangeLast - rangeFirst < 7) {\n        high = rangeFirst + 1;\n        tieBreakIndex = indexList[rand.integer() % (rangeLast - rangeFirst + 1)];\n\n        // The outer while loop considers each item in turn (starting\n        //   with the second item in the range), for insertion into\n        //   the sorted list of items that precedes it.\n\n        while (high <= rangeLast) {\n            // Copy the next item to be inserted, as the \"pivot\".\n            // Start the insertion tests with its immediate predecessor.\n\n            pivotDist = distList[high];\n            pivotIndex = indexList[high];\n            low = high - 1;\n\n            // Work our way down through previously-sorted items\n            //   towards the start of the range.\n\n            while (low >= rangeFirst) {\n                // Compare the item to be inserted (the \"pivot\") with\n                //   the current item.\n\n                if (distList[low] < pivotDist) {\n                    // The current item precedes the pivot in the sorted order.\n                    // Break out of the loop - we have found the insertion point.\n\n                    break;\n                } else if (distList[low] > pivotDist) {\n                    // The current item follows the pivot in the sorted order.\n                    // Shift the current item one spot upwards, to make room\n                    //   for inserting the pivot below it.\n\n                    distList[low + 1] = distList[low];\n                    indexList[low + 1] = indexList[low];\n                    low--;\n                } else {\n                    if (indexList[low] != pivotIndex) {\n                        // The items have the same sort value but are not identical.\n                        // Break the tie pseudo-randomly.\n\n                        if (\n                                (\n                                (tieBreakIndex >= pivotIndex)\n                                &&\n                                (\n                                (indexList[low] < pivotIndex)\n                                ||\n                                (tieBreakIndex < indexList[low])\n                                )\n                                )\n                                ||\n                                (\n                                (tieBreakIndex < pivotIndex)\n                                &&\n                                (\n                                (indexList[low] < pivotIndex)\n                                &&\n                                (tieBreakIndex < indexList[low])\n                                )\n                                )\n                                ) {\n                            // The current item precedes the pivot in the sorted order.\n                            // Break out of the loop - we have found the insertion point.\n\n                            break;\n                        } else {\n                            // The current item follows the pivot in the sorted order.\n                            // Shift the current item one spot upwards, to make room\n                            //   for inserting the pivot below it.\n\n                            distList[low + 1] = distList[low];\n                            indexList[low + 1] = indexList[low];\n                            low--;\n                        }\n                    } else {\n                        // Oh no!\n                        // We opened up an empty slot for the pivot,\n                        //   only to find that it's a duplicate of the current item!\n                        // Close the slot up again, and eliminate the duplicate.\n\n                        for (i = low + 1; i < high; i++) {\n                            distList[i] = distList[i + 1];\n                            indexList[i] = indexList[i + 1];\n                        }\n\n                        // To eliminate the duplicate, overwrite its location with the\n                        //   item from the end of the range, and then shrink the range\n                        //   by one.\n\n                        distList[high] = distList[rangeLast];\n                        indexList[high] = indexList[rangeLast];\n                        rangeLast--;\n\n                        // The next iteration must not advance \"high\", since we've\n                        //   just put a new element into it which needs to be processed.\n                        // Decrementing it here will cancel out with the incrementation\n                        //   of the next iteration.\n\n                        high--;\n\n                        // When we break the loop, the pivot element will be put\n                        //   in its proper place (\"low\" + 1)\n                        // Here, the proper place is where rangeLast used to be.\n                        // To achieve this, we need to adjust \"low\" here.\n\n                        low = rangeLast;\n\n                        break;\n                    }\n                }\n            }\n\n            // If we've made it to here, we've found the insertion\n            //   spot for the current element.\n            // Perform the insertion.\n\n            low++;\n            distList[low] = pivotDist;\n            indexList[low] = pivotIndex;\n\n            // Move to the next item to be inserted in the growing sorted list.\n\n            high++;\n        }\n\n        // Return the number of sorted items found.\n\n        numFound = rangeLast - rangeFirst + 1;\n\n        if (numFound > howMany) {\n            numFound = howMany;\n        }\n\n        return numFound;\n    }\n\n    // The range to be sorted is large, so do a partial quicksort.\n    // Select a pivot item, and swap it with the item at the beginning\n    //   of the range.\n\n    pivotLoc = rangeFirst + (rand.integer() % (rangeLast - rangeFirst + 1));\n    tieBreakIndex = indexList[rand.integer() % (rangeLast - rangeFirst + 1)];\n\n    pivotDist = distList[pivotLoc];\n    distList[pivotLoc] = distList[rangeFirst];\n    distList[rangeFirst] = pivotDist;\n\n    pivotIndex = indexList[pivotLoc];\n    indexList[pivotLoc] = indexList[rangeFirst];\n    indexList[rangeFirst] = pivotIndex;\n\n    // Eliminate all duplicates of the pivot.\n    // Any duplicates found are pushed to the end of the range, and\n    //   the range shrunk by one (thereby excluding them).\n\n    i = rangeFirst + 1;\n\n    while (i <= rangeLast) {\n        if ((pivotIndex == indexList[i]) && (pivotDist == distList[i])) {\n            distList[i] = distList[rangeLast];\n            indexList[i] = indexList[rangeLast];\n            rangeLast--;\n        } else {\n            i++;\n        }\n    }\n\n    // Partition the remaining items with respect to the pivot.\n    // This efficient method is adapted from the one outlined in\n    //   Cormen, Leiserson & Rivest.\n    // The range is scanned from both ends.\n    // Items with small distances are placed below \"low\", and those\n    //   with large distances are placed above \"high\".\n    // Where \"low\" and \"high\" meet, the pivot item is inserted.\n\n    low = rangeFirst;\n    high = rangeLast + 1;\n\n    while (TRUE) {\n        // Move the \"high\" endpoint down until it meets either the pivot,\n        //   or something that belongs on the \"low\" side.\n        // If the key values are tied, decide pseudo-randomly.\n\n        do {\n            high--;\n        } while (\n                (distList[high] > pivotDist)\n                ||\n                (\n                (distList[high] == pivotDist)\n                &&\n                (high > low)\n                &&\n                (\n                (\n                (tieBreakIndex >= pivotIndex)\n                &&\n                (\n                (pivotIndex < indexList[high])\n                &&\n                (indexList[high] <= tieBreakIndex)\n                )\n                )\n                ||\n                (\n                (tieBreakIndex < pivotIndex)\n                &&\n                (\n                (pivotIndex < indexList[high])\n                ||\n                (indexList[high] <= tieBreakIndex)\n                )\n                )\n                )\n                )\n                );\n\n        // Move the \"low\" endpoint up until it meets either the \"high\" endpoint,\n        //   or something that belongs on the \"high\" side.\n        // If the key values are tied, decide pseudo-randomly.\n\n        do {\n            low++;\n        } while (\n                (low < high)\n                &&\n                (\n                (distList[low] < pivotDist)\n                ||\n                (\n                (distList[low] == pivotDist)\n                &&\n                (\n                (\n                (tieBreakIndex >= pivotIndex)\n                &&\n                (\n                (indexList[low] <= pivotIndex)\n                ||\n                (tieBreakIndex < indexList[low])\n                )\n                )\n                ||\n                (\n                (tieBreakIndex < pivotIndex)\n                &&\n                (\n                (indexList[low] <= pivotIndex)\n                &&\n                (tieBreakIndex < indexList[low])\n                )\n                )\n                )\n                )\n                )\n                );\n\n        // Have the \"low\" and \"high\" endpoints crossed?\n        // If not, we still have more work to do.\n\n        if (low < high) {\n            // Swap the misplaced items, and try again.\n\n            tempDist = distList[low];\n            distList[low] = distList[high];\n            distList[high] = tempDist;\n\n            tempIndex = indexList[low];\n            indexList[low] = indexList[high];\n            indexList[high] = tempIndex;\n        } else {\n            // We found the cross-over point.\n\n            break;\n        }\n    }\n\n    // The pivot value ends up at the location referenced by \"high\".\n    // Swap it with the pivot (which resides at the beginning of the range).\n\n    distList[rangeFirst] = distList[high];\n    distList[high] = pivotDist;\n\n    indexList[rangeFirst] = indexList[high];\n    indexList[high] = pivotIndex;\n\n    pivotLoc = high;\n\n    // The partition is complete.\n    // Recursively sort the items with smaller distance.\n\n    numFound = partialQuickSort\n            (howMany, distList, indexList, rangeFirst, pivotLoc - 1);\n\n    // If we found enough items (including the pivot), then we are done.\n    // Make sure the pivot is in its correct position, if it is used.\n\n    if (numFound >= howMany - 1) {\n        if (numFound == howMany - 1) {\n            distList[rangeFirst + numFound] = pivotDist;\n            indexList[rangeFirst + numFound] = pivotIndex;\n        }\n\n        return howMany;\n    }\n\n    // We didn't find enough items, even taking the pivot into account.\n    // Were any duplicates discovered during this call?\n\n    if (numFound < pivotLoc - rangeFirst) {\n        // Duplicates were discovered!\n        // Figure out the minimum number of duplicates that must be\n        //   replaced by items from the end of the range in order to\n        //   leave the non-duplicates in contiguous locations.\n\n        numDuplicatesToReplace = pivotLoc - rangeFirst - numFound;\n        high = rangeLast;\n\n        if (numDuplicatesToReplace > rangeLast - pivotLoc) {\n            numDuplicatesToReplace = rangeLast - pivotLoc;\n            rangeLast = rangeFirst + numFound + numDuplicatesToReplace;\n        } else {\n            rangeLast -= numDuplicatesToReplace;\n        }\n\n        // Replace the required number of duplicates by items from\n        //   the end of the range.\n        // The size of the range will shrink as a result.\n\n        low = rangeFirst + numFound + 1;\n\n        for (i = 0; i < numDuplicatesToReplace; i++) {\n            distList[low] = distList[high];\n            indexList[low] = indexList[high];\n            low++;\n            high--;\n        }\n    }\n\n    // Put the pivot element in its proper place.\n\n    distList[rangeFirst + numFound] = pivotDist;\n    indexList[rangeFirst + numFound] = pivotIndex;\n\n    // Finish up by sorting larger-distance items.\n    // Note that the number of sorted items needed has dropped.\n\n    return numFound + 1 + partialQuickSort\n            (howMany - numFound - 1,\n            distList, indexList,\n            rangeFirst + numFound + 1, rangeLast);\n}\n\n/*!\n * Print statistics related to the RCT construction.\n *\n * @note Should only be called immediately after the construction!\n */\nvoid RCT::printStats() const {\n    cout << endl << \"RCT build statistics:\" << endl;\n    cout << \"  size                   == \" << size << endl;\n    cout << \"  levels                 == \" << levels << endl;\n    cout << \"  total nodes            == \" << numNodes << endl;\n    cout << \"  max parents per node   == \" << maxParents << endl;\n    cout << \"  max node degree        == \" << maxDegree << endl;\n    cout << \"  avg node degree        == \" << avgDegree << endl;\n    cout << \"  distance comparisons   == \" << numDistComps << endl;\n    cout << \"  RNG seed               == \" << seed << endl;\n    cout << endl;\n}\n\n/*!\n * Sorts the items in the index and distance list in ascending order w.r.t.\n * their distances.\n *\n * @param distList List of item distances.\n * @param indexList List of item indices.\n * @param rangeFirst First element of range.\n * @param rangeLast Last element of range.\n */\nvoid RCT::quickSort(float* distList, int* indexList, int rangeFirst, int rangeLast) {\n    int pivotLoc = 0;\n    float pivotDist;\n    int pivotIndex;\n    float tempDist;\n    int tempIndex;\n    int low = 0;\n    int high = 0;\n    float tieBreakDist;\n\n    // If the range is empty, or if it contains only one item,\n    //   then return immediately.\n\n    if (rangeLast <= rangeFirst) {\n        return;\n    }\n\n    // If the range to be sorted is small, just do an insertion sort.\n\n    if (rangeLast - rangeFirst < 7) {\n        high = rangeFirst + 1;\n        tieBreakDist = distList[rand.integer() % (rangeLast - rangeFirst + 1)];\n\n        // The outer while loop considers each item in turn (starting\n        //   with the second item in the range), for insertion into\n        //   the sorted list of items that precedes it.\n\n        while (high <= rangeLast) {\n            // Copy the next item to be inserted, as the \"pivot\".\n            // Start the insertion tests with its immediate predecessor.\n\n            pivotDist = distList[high];\n            pivotIndex = indexList[high];\n            low = high - 1;\n\n            // Work our way down through previously-sorted items\n            //   towards the start of the range.\n\n            while (low >= rangeFirst) {\n                // Compare the item to be inserted (the \"pivot\") with\n                //   the current item.\n\n                if (distList[low] < pivotDist) {\n                    // The current item precedes the pivot in the sorted order.\n                    // Break out of the loop - we have found the insertion point.\n\n                    break;\n                } else if (distList[low] > pivotDist) {\n                    // The current item follows the pivot in the sorted order.\n                    // Shift the current item one spot upwards, to make room\n                    //   for inserting the pivot below it.\n\n                    distList[low + 1] = distList[low];\n                    indexList[low + 1] = indexList[low];\n                    low--;\n                } else {\n                    // Break the tie pseudo-randomly.\n\n                    if (\n                            (\n                            (tieBreakDist < pivotDist)\n                            &&\n                            (tieBreakDist < distList[low])\n                            &&\n                            (distList[low] < pivotDist)\n                            )\n                            ||\n                            (\n                            (tieBreakDist >= pivotDist)\n                            &&\n                            (\n                            (tieBreakDist < distList[low])\n                            ||\n                            (distList[low] < pivotDist)\n                            )\n                            )\n                            ) {\n                        // The current item precedes the pivot in the sorted order.\n                        // Break out of the loop - we have found the insertion point.\n\n                        break;\n                    } else {\n                        // The current item follows the pivot in the sorted order.\n                        // Shift the current item one spot upwards, to make room\n                        //   for inserting the pivot below it.\n\n                        distList[low + 1] = distList[low];\n                        indexList[low + 1] = indexList[low];\n                        low--;\n                    }\n                }\n            }\n\n            // If we've made it to here, we've found the insertion\n            //   spot for the current element.\n            // Perform the insertion.\n\n            low++;\n            distList[low] = pivotDist;\n            indexList[low] = pivotIndex;\n\n            // Move to the next item to be inserted in the growing sorted list.\n\n            high++;\n        }\n\n        return;\n    }\n\n    // The range to be sorted is large, so do a quicksort.\n    // Select a pivot item, and swap it with the item at the beginning\n    //   of the range.\n\n    pivotLoc = rangeFirst + (rand.integer() % (rangeLast - rangeFirst + 1));\n    tieBreakDist = distList[rand.integer() % (rangeLast - rangeFirst + 1)];\n\n    pivotDist = distList[pivotLoc];\n    distList[pivotLoc] = distList[rangeFirst];\n    distList[rangeFirst] = pivotDist;\n\n    pivotIndex = indexList[pivotLoc];\n    indexList[pivotLoc] = indexList[rangeFirst];\n    indexList[rangeFirst] = pivotIndex;\n\n    // Partition the items with respect to the pivot.\n    // This efficient method is adapted from the one outlined in\n    //   Cormen, Leiserson & Rivest.\n    // The range is scanned from both ends.\n    // Items with small distances are placed below \"low\", and those\n    //   with large distances are placed above \"high\".\n    // Where \"low\" and \"high\" meet, the pivot item is inserted.\n\n    low = rangeFirst;\n    high = rangeLast + 1;\n\n    while (TRUE) {\n        // Move the \"high\" endpoint down until it meets either the pivot,\n        //   or something that belongs on the \"low\" side.\n        // If the key values are tied, decide pseudo-randomly.\n\n        do {\n            high--;\n        } while (\n                (distList[high] > pivotDist)\n                ||\n                (\n                (distList[high] == pivotDist)\n                &&\n                (\n                (\n                (tieBreakDist >= pivotDist)\n                &&\n                (pivotDist < distList[high])\n                &&\n                (distList[high] <= tieBreakDist)\n                )\n                ||\n                (\n                (tieBreakDist < pivotDist)\n                &&\n                (\n                (pivotDist < distList[high])\n                ||\n                (distList[high] <= tieBreakDist)\n                )\n                )\n                )\n                )\n                );\n\n        // Move the \"low\" endpoint up until it meets either the pivot,\n        //   or something that belongs on the \"high\" side.\n        // If the key values are tied, decide pseudo-randomly.\n\n        do {\n            low++;\n        } while (\n                (low < high)\n                &&\n                (\n                (distList[low] < pivotDist)\n                ||\n                (\n                (distList[low] == pivotDist)\n                &&\n                (\n                (\n                (tieBreakDist < pivotDist)\n                &&\n                (tieBreakDist < distList[low])\n                &&\n                (distList[low] < pivotDist)\n                )\n                ||\n                (\n                (tieBreakDist >= pivotDist)\n                &&\n                (\n                (tieBreakDist < distList[low])\n                ||\n                (distList[low] < pivotDist)\n                )\n                )\n                )\n                )\n                )\n                );\n\n        // Have the \"low\" and \"high\" endpoints crossed?\n        // If not, we still have more work to do.\n\n        if (low < high) {\n            // Swap the misplaced items, and try again.\n\n            tempDist = distList[low];\n            distList[low] = distList[high];\n            distList[high] = tempDist;\n\n            tempIndex = indexList[low];\n            indexList[low] = indexList[high];\n            indexList[high] = tempIndex;\n        } else {\n            // We found the cross-over point.\n\n            break;\n        }\n    }\n\n    // The pivot value ends up at the location referenced by \"high\".\n    // Swap it with the pivot (which resides at the beginning of the range).\n\n    distList[rangeFirst] = distList[high];\n    distList[high] = pivotDist;\n\n    indexList[rangeFirst] = indexList[high];\n    indexList[high] = pivotIndex;\n\n    // The partition is complete.\n    // Recursively sort the remaining items.\n\n    quickSort(distList, indexList, rangeFirst, high - 1);\n    quickSort(distList, indexList, high + 1, rangeLast);\n}\n\n/*!\n * Reserve storage for the RCT and items data.\n */\nvoid RCT::reserveStorage() {\n    int i;\n    int lvl;\n\n    // Reserve storage for the mapping between internal and external\n    //   data indices.\n\n    internToExternMapping = new int [size];\n\n    for (i = 0; i < size; i++) {\n        internToExternMapping[i] = i;\n    }\n\n    // Set up storage for child-to-parent edges and parent-to-child edges.\n\n    parentIndexLLList = new int** [levels + 1];\n    parentLSizeLList = new int* [levels + 1];\n\n    childIndexLLList = new int** [levels + 1];\n    childLSizeLList = new int* [levels + 1];\n\n    for (lvl = 0; lvl <= levels; lvl++) {\n        parentIndexLLList[lvl] = new int* [levelSetSizeList[lvl]];\n        parentLSizeLList[lvl] = new int [levelSetSizeList[lvl]];\n\n        childIndexLLList[lvl] = new int* [levelSetSizeList[lvl]];\n        childLSizeLList[lvl] = new int [levelSetSizeList[lvl]];\n\n        for (i = levelSetSizeList[lvl] - 1; i >= 0; i--) {\n            parentIndexLLList[lvl][i] = NULL;\n            parentLSizeLList[lvl][i] = 0;\n\n            childIndexLLList[lvl][i] = NULL;\n            childLSizeLList[lvl][i] = 0;\n        }\n    }\n\n    // Set up storage for managing distance computations and\n    //   query results.\n\n    distFromQueryList = new float [size];\n    storedDistIndexList = new int [size];\n    numStoredDists = 0;\n\n    queryResultDistList = new float [size];\n    queryResultIndexList = new int [size];\n    queryResultSize = 0;\n    queryResultSampleSize = 0;\n\n    visitedNodeIndexList = new int [size];\n    tempResultIndexList = new int [size];\n    tempResultDistList = new float [size];\n\n    for (i = 0; i < size; i++) {\n        distFromQueryList[i] = RCT_UNKNOWN_;\n        storedDistIndexList[i] = RCT_NONE_;\n\n        queryResultDistList[i] = RCT_UNKNOWN_;\n        queryResultIndexList[i] = RCT_NONE_;\n\n        visitedNodeIndexList[i] = FALSE;\n\n        tempResultIndexList[i] = RCT_NONE_;\n        tempResultDistList[i] = RCT_UNKNOWN_;\n    }\n}\n\n/*!\n * Accepts a new item as the query object for future distance comparisons.\n * Any previously-stored distances are cleared by this operation, except in the\n * case where the previous query object is identical to the current query\n * object.\n *\n * @param query The new query item.\n */\nvoid RCT::setNewQuery(DistData* query) {\n    int i;\n    if (query != this->query) {\n        for (i = 0; i < numStoredDists; i++) {\n            distFromQueryList[storedDistIndexList[i]] = RCT_UNKNOWN_;\n        }\n        this->query = query;\n        numStoredDists = 0;\n    }\n}\n\n/*!\n * Reserve storage for the level set information. The number of RCT items and\n * maximum number of node parents must be given.\n *\n * @note This operation determines the shape of the RCT without actually\n *       assigning any items to it.\n */\nvoid RCT::setupLevels(int numItems, int numParents) {\n    int i;\n    int lvl;\n    float coin = 0.0f;\n    int* maxLevelList = NULL;\n\n    size = numItems;\n\n    if (numParents <= 1) {\n        maxParents = 1;\n    } else {\n        maxParents = numParents;\n    }\n\n    // Determine the number of RCT levels, and\n    //   which level sets each member belongs to.\n    if (size > 1) {\n        maxLevelList = new int [size];\n        levels = 1;\n        float p = 1.0f / sampleRate;\n\n        for (i = 0; i < size; ++i) {\n            maxLevelList[i] = 0;\n            while (rand() <= p) {\n                ++maxLevelList[i];\n            }\n            if (maxLevelList[i] >= levels) {\n                levels = 1 + maxLevelList[i];\n            }\n        }\n    } else {\n        levels = 0;\n    }\n\n    // Determine the level sample sizes.\n\n    levelQuotaList = new int [levels + 1];\n    levelSetSizeList = new int [levels + 1];\n\n    for (lvl = 0; lvl < levels; lvl++) {\n        levelQuotaList[lvl] = 0;\n        levelSetSizeList[lvl] = 0;\n    }\n\n    levelQuotaList[levels] = 0;\n    levelSetSizeList[levels] = 1;\n\n    for (i = 0; i < size; i++) {\n        for (lvl = maxLevelList[i]; lvl >= 0; lvl--) {\n            levelSetSizeList[lvl]++;\n        }\n    }\n\n    numNodes = 0;\n\n    for (lvl = 0; lvl <= levels; lvl++) {\n        numNodes += levelSetSizeList[lvl];\n    }\n\n    // Delete the max level list, since we don't need it any more.\n\n    if (maxLevelList != NULL) {\n        delete [] maxLevelList;\n        maxLevelList = NULL;\n    }\n}\n\n/*!\n * Get the fraction of edges in the RCT that are well-formed. An edge from a\n * parent <em>p</em> on level <em>i</em> to a child <em>c</em> is consider\n * well-formed if and only if there is no item <em>p'</em> on level <em>i</em>,\n * such that <em>dist(p',c)</em> is strictly less than <em>dist(p,c)</em>.\n * \n * @note The RCT is well-formed if and only if all of its edges are well-formed.\n *       Edges between the artificial root node and its children are by\n *       definition always well-formed and are not checked.\n *\n * @note Be aware that checking well-formedness is very expensive due to the\n *       required exact nearest-neighbor queries!\n *\n * @return Fraction of edges that are well-formed.\n */\ndouble RCT::getFractionOfWellformedEdges() {\n    // Count the well-formed edges.\n    long long wellFormedEdges = 0LL;\n    long long edgesChecked = 0LL;\n\n    // Check all levels:\n    for (int L = levels - 1; L > 0; --L) {\n        // Check all nodes on level L.\n        for (int i = 0; i < levelSetSizeList[L]; ++i) {\n            // Select an item on level L as the parent.\n            DistData* parent = data[internToExternMapping[i]];\n\n            // Investigate each child of that parent.\n            int numChildren = childLSizeLList[L][i];\n            int* children = childIndexLLList[L][i];\n            for (int j = 0; j < numChildren; ++j) {\n                // Retrieve the child item.\n                DistData* child = data[internToExternMapping[children[j]]];\n\n                // Is this a copy of the parent?\n                if (parent == child) {\n                    ++wellFormedEdges;\n                    ++edgesChecked;\n                    continue;\n                }\n\n                // Determine the actual parent-child distance.\n                float actualParentChildDistance = parent->distanceTo(child);\n\n                // Find the nearest-neighbor's distance of the child at the parent level L.\n                setNewQuery(child);\n                doFindNearest(1, L);\n                float correctParentChildDistance;\n                getResultDists(&correctParentChildDistance, 1);\n\n                // Do the distances match?\n                if (actualParentChildDistance == correctParentChildDistance) {\n                    ++wellFormedEdges;\n                }\n                ++edgesChecked;\n            }\n        }\n    }\n\n    // How many edges do we have in the RCT?\n    cout << wellFormedEdges << \"/\" << edgesChecked << endl;\n    return static_cast<double>(wellFormedEdges) / static_cast<double>(edgesChecked);\n}\n"
  },
  {
    "path": "algorithms/RCT/src/rct.h",
    "content": "// Copyright (C) 2010 Michael E. Houle\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with this program.  If not, see <http://www.gnu.org/licenses/>.\n\n/*!\n * @mainpage Rank Cover Tree Library\n *\n * @section intro Introduction\n *\n * This package provides a C++ implementation of the rank cover tree (see [1]),\n * a probabilistic algorithm for finding k-nearest neighbors of point sets in \n * general metric spaces. The rank cover tree reinterprets the cover set \n * analysis of the cover tree search structure in terms of neighbor ranks as \n * measured from the query point, rather than explicit distances. The direct \n * analysis results in a construction and query time complexity with a far \n * smaller dependence on the measure of implicit dimension used in the cover \n * tree analysis. The rank cover tree can also be viewed as a variant of the \n * generic, scalable SASH heuristic for similarity search, where the rank \n * cover tree parameter governing the execution have been set to a value \n * insufficiently large to guarantee correctness with high probability. In this \n * sense, this implementation and its paper constitute the first formal \n * analysis of the accuracy of the SASH.\n *\n * This source package provides the following files:\n * -# DistData.h\n * -# rct.h\n * -# rct.cpp\n * -# random.h\n * -# random.cpp\n *\n * <hr />\n *\n * @section notes Release Notes\n *\n * If you like to use or extend this package, please be aware of any material\n * available on <a href=\"http://tcs.rwth-aachen.de/~nett/\">this website</a>.\n *\n * <hr />\n *\n * @section disclaimer Disclaimer\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. The source code and derived binary forms may be used only for\n *    non-commercial, non-profit research purposes.\n *\n * 2. Redistributions of source code must retain the above copyright\n *    notice, these conditions, and the following disclaimer.\n *\n * 3. Redistributions in binary form must reproduce the above copyright\n *    notice, these conditions, and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * 4. The names of its contributors may not be used to endorse or promote\n *    products derived from this software without specific prior written\n *    permission.\n *\n * <em>This software is provided by the copyright holders and contributors\n * \"as is\" and any express or implied warranties, including, but not limited\n * to, the implied warranties of merchantability and fitness for a particular\n * purpose are disclaimed. In no event shall the copyright owner or \n * contributors be liable for any direct, indirect, incidental, special,\n * exemplary, or consequential damages (including, but not limited to, \n * procurement of substitute goods or services; loss of use, data, or\n * profits; or business interruption) however caused and on any theory of\n * liability, whether in contract, strict liability, or tort (including \n * negligence or otherwise) arising in any way out of the use of this software,\n * even if advised of the possibility of such damage.</em>\n *\n * Comments, bug fixes, etc welcome!\n * Contact e-mail addresses: meh@nii.ac.jp, meh@acm.org, michael.nett@rwth-aachen.de\n *\n * <hr />\n *\n * @section usage Example of usage\n *\n * <em>The following examples assume that the array <code>DistData** data</code> contains\n * (at least) <code>size</code> data items.</em>\n *\n * In order to create an empty RCT use the following code.\n *\n * \\code\n * RCT* rct = new RCT();\n * \\endcode\n *\n * Alternatively, a specific seed value for the random number generator can be\n * passed as an argument to the constructor:\n *\n * \\code\n * RCT* rct = new RCT(time(0));\n * \\endcode\n *\n * After creation of an RCT, the verbosity level can be set (here we want all error\n * and progress messages):\n *\n * \\code\n * rct->setVerbosity(2);\n * \\endcode\n *\n * You might want to use a coverage parameter other than the default (<em>1.0</em>),\n * depending on the intrinsic dimension of your dataset. The coverage parameter is\n * changed using the following method:\n *\n * \\code\n * rct->setCoverageParameter(8.0);\n * \\endcode\n *\n * In addition, the sample rate (which has the default value of <em>2.0</em>) can be\n * changed. To generate an RCT with an expected number of levels of <em>3</em>, we\n * use the following setting:\n *\n * \\code\n * rct->setSampleRate(pow(size, 1.0 / 3.0));\n * \\endcode\n * \n * Now the RCT can be constructed by calling \n *\n * \\code\n * rct->build(data, size);\n * \\endcode\n *\n * After the construction finishes we can find approximate <em>k</em>\n * nearest-neighbors to a query object <code>DistData* query</code> by\n * calling:\n *\n * \\code\n * int num = rct->findNear(query, k);\n * \\endcode\n *\n * In the following we can access the indices and query-to-item distances \n * of the query results.\n *\n * \\code\n * int* indices = new int [num];\n * rct->getResultIndices(indices, num);\n * float* distances = new float [num];\n * rct->getResultDists(distances, num);\n * \\endcode\n */\n\n#ifndef __RCT_H\n#define __RCT_H\n\n#include <iostream>\n#include <sstream>\n#include <fstream>\n\n#include <cassert>\n\n#include \"DistData.h\"\n\nusing namespace std;\n\n#ifndef RCT_NONE_\n#define RCT_NONE_ (-1)\n#endif\n\n#ifndef RCT_UNDEFINED_\n#define RCT_UNDEFINED_ (-1)\n#endif\n\n#ifndef RCT_UNKNOWN_\n#define RCT_UNKNOWN_ (-1.0F)\n#endif\n\n#ifndef RCT_BUFSIZE_\n#define RCT_BUFSIZE_ (1024)\n#endif\n\n#ifndef RCT_VERSION_\n#define RCT_VERSION_ (\"1.0\")\n#endif\n\n#include \"random.h\"\n\n/*!\n * @class   RCT\n * @author  Michael E. Houle, Michael Nett\n * @date    05/25/2010\n * @version 1.0\n *\n * Implementation of probabilistically-correct index for\n * similarity search.\n *\n * <em>&copy; 2006-2010 Michael E. Houle &mdash; All rights reserved.</em>\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * -# The source code and derived binary forms may be used only for\n *    non-commercial, non-profit research purposes.\n * -# Redistributions of source code must retain the above copyright\n *    notice, these conditions, and the following disclaimer.\n * -# Redistributions in binary form must reproduce the above copyright\n *    notice, these conditions, and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n * -# The names of its contributors may not be used to endorse or promote\n *    products derived from this software without specific prior written\n *    permission.\n *\n * <em>This software is provided by the copyright holders and contributors\n * \"as is\" and any express or implied warranties, including, but not limited\n * to, the implied warranties of merchantability and fitness for a particular\n * purpose are disclaimed. In no event shall the copyright owner or \n * contributors be liable for any direct, indirect, incidental, special,\n * exemplary, or consequential damages (including, but not limited to, \n * procurement of substitute goods or services; loss of use, data, or\n * profits; or business interruption) however caused and on any theory of\n * liability, whether in contract, strict liability, or tort (including \n * negligence or otherwise) arising in any way out of the use of this software,\n * even if advised of the possibility of such damage.</em>\n *\n * <b>Comments, bug fixes, etc welcome!</b>\n *\n * Contact e-mail address: meh@nii.ac.jp, meh@acm.org, michael.nett@rwth-aachen.de\n */\n//! Rank Cover Tree for probabilistically-correct similarity search.\n\nclass RCT {\n\nprivate:\n    //! The truth value 'true'.\n    static const int TRUE = 1;\n\n    //! The truth value 'false'.\n    static const int FALSE = 0;\n\n    //! Data items.\n    /*!\n     * The array of data items. Note that the data items from the input\n     * array are <b>not</b> copied, so the user has to take care of the\n     * memory allocated for the input data and the memory must not be\n     * released while the RCT is in use.\n     */\n    DistData** data;\n\n    //! Pseudo random number generator.\n    /*!\n     * The pseudo random number generator is seeded with the current the\n     * timestamp obtained from <code>::time(0)</code> unless the user\n     * supplies a specific seed when calling <code>build(...)</code>.\n     */\n    Random rand;\n\n    //! Sample rate.\n    /*!\n     * The probability of an item in level set <em>i</em> also occurring\n     * in level set <em>i + 1</em> is the inverse of the sample rate.\n     * Therefore, a sample rate of <em>2.0</em> is expected to yield\n     * a random leveling where each successive random level contains\n     * roughly half as many elements as the level below it. A using the\n     * <em>j</em>-th root of the number of items provides a random\n     * leveling with expected height <em>j</em>.\n     */\n    float sampleRate;\n\n    //! Size of the data array.\n    /*!\n     * The number of data items actually stored in the RCT.\n     */\n    int size;\n\n    //! Size of the level sets.\n    /*!\n     * Stores the number of element in the level sets L_0,L_1,... depending\n     * on how the items are distributed across levels by the random leveling\n     * process.\n     */\n    int* levelSetSizeList;\n\n    //! Maximum number of parents per node.\n    /*!\n     * This value fixes the maximum number of parents per node. To obtain\n     * a rank cover tree this value must be set to <em>1</em>. Using larger\n     * values than <em>1</em> results in a non-tree structure. Larger values\n     * can improve search accuracies at the cost of query and construction\n     * time complexity.\n     */\n    int maxParents;\n\n    //! Maximum node degree.\n    /*!\n     * The maximum number of children per node. These include the virtual\n     * supernode constructed on top of the highest level in the tree (in\n     * case that level contains more than one item).\n     */\n    int maxDegree;\n\n    //! Average node degree.\n    /*!\n     * The average number of children per node. These are determined as a\n     * result of the build step.\n     */\n    float avgDegree;\n\n    //! Mapping between internal and external indices.\n    /*!\n     * Stores the mapping from internal item indices to external (input)\n     * indices. This mapping represents the internal permutation of\n     * data items done by the RCT during the random leveling. The original\n     * data array is not changed.\n     */\n    int* internToExternMapping;\n\n    //! Height of the RCT.\n    /*!\n     * Number of sample levels in the rank cover tree (other than the\n     * artificial root's). The bottom rank cover tree level has index\n     * <em>0</em>, the artificial root has level <code>levels</code>.\n     */\n    int levels;\n\n    //! Total number of nodes.\n    /*!\n     * The total number of nodes that is present in the rank cover tree.\n     * This value is expected to be in <code>O(n)</code> whenever the sample\n     * rate used in the construction is at least <em>2.0</em>.\n     *\n     * @note While in design the RCT uses copies of nodes at different levels,\n     *       these copies are not made in the actual implementation! Therefore,\n     *       the number of nodes becomes a symbolic property of the RCT.\n     */\n    int numNodes;\n\n    //! Lists of tentative parents per node.\n    /*!\n     * The parent lists store the tentative parents which are sought during\n     * the RCT construction phase. The number of parent sought depend on the\n     * setting of <code>maxParents</code>.\n     *\n     * @note This storage is deallocated after the construction is finished.\n     */\n    int*** parentIndexLLList;\n\n    //! Tentative parent list lengths.\n    /*!\n     * These arrays store the number of tentative parents found for each\n     * node during the construction phase.\n     *\n     * @note This storage is deallocated after the construction is finished.\n     */\n    int** parentLSizeLList;\n\n    //! List of children per node.\n    /*!\n     * The children lists store the chilren that any node has at any given\n     * level. The lists represent an 'inversion' of the parent lists used\n     * during construction and are used to decend the RCT during search\n     * operations.\n     */\n    int*** childIndexLLList;\n\n    //! Children list lengths.\n    /*!\n     * These arrays store the number of children for each node at each level.\n     */\n    int** childLSizeLList;\n\n    //! The current query object.\n    /*!\n     * The data item that is subject of the currently processed (most recently\n     * processed) query. This marker is also used to identify repeated queries\n     * where computation time can be saved.\n     */\n    DistData* query;\n\n    //! Distance cache.\n    /*!\n     * Stores distances from the current query item to some data items in the\n     * RCT that have been performed during the most recent query.\n     */\n    float* distFromQueryList;\n\n    //! Item cache.\n    /*!\n     * Stores indices of items whose distance to the current query object has\n     * been determined during the current query.\n     */\n    int* storedDistIndexList;\n\n    //! Cache length.\n    /*!\n     * Stores the number of items in the current query cache.\n     */\n    int numStoredDists;\n\n    //! Number of distance comparisons performed.\n    /*!\n     * Stores the number of distance comparisons that have been\n     * performed during the most recent RCT operation.\n     */\n    unsigned long numDistComps;\n\n    //! Level quota list.\n    /*!\n     * Stores the maximum number of nodes that are retained in the\n     * cover set during a search. The quotas are calculated for each\n     * search based on the number of neighbours sought.\n     *\n     * @todo If we safe the value of 'howMany' used in the queries,\n     *       we don't have to recompute that every time (minor\n     *       savings).\n     */\n    int* levelQuotaList;\n\n    //! Coverage parameter.\n    /*!\n     * The coverage paremeter determines the amount of items that\n     * are sought during search and construction operations. Although\n     * a higher value is can increase search accuracy and is more likely\n     * to produce a well-formed RCT, it comes at the cost of increased\n     * search and construction time complexity.\n     */\n    float coverageParameter;\n\n    //! Query result items.\n    /*!\n     * Stores the indices of the items found during the most\n     * recent search operation.\n     */\n    int* queryResultIndexList;\n\n    //! Query result distances.\n    /*!\n     * Stores the query-to-result distances of the items found during\n     * the most recent search operation.\n     */\n    float* queryResultDistList;\n\n    //! Query result size.\n    /*!\n     * Stores the number of results found in the most recent search\n     * operation.\n     */\n    int queryResultSize;\n\n    //! Query result sample size.\n    /*!\n     * The number of sample items within which the most recent similarity\n     * search was performed.\n     */\n    int queryResultSampleSize;\n\n    //! Temporary index list.\n    /*!\n     * This list stores nodes visited during the search operation.\n     */\n    int* visitedNodeIndexList;\n\n    //! Temporary distance list.\n    /*!\n     * This list stores the distance to the query item of nodes already\n     * visited during the current search.\n     */\n    float* tempResultDistList;\n\n    //! Temporary result list.\n    /*!\n     * This list stores result candidates during the search operation.\n     */\n    int* tempResultIndexList;\n\n    //! Verbosity levle.\n    /*!\n     * The verbosity level of the RCT determines the amount of feedback\n     * provided to the user. Values equal to or less than <em>0</em> result\n     * in no feedback at all. A value of <em>1</em> makes the RCT report\n     * only errors, whereas a value of <em>2</em> generates messages for\n     * errors as well as progress. Finally, a value of <em>3</em> reports\n     * errors, progress and debug output.\n     */\n    int verbosity;\n\n    //! Build scale factor.\n    /*!\n     * The build scale factor determine the scaling that was used during\n     * the construction of the RCT.\n     */\n    float buildScaleFactor;\n\n    //! Random number generator seed.\n    /*!\n     * The seed value used to initialize the random number generator.\n     */\n    unsigned long seed;\n\npublic:\n\tint checks;\n    //! Retrieve the fraction of edges in the RCT which are well-formed.\n    double getFractionOfWellformedEdges();\n\n    //! Create an RCT with a specific seed.\n    RCT(const unsigned long& seed = 3141569UL);\n\n    //! Destroy the RCT.\n    virtual ~RCT();\n\n    //! Set the sample rate.\n    void setSampleRate(const float& sampleRate);\n\n    //! Constructs an RCT from an array of data items.\n    int build(DistData** inputData, const int& numItems, const float& scaleFactor = 1.0f, const int& numParents = 1);\n\n    //! Loads a previously-saved RCT from a file.\n    int build(const char* fileName, DistData** inputData, const int& numItems);\n\n    //! Perform an exact range query.\n    int findAllInRange(DistData* query, const float& limit, const int& sampleLevel = 0);\n\n    //! Perform an approximate range query.\n    int findMostInRange(DistData* query, const float& limit, const float& scaleFactor = 1.0f, const int& sampleLevel = 0);\n\n    //! Perform an approximate nearest-neighbor query.\n    int findNear(DistData* query, const int& howMany = 1, const float& scaleFactor = 1.0f, const int& sampleLevel = 0);\n\n    //! Perform an exact nearest-neighbor query.\n    int findNearest(DistData* query, const int& howMany = 1, const int& sampleLevel = 0);\n\n    //! Retrieve the average node degree.\n    float getAvgDegree() const;\n    \n    //! Retrieve the build scale factor.\n    float getBuildScaleFactor() const;\n\n    //! Retrieve the coverage parameter.\n    float getCoverageParameter() const;\n\n    //! Retrieve the data items.\n    DistData** getData();\n\n    //! Retrieve a mapping from external to internal item indices.\n    int getExternToInternMapping(int* result, int capacity) const;\n\n    //! Retrieve a mapping from internal to external item indices.\n    int getInternToExternMapping(int* result, int capacity) const;\n\n    //! Retrieve the level set sizes.\n    int getLevelSetSizes(int* result, int capacity) const;\n\n    //! Retrieve the maximum node degree.\n    int getMaxDegree() const;\n\n    //! Retrieve the height of the items in the RCT.\n    int getMaxLevelAssignment(int* result, int capacity) const;\n\n    //! Retrieve the maximum number of parents allowed.\n    int getMaxParents() const;\n    \n    //! Retrieve the number of items in the RCT.\n    int getNumItems() const;\n\n    //! Retrieve the number of levels in the RCT.\n    int getNumLevels() const;\n\n    //! Retrieve the number of nodes in the RCT.\n    int getNumNodes() const;\n\n    //! Computes the recall accuracy.\n    float getResultAcc(float* exactDistList, int howMany) const;\n\n    //! Retrieve the query-to-neighbor distances.\n    int getResultDists(float* result, int capacity) const;\n\n    //! Retrieve the number of distance comparisons performed.\n    unsigned long getResultDistComps() const;\n\n    //! Retrieve the indices of the query result items.\n    int getResultIndices(int* result, int capacity) const;\n\n    //! Retrieve the number of results found.\n    int getResultNumFound() const;\n\n    //! Retrieve the sample size used in the query.\n    int getResultSampleSize() const;\n\n    //! Retrieve the random number generator seed.\n    unsigned long getRNGSeed() const;\n\n    //! Save the RCT to a file.\n    int saveToFile(const char* fileName) const;\n\n    //! Set the coverage parameter.\n    bool setCoverageParameter(const float& coverageParameter);\n\n    //! Set the verbosity of the RCT.\n    void setVerbosity(const int& verbosity);\n\nprotected:\n    //! Resets the query.\n    void resetQuery();\n\n    //! Returns the distance of an item from the query.\n    float computeDistFromQuery(int itemIndex);\n\n    //! Build an RCT on data items.\n    void doBuild();\n\n    //! Performs an exact range query.\n    int doFindAllInRange(float limit, int sampleLevel);\n\n    //! Performs an approximate range query.\n    int doFindMostInRange(float limit, int sampleLevel, float scaleFactor);\n\n    //! Performs an approximate nearest-neighbor query.\n    int doFindNear(int howMany, int sampleLevel, float scaleFactor);\n\n    //! Performs an exact nearest-neighbor query.\n    int doFindNearest(int howMany, int sampleLevel);\n    \n    //! Partial quicksort.\n    int partialQuickSort(int howMany, float* distList, int* indexList, int rangeFirst, int rangeLast);\n\n    //! Print statistics related to the RCT construction.\n    void printStats() const;\n\n    //! Quicksort.\n    void quickSort(float* distList, int* indexList, int rangeFirst, int rangeLast);\n\n    //! Reserve storage for the RCT and its data.\n    void reserveStorage();\n\n    //! Accept a new query item.\n    void setNewQuery(DistData* query);\n\n    //! Setup random leveling.\n    void setupLevels(int numItems, int numParents);\n\n};\n\n#endif /* __RCT_H */\n"
  },
  {
    "path": "algorithms/RCT/src/searcher.cpp",
    "content": "/*\n * m.cpp\n *\n *  Created on: 01/10/2015\n *      Author: liwen\n */\n\n#include \"data_util.h\"\n#include \"rct.h\"\n#include <stdlib.h>\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <time.h>\n#include <sys/time.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n\n//int maxChecks;\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"dataset_filepath\",            required_argument, 0, 's'},\n\t    {\"query_filepath\" ,             required_argument, 0, 'q'},\n\t    {\"groundtruth_filepath\",        required_argument, 0, 'g'},\n\t    {\"indices_filepath\",            required_argument, 0, 'i'},\n\t    {\"output_filepath\",             required_argument, 0, 'o'},\n\t    {\"n\",                           required_argument, 0, 'n'},\n\t    {\"m\",                           required_argument, 0, 'm'},\n\t\t{\"k\",                           required_argument, 0, 'k'},\n\t\t{\"c\",                           required_argument, 0, 'c'},\n\t  };\n\t  int index;\n\t  int iarg = 0;\n\t  opterr = 1;    //getopt error message (off: 0)\n      int n;\n\t  int nq;\n      int dim;\n      int nn;\n      float scale;\n\n\t  char groundtruth_filepath[100] = \"\";\n\t  char query_filepath[100] = \"\";\n\t  char dataset_filepath[100] = \"\";\n\t  char output_filepath[100] = \"\";  //output file, currently not used.\n      char indices_filepath[100] = \"\";\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"s:q:g:i:o:n:m:k:c:h\",\n\t                       longopts, &index);\n\n\t    switch (iarg) {\n\t      case 's':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'q':\n\t        if (optarg) {\n\t        \tstrcpy(query_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'g':\n\t        if (optarg) {\n\t        \tstrcpy(groundtruth_filepath, optarg);\n\t        }\n\t        break;\n\t\t  case 'i':\n\t        if (optarg) {\n\t        \tstrcpy(indices_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'o':\n\t        if (optarg) {\n\t        \tstrcpy(output_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'k':\n\t    \t  if (optarg) {\n\t    \t  nn = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'c':\n\t    \t  if (optarg) {\n \t\t\t\tscale = atof(optarg);\n\t    \t  }\n\t    \t  break;\n\t      }\n\t  }\n\t  //read data points\n\t  DistData** points = ReadPoints(dataset_filepath, &n, &dim);\n\n\t  //read query\n\t  DistData** query = ReadPoints(query_filepath, &nq, &dim);\n\n      //read groundtruth\n      int** gnd=new int*[nq];\n      ReadGroundtruth(groundtruth_filepath, gnd, nq);\n\n\t  ofstream out;\n\t  out.open(output_filepath,ios::app);\n\t  out.setf(ios::fixed);\n\n\t  RCT* rct = new RCT();\n\t  rct->build(indices_filepath, points, n);\n\t  \n\t  timeval start;\n      gettimeofday(&start, NULL);\n  \n      int** indices = new int* [nq];\n\t  float** distances = new float* [nq];\n\t  int* nums=new int[nq];\n\t  int checks = 0;\n\t  for(int i=0;i<nq;i++)\n\t  {\n\t\tindices[i]=new int[nn];\n\t\tdistances[i] = new float[nn];\t\t\t\n\t    int num = rct->findNear(query[i], nn,scale);\n\t\tnums[i]=num;\n \t    rct->getResultIndices(indices[i], nn);\n\t\trct->getResultDists(distances[i], nn);\n\t\tchecks+=rct->checks;\n\t  }\n\t  timeval end;\n      gettimeofday(&end, NULL);\n      float search_time = diff_timeval(end, start)/nq;\n\n      float recall = compute_recall(gnd, indices,nq,nn,nums);\n\n\t  out<<recall<<\" \"<<search_time<<\" #N_\"<<checks/nq<<\" \"<<endl;\n}\n\n"
  },
  {
    "path": "algorithms/README.md",
    "content": "### Algorithms evaluated in this benchmark and our [NNS Experimental Evaluation paper](https://arxiv.org/abs/1610.02455). \n\nNote that the implementations of the algorithms **NAPP**, **VP-Tree**, **SW**, and **HNSW** are included in the `NMSLIB` directory. \n"
  },
  {
    "path": "algorithms/SGH/README.md",
    "content": "# SGH - Scalable Graph Hashing\n\nThis is a modified version of SGH. The original version can be downloaded from [here](http://cs.nju.edu.cn/lwj/), which is implemented with MATLAB. \n\nWe use the original code to generate the hashcodes of the data points and transformation parameters. We rewrite the searching part in C++ to transform the query points to binrary vectors and use the hierarchical clustering trees in FLANN (C++) to index the data binary vectors to support more efficient search.\n\n## Compile (SGH/src)\n\nTo compile SGH, go to SGH/src and run \n```\nmake\n```\nto get the executable file 'SGH'.\n\n## Index (SGH/preprocess)\n\nTo build the index of SGH, enter into preprocess folder and run \n```\nmain.m\n```\nin MATLAB to get the transformed data and transformation parameters. Alternatively, one may run\n```\nmatlab -nodisplay -nojvm -nosplash -nodesktop -r \"try, run('main.m'), end, exit(0)\"\n```\n\n## Search (SGH/script) \n\ngo to SGH/script and run \n```\nsearcher.sh \n```\nto obtain the searching performance of SGH. We use c value (e.g. the number of the visited points) to  achieve the trade-off between search speed and search quality (recall).\n\n\n"
  },
  {
    "path": "algorithms/SGH/preprocess/calculateMap.m",
    "content": "function map = calculateMap(BXTrain,BXTest,XTrain,XTest)\r\n[Ntest,~] = size(XTest);\r\n[Ntrain,~] = size(XTrain);\r\nap = zeros(1,Ntest);\r\n\r\naverageNumberNeighbor = floor(Ntrain*0.02);\r\n\r\nfor j = 1:Ntest\r\n    dist = distMat(XTest(j,:),XTrain);\r\n    [sorted,~] = sort(dist,2);\r\n    threshold = sorted(:,averageNumberNeighbor);\r\n    gnd = bsxfun(@ge,threshold,dist);\r\n    tsum = sum(gnd);\r\n    if tsum == 0\r\n        continue;\r\n    end\r\n    ham = hammingDist(BXTest(j,:), BXTrain);\r\n    [~,index] = sort(ham);\r\n    gnd = gnd(index);\r\n    count = 1:tsum;\r\n    tindex = find(gnd == 1);\r\n    ap(j) = mean(count./tindex);\r\n\r\nend\r\n\r\nmap = mean(ap,2);\r\nend\r\n\r\n"
  },
  {
    "path": "algorithms/SGH/preprocess/calculaterecall.m",
    "content": "% This function computes Top-k precision. If there is no extra space to\n% store variable Dhamm = hammingDist(BXTest,BXTrain) and Wtrue =\n% genGroundTruth(XTest,XTrain), you can use this function to compute Top-k\n% precision.\n% But this function is slower than callTopk();\nfunction [Topk search_time] = calculaterecall(BXTrain,BXTest,XTrain,XTest,k,gnd)\nnt = size(XTest,1);\n[Ntrain,~] = size(XTrain);\n\nap = zeros(nt,1);\nresult=zeros(nt,k);\nt1=cputime;\nfor i = 1:nt\n    ham = hammingDist(BXTest(i,:), BXTrain);\n    [~,index] = sort(ham);\n    index=index(1:k);\n    result(i,:)=index;\nend\nsearch_time=(cputime-t1)/nt;\n\nfor i=1:nt\n    ids=gnd(i,:)+1;\n    ap(i) = length(intersect(ids,result(i,:)))/k;\nend;\nTopk = mean(ap);"
  },
  {
    "path": "algorithms/SGH/preprocess/compactbit.m",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\nfunction cb = compactbit(b)\n%\n% b = bits array\n% cb = compacted string of bits (using words of 'word' bits)\n\n[nSamples nbits] = size(b);\nnwords = ceil(nbits/8);\ncb = zeros([nSamples nwords], 'uint8');\n\nfor j = 1:nbits\n    w = ceil(j/8);\n    cb(:,w) = bitset(cb(:,w), mod(j-1,8)+1, b(:,j));\nend"
  },
  {
    "path": "algorithms/SGH/preprocess/distMat.m",
    "content": "function D=distMat(P1, P2)\r\n%\r\n% Euclidian distances between vectors\r\n% each vector is one row\r\n  \r\nif nargin == 2\r\n    P1 = double(P1);\r\n    P2 = double(P2);\r\n    \r\n    X1=repmat(sum(P1.^2,2),[1 size(P2,1)]);\r\n    X2=repmat(sum(P2.^2,2),[1 size(P1,1)]);\r\n    R=P1*P2';\r\n    D=real(sqrt(X1+X2'-2*R));\r\nelse\r\n    P1 = double(P1);\r\n\r\n    % each vector is one row\r\n    X1=repmat(sum(P1.^2,2),[1 size(P1,1)]);\r\n    R=P1*P1';\r\n    D=X1+X1'-2*R;\r\n    D = real(sqrt(D));\r\nend\r\n\r\n\r\n"
  },
  {
    "path": "algorithms/SGH/preprocess/fvecs_read.m",
    "content": "% Read a set of vectors stored in the fvec format (int + n * float)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = fvecs_read (filename)     -> read all vectors\r\n%   v = fvecs_read (filename, n)  -> read n vectors \r\n%   v = fvecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = fvecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'float=>single');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/SGH/preprocess/genGroundTruth.m",
    "content": "function [Wtrue] = genGroundTruth(XTest,XTrain)\nnum_test = size(XTest,1);\nnum_training = size(XTrain,1);\n% rate = 2%\navrageNumberNeighbor = floor(num_training*0.02);\n\nWtrue = zeros(num_test,num_training);\ndist = distMat(XTest,XTrain);\n[sorted,~] = sort(dist,2);\nthreshold = sorted(:,avrageNumberNeighbor);\nWtrue = bsxfun(@ge,threshold,dist);\n\nend\n"
  },
  {
    "path": "algorithms/SGH/preprocess/hammingDist.m",
    "content": "function Dh=hammingDist(B1, B2)\r\n%\r\n% Compute hamming distance between two sets of samples (B1, B2)\r\n%\r\n% Dh=hammingDist(B1, B2);\r\n%\r\n% Input\r\n%    B1, B2: compact bit vectors. Each datapoint is one row.\r\n%    size(B1) = [ndatapoints1, nwords]\r\n%    size(B2) = [ndatapoints2, nwords]\r\n%    It is faster if ndatapoints1 < ndatapoints2\r\n% \r\n% Output\r\n%    Dh = hamming distance. \r\n%    size(Dh) = [ndatapoints1, ndatapoints2]\r\n\r\n% example query\r\n% Dhamm = hammingDist(B2, B1);\r\n% this will give the same result than:\r\n%    Dhamm = distMat(U2>0, U1>0).^2;\r\n% the size of the distance matrix is:\r\n%    size(Dhamm) = [Ntest x Ntraining]\r\n\r\n% loop-up table:\r\nbit_in_char = uint16([...\r\n    0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 1 2 2 3 2 3 ...\r\n    3 4 2 3 3 4 3 4 4 5 1 2 2 3 2 3 3 4 2 3 3 4 ...\r\n    3 4 4 5 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 1 2 ...\r\n    2 3 2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 ...\r\n    3 4 4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 ...\r\n    5 6 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 1 2 2 3 ...\r\n    2 3 3 4 2 3 3 4 3 4 4 5 2 3 3 4 3 4 4 5 3 4 ...\r\n    4 5 4 5 5 6 2 3 3 4 3 4 4 5 3 4 4 5 4 5 5 6 ...\r\n    3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 2 3 3 4 3 4 ...\r\n    4 5 3 4 4 5 4 5 5 6 3 4 4 5 4 5 5 6 4 5 5 6 ...\r\n    5 6 6 7 3 4 4 5 4 5 5 6 4 5 5 6 5 6 6 7 4 5 ...\r\n    5 6 5 6 6 7 5 6 6 7 6 7 7 8]);\r\n\r\nn1 = size(B1,1);\r\n[n2, nwords] = size(B2);\r\n\r\nDh = zeros([n1 n2], 'uint16');\r\nfor j = 1:n1\r\n    for n=1:nwords\r\n        y = bitxor(B1(j,n),B2(:,n));\r\n        Dh(j,:) = Dh(j,:) + bit_in_char(y+1);\r\n    end\r\nend\r\n"
  },
  {
    "path": "algorithms/SGH/preprocess/ivecs_read.m",
    "content": "% Read a set of vectors stored in the ivec format (int + n * int)\r\n% The function returns a set of output vector (one vector per column)\r\n%\r\n% Syntax: \r\n%   v = ivecs_read (filename)     -> read all vectors\r\n%   v = ivecs_read (filename, n)  -> read n vectors \r\n%   v = ivecs_read (filename, [a b]) -> read the vectors from a to b (indices starts from 1)\r\nfunction v = ivecs_read (filename, bounds)\r\n\r\n% open the file and count the number of descriptors\r\nfid = fopen (filename, 'rb');\r\n \r\nif fid == -1\r\n  error ('I/O error : Unable to open the file %s\\n', filename)\r\nend\r\n\r\n% Read the vector size\r\nd = fread (fid, 1, 'int');\r\nvecsizeof = 1 * 4 + d * 4;\r\n\r\n% Get the number of vectrors\r\nfseek (fid, 0, 1);\r\na = 1;\r\nbmax = ftell (fid) / vecsizeof;\r\nb = bmax;\r\n\r\nif nargin >= 2\r\n  if length (bounds) == 1\r\n    b = bounds;\r\n   \r\n  elseif length (bounds) == 2\r\n    a = bounds(1);\r\n    b = bounds(2);    \r\n  end\r\nend\r\n\r\nassert (a >= 1);\r\nif b > bmax\r\n  b = bmax;\r\nend\r\n\r\nif b == 0 | b < a\r\n  v = [];\r\n  fclose (fid);\r\n  return;\r\nend\r\n\r\n% compute the number of vectors that are really read and go in starting positions\r\nn = b - a + 1;\r\nfseek (fid, (a - 1) * vecsizeof, -1);\r\n\r\n% read n vectors\r\nv = fread (fid, (d + 1) * n, 'int=>double');\r\nv = reshape (v, d + 1, n);\r\n\r\n% Check if the first column (dimension of the vectors) is correct\r\nassert (sum (v (1, 2:end) == v(1, 1)) == n - 1);\r\nv = v (2:end, :);\r\nv=v';\r\nfclose (fid);\r\n\r\n"
  },
  {
    "path": "algorithms/SGH/preprocess/ivecs_write.m",
    "content": "% This function writes a vector from a file in the ivecs format\n\nfunction ivecs_write (filename, v)\n\n% open the file and count the number of descriptors\nfid = fopen (filename, 'wb');\nd = size (v, 1);\nn = size (v, 2);\n\nfor i = 1:n\n  \n  % first write the vector size\n  count = fwrite (fid, d, 'int');\n\n  if count ~= 1 \n    error ('Unable to write vector dimension: count !=1 \\n');\n  end\n\n  % write the vector components\n  count = fwrite (fid, v(:,i), 'int');\n\n  if count ~= d \n    error ('Unable to write vector elements: count !=1 \\n');\n  end\nend\n\nfclose (fid);\n"
  },
  {
    "path": "algorithms/SGH/preprocess/main.m",
    "content": "data_name='audio';\ndata_path=['../../../data/' data_name '_base.fvecs'];\n\nindex_path=['../index/' data_name];\nmkdir(index_path);\n\nparams_path=[index_path '/' data_name '_params.SGH'];\nbinary_path=[index_path '/' data_name '_B1.SGH'];\n\nbit=8;\nrun_SGH(data_path, params_path, binary_path, bit);\n"
  },
  {
    "path": "algorithms/SGH/preprocess/run_SGH.m",
    "content": "function run_SGH(data_path, params_path, binary_path, bit)\nXTrain = fvecs_read(data_path);\nXTrain = double(XTrain');\nn = size(XTrain,1);\n\ntic;\n\nm = 300;\nsample = randperm(n);\ncenter = XTrain(sample(1:m),:);\nKTrain = distMat(XTrain,center);\nKTrain = KTrain.*KTrain;\ndelta = mean(mean(KTrain,2));\nKTrain = exp(-KTrain/(2*delta));\n\nbias = mean(KTrain);\nKXTrain = KTrain-repmat(bias,n,1);\n    \n%% Construct PX and QX\nFnormX = sum(XTrain.*XTrain,2);\nrho = 2;\nFnormX = exp(-FnormX/rho);\nalpha = sqrt(2*(exp(1)-exp(-1))/rho);\npart = bsxfun(@times,alpha*XTrain,FnormX);\n%PX = [part,sqrt(exp(1)+exp(-1))*FnormX, 1*ones(n,1)];\nclear XTrain;\n\nPX=zeros(size(part,1),size(part,2)+2);\nQX = zeros(size(part,1),size(part,2)+2);\n\nPX(:,1:size(part,2)) = part;\ntmp=sqrt(exp(1)+exp(-1))*FnormX;\nPX(:,size(part,2)+1)=tmp;\nPX(:,size(part,2)+2)=1*ones(n,1);\n\n\nQX(:,1:size(part,2))= part;\nQX(:,size(part,2)+1)=tmp;\nQX(:,size(part,2)+2)=-1*ones(n,1);\nclear FnormX part tmp;\nprepare_time=toc;\n\ntic;\n[Wx] = trainSGH(KXTrain,PX,QX,bit);\nXX = KXTrain*Wx;\nX=zeros(size(XX));\nX(XX>=0)=1;\nB1=compactbit(X>0);\nclear X;\nindex_time= toc;\n    \nfile = fopen(params_path, 'wb');\nfprintf(file,'%d\\n',bit);\nfprintf(file,'%f\\n',delta);\n    \nfor j=1:m %center\n    p_=center(j,:);\n    fprintf(file,'%f ',p_);\n    fprintf(file,'\\n');\nend\nfprintf(file,'%f ',bias);\nfprintf(file,'\\n');\nfor j=1:m\n    m_=Wx(j,:);\n    fprintf(file,'%f ',m_);\n    fprintf(file,'\\n');\nend\nfclose(file);\n    \n    %%%%%%%%%%%%%%%%%%%%\n    % write B1\nivecs_write(binary_path,B1');\n    \ndisp(['indextime: ' num2str(index_time) ' (s)']);\n\nend\n"
  },
  {
    "path": "algorithms/SGH/preprocess/sqdist.m",
    "content": "function d=sqdist(a,b)\r\n% SQDIST - computes squared Euclidean distance matrix\r\n%          computes a rectangular matrix of pairwise distances  ABеĳɶԾ\r\n% between points in A (given in columns) and points in B\r\n\r\n% NB: very fast implementation taken from Roland Bunschoten\r\n\r\n%aa = sum(a.*a,1); aиݵĳȣ  bb = sum(b.*b,1); ab = a'*b;   abڻ\r\n%d = abs(repmat(aa',[1 size(bb,2)]) + repmat(bb,[size(aa,2) 1]) - 2*ab);\r\n\r\n%aa = sum(a.*a,1)'; bb = sum(b.*b,1);\r\n%d = abs(repmat(sum(a.*a,1)',[1 size(b,2)]) + repmat(sum(b.*b,1),[size(a,2) 1]) - 2*a'*b);\r\n\r\nd = bsxfun(@plus, -2*a'*b, sum(b.*b,1));\r\nd = abs(bsxfun(@plus, d', sum(a.*a,1)))';"
  },
  {
    "path": "algorithms/SGH/preprocess/trainSGH.m",
    "content": "function [Wx] = trainSGH(X,PX,PY,nBit)\r\ndX = size(X, 2);\r\n\r\ngamma = 1e-6;\r\n\r\nA0 = (X'*PX)*(X'*PY)';\r\nA1 = nBit*A0;\r\nZ = X'*X+gamma*eye(dX);\r\n\r\nWx = zeros(dX,nBit);\r\n\r\nfor i=1:nBit\r\n    [wx, ~] = eigs(A1,Z, 1,'la');  \r\n    vx = X'*sign(X*wx);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         \r\n    A1 = A1 - vx*vx';\r\n    Wx(:, i) = wx;\r\nend\r\nindex = randperm(nBit);\r\n% We set iter = 1 for tradeoff between accuracy and speed. For small\r\n% dataset, you can set iter equaling to a larger number to achieve \r\n% high accuracy.\r\niter = 1;\r\nfor j = 1:iter\r\n    for i = 1:nBit\r\n        vx = X'*sign(X*Wx(:,index(i)));\r\n        A1 = A1 + vx*vx';   \r\n        [wx, ~] = eigs(A1,Z, 1,'la');  \r\n        vx = X'*sign(X*wx);\r\n        Wx(:,index(i)) = wx;\r\n        A1 = A1 - vx*vx';\r\n    end\r\nend\r\nend"
  },
  {
    "path": "algorithms/SGH/script/searcher.sh",
    "content": "data_path=\"../../../data\"\nresult_path=\"../results\"\nmkdir ${result_path}\n\nfor data in \"audio\"\ndo\n\ndataset_path=${data_path}/${data}_base.fvecs\nquery_path=${data_path}/${data}_query.fvecs\ngnd_path=${data_path}/${data}_groundtruth.ivecs\nparams_path=../index/${data}/${data}_params.SGH\ndataset_binary_path=../index/${data}/${data}_B1.SGH\nk=20\nradis=-2\n\nfor c in 100 500 1000\ndo\n\n../src/SGH -s ${dataset_path} -q ${query_path} -g ${gnd_path} -c $c -t 300 -k $k -r ${radis} -b \"${dataset_binary_path}\" -p \"${params_path}\" >> \"${result_path}/${data}.txt\"\n\ndone\n\ndone\n"
  },
  {
    "path": "algorithms/SGH/src/Makefile",
    "content": "##############\n# Make the SGH project\n##############\n\nPROD\t:= DEBUG\nOPT     := -O3 -march=native #-ffast-math \nVERSION := \\\"0.1_${PROD}\\\"\nTARGETS := SGH\nDEFINES := #-DREAL_PROF\nSRCS    := SGH.cpp\n\nCCFLAGS = ${OPT} -Wno-deprecated -ggdb -D${PROD} ${DEFINES} -I./ -DVERSION=${VERSION}\nLDFLAGS = ${OPT} -ggdb  \nLIBS    = \nCC\t= g++ \nOBJS    := ${SRCS:.cpp=.o}\n\n\n.PHONY: all clean distclean \nall:: ${TARGETS} \n\nsrs: SGH.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\n${OBJS}: %.o: %.cpp\n\t${CC} ${CCFLAGS} -o $@ -c $< \n\nclean:: \n\t-rm -f *~ *.o ${TARGETS}\n\ndistclean:: clean\n"
  },
  {
    "path": "algorithms/SGH/src/SGH.cpp",
    "content": "#include \"data_util.h\"\n#include \"SGH.h\"\n#include \"hammingDist.h\"\n#include \"eval.h\"\n\n#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <time.h>\n#include <sys/time.h>\n#include <stdexcept>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvector<vector <float> > points;\nvector<vector <float > > query;\nvector<vector <int> > gnds;\n//vector<int> maxChecks;\n\nint n;\nint nq;\nint dim;\nint k;\nint radis;\nint sample_size;\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n\tconst struct option longopts[] ={\n\t    {\"help\",                        no_argument,       0, 'h'},\n\t    {\"dataset_filepath\",            required_argument, 0, 's'},\n\t    {\"query_filepath\" ,             required_argument, 0, 'q'},\n\t    {\"groundtruth_filepath\",        required_argument, 0, 'g'},\n\t\t{\"k\",                           required_argument, 0, 'k'},\n\t\t{\"c\",                           required_argument, 0, 'c'},\n\t\t{\"t\",                           required_argument, 0, 't'},\n\t\t{\"r\",                           required_argument, 0, 'r'},\n\t    {\"dataset_binary_path\",         required_argument, 0, 'b'},\n\t    {\"params_path\",                 required_argument, 0, 'p'},\n\t  };\n\t  int ind;\n\t  int iarg = 0;\n\t  opterr = 1;\n\t  int checks;\n\t  char groundtruth_filepath[100] = \"\";\n\t  char query_filepath[100] = \"\";\n\t  char dataset_filepath[100] = \"\";\n\t  char dataset_binary_path[100] = \"\";\n\t  char params_path[100] = \"\";\n\t  //char checks_path[20] =\"\";\n\n\t  while (iarg != -1) {\n\t    iarg = getopt_long(argc, argv, \"s:q:g:k:r:t:c:b:p:h\",\n\t                       longopts, &ind);\n\n\t    switch (iarg) {\n\t      case 's':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'q':\n\t        if (optarg) {\n\t        \tstrcpy(query_filepath, optarg);\n\t        }\n\t        break;\n\t      case 'g':\n\t        if (optarg) {\n\t        \tstrcpy(groundtruth_filepath, optarg);\n\t        }\n\t        break;\n\t\t  case 'k':\n\t    \t  if (optarg) {\n\t    \t  k = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'c':\n\t    \t  if (optarg) {\n\t\t\t  checks = atoi(optarg);\n\t\t\t  //strcpy(checks_path, optarg);\n\t    \t  }\n\t    \t  break;\n\t\t  case 'r':\n\t    \t  if (optarg) {\n\t    \t  radis = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      case 'b':\n\t        if (optarg) {\n\t        \tstrcpy(dataset_binary_path, optarg);\n\t        }\n\t        break;\n\t\t  case 't':\n\t    \t  if (optarg) {\n\t    \t  sample_size = atoi(optarg);\n\t    \t  }\n\t    \t  break;\n\t      case 'p':\n\t        if (optarg) {\n\t        \tstrcpy(params_path, optarg);\n\t        }\n\t        break;\n\t        }\n\t      }\n\n\t  ///*\n\t  ReadPoints(dataset_filepath, &points, &n, &dim);\n\n\t  ReadPoints(query_filepath, &query,&nq, &dim);\n      int nn;\n\t  ReadGroundtruth(groundtruth_filepath, &gnds, &nq, &nn);\n\n\t  //ReadChecks(checks_path,&maxChecks);\n\n\t  //read SH params\n\t  SGH SGH_;\n\t  SGH_.ReadSGHParams(params_path,sample_size, dim);\n\t  int nbits = SGH_.nbits;\n\n\t  vector<vector<unsigned> > B1;\n\t  ReadB1(dataset_binary_path,&B1,n);\n\t  //SH_.compressSH(&points,&B1);\n\n\t  HierarchicalClusteringIndex HCI_ ;\n\t  HCI_.set_params(B1,32,4,100);\n\t  if(radis==-2)\n\t  \tHCI_.buildIndex();\n\n\t  timeval start;\n      gettimeofday(&start, NULL);\n\n\t  // compress query\n\t  vector<vector<unsigned> > B2;\n\t  SGH_.compressSGH(&query,&B2);\n\n\t  timeval end;\n\t  gettimeofday(&end, NULL);\n\t  double transform_time = diff_timeval(end, start);\n\n\t  gettimeofday(&start, NULL);\n\t  vector<vector<int> > indices;\n\t  vector<vector<int> > dists;\n\t  if(radis==-1)\n\t    hammingDist(&B2,&B1,&indices,checks);\n\t  else if(radis==-2)\n\t\tHCI_.knnSearch(B2,indices,dists, checks,checks);\n\t  else\n\t\thammingDist_ByRange(&B2,&B1,&indices,radis);\n\n      \t\t// get results after re-ranking\n\t  vector<vector<int> > results;\n\t  results = Search(&points, &query, &indices, k);\n      gettimeofday(&end, NULL);\n      double search_time = diff_timeval(end, start)+ transform_time ;\n\n\t  float recall = compute_recall(&gnds, &results);\n      cout<<recall<<\" \"<< search_time/nq << \" #N_\" << checks <<\" #bit_\"<< nbits<<\" #radis_\"<<radis<<\" \"<< endl;\n}\n\n\n\n\n"
  },
  {
    "path": "algorithms/SGH/src/SGH.h",
    "content": "#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n#ifndef SGH_H_\n#define SGH_H_\n\nclass SGH\n{\n\tpublic:\n\tint nbits;\n\tfloat delta;\n\tint m;\n\tvector<vector<float> > center;\n\tvector<float> bias;\n\tvector<vector<float> > Wx;\n    \n\tvoid ReadSGHParams(string filename, int m_, int dim)\n\t{\n\t\tm = m_;\n\t\tFILE* fp=fopen(filename.c_str(),\"r\");\n\t\t//read nbits\n\t\tfscanf(fp,\"%d\",&nbits);\n\n\t\t// read delta\n\t\tfscanf(fp,\"%f\",&delta);\n\t\t//read center\n\t\tfor (int i=0;i<m;i++)\n\t\t{\n\t\t\tvector<float> tmp;\n\t\t\ttmp.resize(dim);\n\t\t\tfor(int d = 0; d < dim; ++d) \n\t\t\t{\n\t\t   \t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t}\n\t\t\tcenter.push_back(tmp);\n\t\t}\n\t\n\t\t//read bias\n\t\tbias.resize(m);\n\t\tfor (int i=0; i<m; i++)\n\t\t{\n\t\t\tfscanf(fp,\"%f\",&bias[i]);\n\t\t}\n\t\t\n\t\t//read Wx\n\t\tfor (int i=0; i<m; i++)\n\t\t{\n\t\t\tvector<float> tmp;\n\t\t\ttmp.resize(nbits);\n\t\t\tfor(int d = 0; d < nbits; ++d)\n\t\t\t{\n\t\t\t\tfscanf(fp,\"%f\",&tmp[d]);\n\t\t\t}\n\t\t\tWx.push_back(tmp);\n\t\t}\n\t}\n\t\n\tvoid compactBits(vector<vector<float> > U,vector<vector<unsigned> >* B)\n\t{\n\t\t//U n*nbits\n\t\tint n = U.size();\n\t\tint nbits = U.at(0).size();\n\t\tfor(int i=0;i<n;i++)\n\t\t{\n\t\t\tvector<unsigned> B_;\n\t\t\tunsigned tmp=0;\n\t\t\tfor(int j=0;j<=nbits;j++)\n\t\t\t{\n\t\t\t\tif(j==nbits)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(j%8==0 && j!=0)\n\t\t\t\t{\n\t\t\t\t\tB_.push_back(tmp);\n\t\t\t\t\ttmp=0;\n\t\t\t\t}\n\t\t\t\tif(U.at(i)[j]>0)\n\t\t\t\t{\n\t\t\t\t\tunsigned pos=1<<(j%8);\n\t\t\t\t\ttmp |= pos;\n\t\t\t\t}\n\t\t\t}\n\t\t\tB->push_back(B_);\n\t\t}\n\t}\n\n\tvoid compressSGH(vector<vector<float> >* X, vector<vector<unsigned> >* B)\n\t{\n\t\tint nq = X->size();\n\t\tint dim = X->at(0).size();\n\n\t\tvector<vector<float> > KX;\n\t\tKX.resize(nq);\n\t\tvector<vector<float> > Y;\n\t\tfor(int i=0; i<nq; i++)\n\t\t{\n\t\t\tKX.at(i).resize(m);\n\t\t\tfor(int j=0; j<m; j++)\n\t\t\t{\n\t\t\t\tfloat tmp = 0.0;\n\t\t\t\tfor (int t=0;t<dim;t++)\n\t\t\t\t\ttmp += pow(X->at(i)[t] - center[j][t],2);\n\t\t\t\tKX[i][j] = exp((-1)*tmp/(2*delta))-bias[j];\n\t\t\t}\n\n\t\t\tvector<float> Y_;\n\t\t\tfor(int t=0; t<nbits; t++)\n\t\t\t{\n\t\t\t\tfloat tmp = 0.0;\n\t\t\t\tfor(int j=0; j<m; j++)\n\t\t\t\t{\n\t\t\t\t\ttmp+= KX[i][j]*Wx[j][t];\n\t\t\t\t}\n\t\t\t\tY_.push_back(tmp);\n\t\t\t}\n\t\t\tY.push_back(Y_);\n\t\t}\n\t\tcompactBits(Y,B);\n\t}\n};\n\n\n\n#endif /* SGH_H_ */\n"
  },
  {
    "path": "algorithms/SGH/src/center_chooser.h",
    "content": "#include \"random.h\"\n//#include \"dist.h\"\n#include \"char_bit_cnt.h\"\n\nclass CenterChooser\n{\n\tvector<vector<unsigned>* > dataset_;\npublic:\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n\t\tsize_t size_ = dataset.size();\n\n\t\tdataset_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t\tdataset_.at(i) = &dataset.at(i);\n\n    }\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = dataset_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = dataset_.at(p1)->at(t) ^ dataset_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t} //*/\n\n\tvoid chooseCenters(int k, int* indices, int indices_length, int* centers, int& centers_length)\n\t{\n\t\tUniqueRandom r(indices_length);\n\n        int index;\n        for (index=0; index<k; ++index) {\n            bool duplicate = true;\n            int rnd;\n            while (duplicate) {\n                duplicate = false;\n                rnd = r.next();\n                if (rnd<0) {\n                    centers_length = index;\n                    return;\n                }\n\n                centers[index] = indices[rnd];\n\n                for (int j=0; j<index; ++j) {\n                    int sq = get_distance(centers[index], centers[j]);//(dataset_.at(centers[index]), dataset_.at(centers[j]));\n                    if (sq <1e-16 ) {//<1e-16\n                        duplicate = true;\n                    }\n                }\n            }\n        }\n        centers_length = index;\n\t}\n};\n"
  },
  {
    "path": "algorithms/SGH/src/char_bit_cnt.h",
    "content": "\nunsigned char_bit_cnt [] = {\n0x0,\n0x1,\n0x1,\n0x2,\n0x1,\n0x2,\n0x2,\n0x3,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x1,\n0x2,\n0x2,\n0x3,\n0x2,\n0x3,\n0x3,\n0x4,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x2,\n0x3,\n0x3,\n0x4,\n0x3,\n0x4,\n0x4,\n0x5,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x3,\n0x4,\n0x4,\n0x5,\n0x4,\n0x5,\n0x5,\n0x6,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x4,\n0x5,\n0x5,\n0x6,\n0x5,\n0x6,\n0x6,\n0x7,\n0x5,\n0x6,\n0x6,\n0x7,\n0x6,\n0x7,\n0x7,\n0x8,\n0};\n"
  },
  {
    "path": "algorithms/SGH/src/data_util.h",
    "content": "#include <cstring>\n#include <malloc.h>\n#include <vector>\n#include <cmath>\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <stdexcept>\n//#include \"Params.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nvoid transpose(vector<vector<float> > X,vector<vector<float> >* Y)\n{\n\n\tint dim=X.size();\n\tint n=X[0].size();\n\n\tfor(int i=0;i<n;i++)\n\t{\n\t\tvector<float> y_;\n\t\tfor(int j=0;j<dim;j++)\n\t\t{\n\t\t\ty_.push_back(X[j][i]);\n\t\t}\n\t\tY->push_back(y_);\n\t}\n}\n\n\nvoid ReadPoints(char* filepath,vector<vector<float> >* points, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(float)*dim));\n\t*d = dim;\n\t*len = n;\n\tpoints->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&dim, sizeof(int),1,dfp);\n\t\tpoints->at(i).resize(dim);\n    \tfor(int j = 0; j < dim; ++j) {\n    \t\tfloat buffer;\n\t\t\tfread(&(buffer), sizeof(float),1,dfp);\n    \t\tpoints->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\nvoid ReadGroundtruth(char* filepath, vector<vector<int> >* gnds, int* len, int* d)\n{\n\tFILE * dfp = fopen(filepath, \"rb\");\n\tint k;\n\tfread(&k,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(int)*k));\n\t*d = k;\n\t*len = n;\n\tgnds->resize(n);\n\tfor (int i=0;i<n;i++)\n\t{\n\t\tfread(&k, sizeof(int),1,dfp);\n\t\tgnds->at(i).resize(k);\n    \tfor(int j = 0; j < k; ++j) {\n    \t\tint buffer;\n\t\t\tfread(&(buffer), sizeof(int),1,dfp);\n    \t\tgnds->at(i)[j] = buffer;\n    \t}\n\t}\n}\n\nvoid ReadB1(const string& filename, vector<vector<unsigned> >* B1,int n) {//\n  ifstream input;\n\tinput.open(filename.c_str(), ios::binary);\n  if(!input.good()) {\n    throw std::logic_error(\"Invalid filename\");\n  }\n  B1->resize(n);\n  int cbits;\n  for(int pid = 0; pid < n; ++pid) {\n    input.read((char*)&cbits, sizeof(cbits));\n    if(cbits <= 0) {\n      throw std::logic_error(\"Bad file content: non-positive dimension\");\n    }\n    B1->at(pid).resize(cbits);\n    for(int d = 0; d < cbits; ++d) {\n      int buffer;\n      input.read((char*)&(buffer), sizeof(int));\n      B1->at(pid)[d] = (unsigned)buffer;//(unsigned)\n    }\n  }\n}\n\n\nvoid ReadChecks(const string& filename, vector<int>* checks) {\n  FILE *fp = fopen(filename.c_str(), \"r\");\n  int n;\n  fscanf(fp, \"%d \", &n);\n  checks->resize(n);\n  int tmp;\n  for (int i = 0; i < n; ++i) {\n    fscanf(fp, \"%d \", &tmp);\n    checks->at(i)=tmp;\n  }\n}\n\n\n\n\n\n"
  },
  {
    "path": "algorithms/SGH/src/dynamic_bitset.h",
    "content": "#include <limits.h>\n\nclass DynamicBitset\n{\npublic:\n    /** @param only constructor we use in our code\n     * @param the size of the bitset (in bits)\n     */\n    DynamicBitset(size_t size)\n    {\n        resize(size);\n        reset();\n    }\n\n    /** Sets all the bits to 0\n     */\n    void clear()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    void reset()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    \n    void resize(size_t size)\n    {\n        size_ = size;\n        bitset_.resize(size / cell_bit_size_ + 1);\n    }\n    size_t size() const\n    {\n        return size_;\n    }\n\n\tvoid set(size_t index)\n    {\n        bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);\n    }\n\n    /** @param check if a bit is set\n     * @param index the index of the bit to check\n     * @return true if the bit is set\n     */\n    bool test(size_t index) const\n    {\n        return (bitset_[index / cell_bit_size_] & (size_t(1) << (index % cell_bit_size_))) != 0;\n    }\n\nprivate:\n    std::vector<size_t> bitset_;\n    size_t size_;\n    static const unsigned int cell_bit_size_ = CHAR_BIT * sizeof(size_t);\n};\n"
  },
  {
    "path": "algorithms/SGH/src/eval.h",
    "content": "/*\n * eval.h\n *\n *  Created on: 14/10/2015\n *      Author: liwen\n */\n\n#ifndef EVAL_H_\n#define EVAL_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n#include <set>\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j] == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k])\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k])\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tfloat test_distance = get_distance(points->at(results->at(i)[j]),query->at(i));\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<int> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<int> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j]) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_recall(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results, float* recall)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tcout<<\"nq:\"<<nq<<\" \"<<nn<<endl;\n\tint avg = 0;\n\tfor (size_t i=0; i<nq; ++i) {\n\t\tfor (size_t j=0; j<nn; ++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (results->at(i)[j].id == gnds->at(i)[k]) {\n\t\t\t\t\tavg ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn float(avg)/(nn*nq);\n}\n\nfloat compute_mean_reciprocal_rank(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t k=0;k<nn;k++)\n\t\t{\n\t\t\tif(gnds->at(i)[0]==results->at(i)[k].id)\n\t\t\t{\n\t\t\t\trate +=1.0/(k+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_number_closer(vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat avg = 0.0;\n\tfor (size_t i=0; i<nq; ++i)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(size_t j=0;j<nn;j++)\n\t\t{\n\t\t\tfor(size_t k=0;k<nn;k++)\n\t\t\t{\n\t\t\t\tif(gnds->at(i)[j]==results->at(i)[k].id)\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(k+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/nn;\n\t}\n\treturn avg/nq;\n}\n\nfloat compute_relative_distance_error(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat count = 0.0;\n\tfor (size_t i=0; i<nq; ++i) \n\t{\n\t\tfloat sum=0.0;\n\n\t\tfor (size_t j=0;j<nn;++j)\n\t\t{\n\t\t\tfloat min_distance= get_distance(points->at(gnds->at(i)[j]),query->at(i));\n\t\t\tfloat test_distance=results->at(i)[j].dist;\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /nn;\n\t}\n\treturn count/ nq;\n}\n\n\nfloat compute_mean_average_precision (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results)\n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(int j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\tfound ++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/nn;\n\t}\n\treturn sum / nq;\n}\n\nfloat compute_discounted_culmulative_gain (vector<vector<int> >* gnds, vector<vector<E_Neighbor> >* results) \n{\n\tsize_t nq = results->size();\n\tsize_t nn = results->at(0).size();\n\tfloat sum = 0;\n\tfor (size_t i = 0; i < nq; ++i) \n\t{\n\t\tfloat rate = 0.0;\n\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <nn; ++j) {\n      \t\tgnd_row.insert(gnds->at(i)[j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <nn; j++)\n\t\t{\n      \t\tif(gnd_row.find(results->at(i)[j].id) != gnd_row.end()) \n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / nq;\n}\n\n#endif /* EVAL_H_ */\n"
  },
  {
    "path": "algorithms/SGH/src/hammingDist.h",
    "content": "/*\n * hammingDist.h\n *\n *  Created on: 14/10/2015\n *      Author: liwen\n */\n\n#ifndef HAMMINGDIST_H_\n#define HAMMINGDIST_H_\n\n#include <vector>\n#include <cmath>\n#include <cstring>\n#include <malloc.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <iostream>\n#include <fstream>\n//#include \"char_bit_cnt.h\"\n#include \"hierarchical_clustering_index.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\nstruct B_Neighbor{\n\tint id;\n\tint dist;\n\tB_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n\tint get_id(){return id;}\n};\n\nstruct E_Neighbor{\n\tint id;\n\tfloat dist;\n\tE_Neighbor()\n\t{\n\t\tid=0;\n\t\tdist=-1;\n\t}\n};\n\nfloat get_distance(vector<float> point, vector<float> query)\n{\n\tint dim = query.size();\n\tfloat dist=0.0;\n\tfor(int i=0; i<dim; i++)\n\t{\n\t\tdist += pow(point[i]-query[i],2);\n\t}\n\treturn dist;\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> d_;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\t\t\td_.push_back(tmp);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid UpdatePriorityList_Binary (B_Neighbor *BList, B_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvoid hammingDist(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* Dist,int nn)\n{\n\tint len = nn;\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<B_Neighbor> BNN(len);\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\n\t\t\tB_Neighbor b_;\n\t\t\tb_.id=j;\n\t\t\tb_.dist=tmp;\n\n\t\t\tUpdatePriorityList_Binary ( &BNN[0], b_, len);\n\t\t}\n\t\tvector<int> d_;\n\t\tfor(int j=0;j<len;j++)\n\t\t{\n\t\t\td_.push_back(BNN.at(j).id);\n\t\t}\n\t\tDist->push_back(d_);\n\t}\n}\n\nvoid hammingDist_ByRange(vector<vector<unsigned> >* B2,vector<vector<unsigned> >* B1, vector<vector<int> >* IDs,int radis)\n{\n\tint n = B1->size();\n\tint nq = B2->size();\n\tint cbits = B2->at(0).size();\n\n\tfor(int i=0; i<nq; i++)//nq\n\t{\n\t\tvector<int> BNN;\n\t\tfor(int j=0; j<n; j++)\n\t\t{\n\t\t\tint tmp = 0;\n\t\t\tfor(int t=0; t<cbits; t++)\n\t\t\t{\n\t\t\t\tunsigned y = B1->at(j)[t] ^ B2->at(i)[t];\n\t\t\t\ttmp += char_bit_cnt[y];\n\t\t\t}\n\t\t\tif(tmp<=radis)\n\t\t\t\tBNN.push_back(j);\n\t\t}\n\t\tIDs->push_back(BNN);\n\t}\n}\n\nvoid UpdatePriorityList_Euclidean (E_Neighbor *BList, E_Neighbor tmp, int len) {\n\t// find the location to insert\n\tint j;\n    int i = len;\n    while (i > 0) {\n        j = i - 1;\n        if (BList[j].dist <= tmp.dist && BList[j].dist!=-1) break;\n        i = j;\n    }\n\tif(i < len)\n\t{\n    \tj = len-1;\n    \twhile (j > i) {\n        \tBList[j] = BList[j-1];\n        \t--j;\n    \t}\n    \tBList[i] = tmp;\n\t}\n}\n\nvector<vector<int> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> >* IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<int> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<int> result;\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs->at(i).size();\n\t\tvector<int> ids_ = IDs->at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\tfor(int j=0;j<K;j++)\n\t\t{\n\t\t\tresult.push_back(ENN[j].id);\n\t\t}\n\t\tresults.push_back(result);\n\t}\n\treturn results;\n}\n\n\n/*\nvector<vector<E_Neighbor> > Search(vector<vector<float> >* points, vector<vector<float> >* query, vector<vector<int> > IDs, int K)\n{\n\tint nq=query->size();\n\tvector<vector<E_Neighbor> > results;\n\tfor(int i=0; i<nq; i++)\n\t{\n\t\tvector<E_Neighbor> ENN(K);\n\t\tint len = IDs.at(i).size();\n\t\tvector<int> ids_ = IDs.at(i);\n\t\tfor(int j=0; j<len; j++)\n\t\t{\n\t\t\tfloat dist = get_distance(query->at(i),points->at(ids_.at(j)));\n\t\t\tE_Neighbor e_;\n\t\t\te_.id=ids_.at(j);\n\t\t\te_.dist=dist;\n\t\t\tUpdatePriorityList_Euclidean (&ENN[0], e_, K);\n\t\t}\n\t\t//for(int j=0;j<K;j++)\n\t\t//{\n\t\t\t//cout<<ENN[j].id<<\" \"<<ENN[j].dist<<endl;\n\t\t//}\n\t\tresults.push_back(ENN);\n\t}\n\treturn results;\n}\n*/\n\n#endif /* HAMMINGDIST_H_ */\n"
  },
  {
    "path": "algorithms/SGH/src/heap.h",
    "content": "#include <algorithm>\n#include <vector>\n\n\ntemplate <typename T>\nclass Heap\n{\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<T> heap;\n    int length;\n\n    /**\n     * Number of element in the heap\n     */\n    int count;\n\n\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    Heap(int size)\n    {\n        length = size;\n        heap.reserve(length);\n        count = 0;\n    }\n\n    /**\n     *\n     * Returns: heap size\n     */\n    int size()\n    {\n        return count;\n    }\n\n    /**\n     * Tests if the heap is empty\n     *\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size()==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        heap.clear();\n        count = 0;\n    }\n\n    struct CompareT : public std::binary_function<T,T,bool>\n    {\n        bool operator()(const T& t_1, const T& t_2) const\n        {\n            return t_2 < t_1;\n        }\n    };\n\n    /**\n     * Insert a new element in the heap.\n     *\n     * We select the next empty leaf node, and then keep moving any larger\n     * parents down until the right location is found to store this element.\n     *\n     * Params:\n     *     value = the new element to be inserted in the heap\n     */\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (count == length) {\n            return;\n        }\n\n        heap.push_back(value);\n        static CompareT compareT;\n        std::push_heap(heap.begin(), heap.end(), compareT);\n        ++count;\n    }\n\n\n\n    /**\n     * Returns the node of minimum value from the heap (top of the heap).\n     *\n     * Params:\n     *     value = out parameter used to return the min element\n     * Returns: false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (count == 0) {\n            return false;\n        }\n\n        value = heap[0];\n        static CompareT compareT;\n        std::pop_heap(heap.begin(), heap.end(), compareT);\n        heap.pop_back();\n        --count;\n\n        return true;  /* Return old last node. */\n    }\n};\n\n\ntemplate <typename T>\nclass IntervalHeap\n{\n\tstruct Interval\n\t{\n\t\tT left;\n\t\tT right;\n\t};\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<Interval> heap;\n    size_t capacity_;\n    size_t size_;\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    IntervalHeap(int capacity) : capacity_(capacity), size_(0)\n    {\n        heap.resize(capacity/2 + capacity%2 + 1); // 1-based indexing\n    }\n\n    /**\n     * @return Heap size\n     */\n    size_t size()\n    {\n        return size_;\n    }\n\n    /**\n     * Tests if the heap is empty\n     * @return true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size_==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        size_ = 0;\n    }\n\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (size_ == capacity_) {\n            return;\n        }\n\n        // insert into the root\n        if (size_<2) {\n        \tif (size_==0) {\n        \t\theap[1].left = value;\n        \t\theap[1].right = value;\n        \t}\n        \telse {\n        \t\tif (value<heap[1].left) {\n        \t\t\theap[1].left = value;\n        \t\t}\n        \t\telse {\n        \t\t\theap[1].right = value;\n        \t\t}\n        \t}\n        \t++size_;\n        \treturn;\n        }\n\n        size_t last_pos = size_/2 + size_%2;\n        bool min_heap;\n\n        if (size_%2) { // odd number of elements\n        \tmin_heap = (value<heap[last_pos].left)? true : false;\n        }\n        else {\n        \t++last_pos;\n        \tmin_heap = (value<heap[last_pos/2].left)? true : false;\n        }\n\n        if (min_heap) {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && value < heap[par].left) {\n        \t\theap[pos].left = heap[par].left;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].left = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].right = heap[last_pos].left;\n        \t}\n        }\n        else {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && heap[par].right < value) {\n        \t\theap[pos].right = heap[par].right;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].right = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].left = heap[last_pos].right;\n        \t}\n        }\n    }\n\n\n    /**\n     * Returns the node of minimum value from the heap\n     * @param value out parameter used to return the min element\n     * @return false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].left;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].left;\n\n        if (size_ % 2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].left = heap[last_pos].right;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child+1].left < heap[child].left) ++child; // pick the child with min\n\n        \tif (!(heap[child].left<elem)) break;\n\n        \theap[crt].left = heap[child].left;\n        \tif (heap[child].right<elem) {\n        \t\tstd::swap(elem, heap[child].right);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].left = elem;\n        return true;\n    }\n\n\n    /**\n     * Returns the element of maximum value from the heap\n     * @param value\n     * @return false if heap empty\n     */\n    bool popMax(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].right;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].right;\n\n        if (size_%2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].right = heap[last_pos].left;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child].right < heap[child+1].right) ++child; // pick the child with max\n\n        \tif (!(elem < heap[child].right)) break;\n\n        \theap[crt].right = heap[child].right;\n        \tif (elem<heap[child].left) {\n        \t\tstd::swap(elem, heap[child].left);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].right = elem;\n        return true;\n    }\n\n\n    bool getMin(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].left;\n    \treturn true;\n    }\n\n\n    bool getMax(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].right;\n    \treturn true;\n    }\n};\n\n\ntemplate <typename T>\nclass BoundedHeap\n{\n\tIntervalHeap<T> interval_heap_;\n\tsize_t capacity_;\npublic:\n\tBoundedHeap(size_t capacity) : interval_heap_(capacity), capacity_(capacity)\n\t{\n\n\t}\n\n    /**\n     * Returns: heap size\n     */\n    int size()\n    {\n        return interval_heap_.size();\n    }\n\n    /**\n     * Tests if the heap is empty\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return interval_heap_.empty();\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n    \tinterval_heap_.clear();\n    }\n\n    void insert(const T& value)\n    {\n    \tif (interval_heap_.size()==capacity_) {\n    \t\tT max;\n    \t\tinterval_heap_.getMax(max);\n    \t\tif (max<value) return;\n   \t\t\tinterval_heap_.popMax(max);\n    \t}\n    \tinterval_heap_.insert(value);\n    }\n\n    bool popMin(T& value)\n    {\n    \treturn interval_heap_.popMin(value);\n    }\n};\n\n"
  },
  {
    "path": "algorithms/SGH/src/hierarchical_clustering_index.h",
    "content": "#include <algorithm>\n#include <string>\n#include <cmath>\n#include <vector>\n#include <iostream>\n#include \"center_chooser.h\"\n//#include \"char_bit_cnt.h\"\n#include \"dynamic_bitset.h\"\n#include \"heap.h\"\n#include \"result_set.h\"\n\nusing namespace std;\nusing std::string;\nusing std::vector;\nusing std::cout;\nusing std::ifstream;\nusing std::ios;\nusing std::endl;\n\n//typedef unsigned ElementType;\n//typedef int DistanceType;\n\nclass HierarchicalClusteringIndex\n{\n\tprivate:\n\n\tint branching_;\n    int trees_;\n    int leaf_max_size_;\n\n\tsize_t size_;\n \tsize_t veclen_;\n\tsize_t size_at_build_;\n\tsize_t last_id_;\n\n\tvector<size_t> ids_;\n\tvector<vector<unsigned>* > points_;\n\tCenterChooser Centers_;\n\t\n\t//DynamicBitset removed_points_;\n\n\tvoid setDataset(vector<vector<unsigned> >& dataset)\n    {\n    \tsize_ = dataset.size();\n    \t//cout<<\"size_: \"<<size_ <<endl;\n    \t//veclen_ = dataset->at(0).size();\n    \t//last_id_ = 0;\n\n    \t//ids_.clear();\n    \t//removed_points_.clear();\n    \t//removed_ = false;\n    \t//removed_count_ = 0;\n\n\t\tpoints_.resize(size_);\n\t\tfor (size_t i=0;i<size_;i++)\n\t\t{\n\t\t\tpoints_.at(i) = &dataset.at(i);\n\t\t}\n\t\t//cout<<\"points00: \"<<points_.at(0)->at(0)<<endl;\n    }\n\tpublic:\n\n\tvoid set_params(vector<vector<unsigned> >& inputData, int b=32,int t=4,int leaf=100)\n    {\n        branching_ = b;\n        trees_ = t;\n        leaf_max_size_ = leaf;\n\n\t\tsetDataset(inputData);\n\n        Centers_.setDataset(inputData);\n\t\tDynamicBitset checked(size_);\n    }\n\n\n    /**\n     * Builds the index\n     */\n    void buildIndex()\n    {\n        if (branching_<2) {\n            cerr<<\"Branching factor must be at least 2\"<<endl;\n\t\t\treturn;\n        }\n        tree_roots_.resize(trees_);\n        vector<int> indices(size_);\n        for (int i=0; i<trees_; ++i) {\n            for (size_t j=0; j<size_; ++j) {\n                indices[j] = j;\n            }\n            tree_roots_[i] = new Node();\n            //cout<< points_.at(0)->at(0)<<\" \"<<points_.at(1)->at(0)<<\" \"<< get_distance(0,1)<<endl;\n            computeClustering(tree_roots_[i], &indices[0], size_);\n        }\n    }\n\n\tstruct PointInfo\n    {\n    \t\n    \tsize_t index;   /** Point index */\n    \t\n    \tvector<unsigned>* point;  /** Point data */\n    };\n\n\n\n\tstruct Node\n    {\n        \n    \tvector<unsigned>* pivot;  /** The cluster center  */\n\n    \tsize_t pivot_index;\n        \n        vector<Node*> childs;        /**   Child nodes (only for non-terminal nodes)  */\n        \n        vector<PointInfo> points;    /**    Node points (only for terminal nodes)   */\n\n        ~Node()\n        {\n        \tfor(size_t i=0; i<childs.size(); i++){\n        \t\tchilds[i]->~Node();\n        \t}\n        };\n    };\n\n\ttypedef Node* NodePtr;\n\tstruct BranchStruct\n\t{\n    \tNode* node;           /* Tree node at which search resumes */\n    \tint mindist;     /* Minimum distance to query for all nodes below. */\n\n    \tBranchStruct() {}\n    \tBranchStruct(Node* aNode, int dist) : node(aNode), mindist(dist)\n    \t{//cout<<\"branch node:\"<<aNode->pivot_index <<\" \"<<node->pivot_index<<endl;\n    \t}\n\n    \tbool operator<(const BranchStruct& rhs) const\n    \t{\n        \treturn mindist<rhs.mindist;\n    \t}\n\t};\n///*\n\tint get_distance(int p1, int p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = points_.at(0)->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = points_.at(p1)->at(t) ^ points_.at(p2)->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n\n\t\n\tint get_distance(const vector<unsigned>* p1, const vector<unsigned>* p2)\n\t{\n\t\tint dist=0;\n\t\tint cbits = p1->size();\n\t\tfor(int t=0; t<cbits; t++)\n\t\t{\n\t\t\tunsigned y = p1->at(t) ^ p2->at(t);\n\t\t\tdist += char_bit_cnt[y];\n\t\t}\n\t\treturn dist;\n\t}\n//*/\n\n\tvoid computeLabels(int* indices, int indices_length,  int* centers, int centers_length, int* labels)\n    {\n        for (int i=0; i<indices_length; ++i) {\n            int dist = get_distance(indices[i],centers[0]);\n            labels[i] = 0;\n            for (int j=1; j<centers_length; ++j) {\n                int new_dist = get_distance(indices[i],centers[j]); //(points_.at(indices[i]),points_.at(centers[j]));\n                if (dist>new_dist) {\n                    labels[i] = j;\n                    dist = new_dist;\n                }\n            }\n        }\n    }\n\n\tvoid computeClustering(Node* node, int* indices, int indices_length)\n    {\n\t\t//cout<<\"begin:\"<<indices_length<<endl;\n        if (indices_length < leaf_max_size_) { // leaf node\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\"indices:\"<<indices_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        std::vector<int> centers(branching_);\n        std::vector<int> labels(indices_length);\n\n        int centers_length;\n\t\tCenters_.chooseCenters(branching_, indices, indices_length, &centers[0], centers_length);\n\t\t//cout<<\"choose centers_length :  \"<<centers_length<<endl;\n\n        if (centers_length<branching_) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_.at(indices[i]);\n            }\n            node->childs.clear();\n\t\t\t//cout<<\" centers: \"<<centers_length<<\"  \"<< node->points.size()<<endl;\n            return;\n        }\n\n        //  assign points to clusters\n        computeLabels(indices, indices_length, &centers[0], centers_length, &labels[0]);\n\n        node->childs.resize(branching_);\n        int start = 0;\n        int end = start;\n        for (int i=0; i<branching_; ++i) {\n            for (int j=0; j<indices_length; ++j) {\n                if (labels[j]==i) {\n                    std::swap(indices[j],indices[end]);\n                    std::swap(labels[j],labels[end]);\n                    end++;\n                }\n            }\n\n            node->childs[i] = new Node();\n            node->childs[i]->pivot_index = centers[i];\n            node->childs[i]->pivot = points_.at(centers[i]);\n            node->childs[i]->points.clear();\n            computeClustering(node->childs[i],indices+start, end-start);\n            start=end;\n        }\n    }\n\n\ttypedef BranchStruct BranchSt;\n\n\tvoid findNN(NodePtr node, ResultSet& result, const vector<unsigned>* vec, int& checks,const int maxChecks,\n\t                Heap<BranchSt>* heap,  DynamicBitset& checked)\n\t{\n\t    if (node->childs.empty())\n\t    {\n\t        if (checks>=maxChecks) {\n\t              if (result.full()) return;\n\t        }\n\n\t        for (size_t i=0; i<node->points.size(); ++i)\n\t        {\n\t            PointInfo& pointInfo = node->points[i];\n\t            if (checked.test(pointInfo.index)) continue;\n\t            int dist = get_distance(pointInfo.point, vec);\n\t            result.addPoint(dist, pointInfo.index);\n\t                checked.set(pointInfo.index);\n\t                ++checks;\n\t            }\n\t        }\n\t        else {\n\t            int* domain_distances = new int[branching_];\n\t            int best_index = 0;\n\t            domain_distances[best_index] = get_distance(vec, node->childs[best_index]->pivot);\n\t            for (int i=1; i<branching_; ++i) {\n\t                domain_distances[i] = get_distance(vec, node->childs[i]->pivot);\n\t                if (domain_distances[i]<domain_distances[best_index]) {\n\t                    best_index = i;\n\t                }\n\t            }\n\t            for (int i=0; i<branching_; ++i) {\n\t                if (i!=best_index) {\n\t                    heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n\t                }\n\t            }\n\t            delete[] domain_distances;\n\t            findNN(node->childs[best_index],result,vec, checks, maxChecks, heap, checked);\n\t        }\n\t    }\n\n\n\n\tvoid findNeighborsWithRemoved(ResultSet& result, const vector<unsigned>* vec, const int maxChecks)\n    {\n        //int maxChecks = searchParams.checks;\n\n        // Priority queue storing intermediate branches in the best-bin-first search\n        Heap<BranchSt>* heap = new Heap<BranchSt>(size_);\n\n        DynamicBitset checked(size_);\n        int checks = 0;\n        for (int i=0; i<trees_; ++i) {\n            findNN(tree_roots_[i], result, vec, checks, maxChecks, heap, checked);\n        }\n\n        BranchSt branch;\n        while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n            NodePtr node = branch.node;\n            findNN(node, result, vec, checks, maxChecks, heap, checked);\n        }\n\n        delete heap;\n    }\n\n\n\n\n\tint knnSearch(const vector<vector<unsigned> >& queries, vector< vector<int> >& indices,\tvector< vector<int> >& dists,size_t knn,const int maxChecks)\n    {\n        if (indices.size() < queries.size() ) indices.resize(queries.size());\n\t\tif (dists.size() < queries.size() )   dists.resize(queries.size());\n\n\t\tint count = 0;\n\n\t\tfor (int i = 0; i < (int)queries.size(); i++)\n\t\t{\n\t\t\t\t//resultSet.clear();\n\t\t\t\tResultSet resultSet(knn);\n\t\t\t\tfindNeighborsWithRemoved(resultSet, &queries.at(i), maxChecks);\n\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\tindices[i].resize(n);\n\t\t\t\tdists[i].resize(n);\n\t\t\t\tif (n>0)\n\t\t\t\t{\n\t\t\t\t\tresultSet.copy(&indices.at(i), &dists.at(i), n);\n\t\t\t\t}\n\t\t\t\tcount += n;\n\t\t}\n\t\treturn count;\n    }\n\n\tvector<Node*> tree_roots_;\n};\n\n"
  },
  {
    "path": "algorithms/SGH/src/random.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#include <algorithm>\n#include <cstdlib>\n#include <cstddef>\n#include <vector>\n/**\n * Seeds the random number generator\n *  @param seed Random seed\n */\ninline void seed_random(unsigned int seed)\n{\n    srand(seed);\n}\n\n/*\n * Generates a random double value.\n */\n/**\n * Generates a random double value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random double value\n */\ninline double rand_double(double high = 1.0, double low = 0)\n{\n    return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n/**\n * Generates a random integer value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random integer value\n */\ninline int rand_int(int high = RAND_MAX, int low = 0)\n{\n    return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n\nclass RandomGenerator\n{\npublic:\n    ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }\n};\n\n\n/**\n * Random number generator that returns a distinct number from\n * the [0,n) interval each time.\n */\nclass UniqueRandom\n{\n    std::vector<int> vals_;\n    int size_;\n    int counter_;\n\npublic:\n    /**\n     * Constructor.\n     * @param n Size of the interval from which to generate\n     * @return\n     */\n    UniqueRandom(int n)\n    {\n        init(n);\n    }\n\n    /**\n     * Initializes the number generator.\n     * @param n the size of the interval from which to generate random numbers.\n     */\n    void init(int n)\n    {\n        static RandomGenerator generator;\n        // create and initialize an array of size n\n        vals_.resize(n);\n        size_ = n;\n        for (int i = 0; i < size_; ++i) vals_[i] = i;\n\n        // shuffle the elements in the array\n        std::random_shuffle(vals_.begin(), vals_.end(), generator);\n\n        counter_ = 0;\n    }\n\n    /**\n     * Return a distinct random integer in greater or equal to 0 and less\n     * than 'n' on each call. It should be called maximum 'n' times.\n     * Returns: a random integer\n     */\n    int next()\n    {\n        if (counter_ == size_) {\n            return -1;\n        }\n        else {\n            return vals_[counter_++];\n        }\n    }\n};\n\n\n\n"
  },
  {
    "path": "algorithms/SGH/src/result_set.h",
    "content": "#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\n\nstruct DistanceIndex\n{\n    DistanceIndex(int dist, int index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    int dist_;\n    int index_;\n};\n\n\nclass ResultSet\n{\npublic:\n\t//typedef DistanceIndex<int> DistIndex;\n\n\tResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~ResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<int>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full()\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(int dist, int index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistanceIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(vector<int>* indices, vector<int>* dists, size_t num_elements)\n    {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t//std::sort(dist_index_.begin(), dist_index_.end());\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\tindices->at(i) = dist_index_[i].index_;\n    \t\tdists->at(i) = dist_index_[i].dist_;\n    \t}\n    }\n\n    int worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    int worst_dist_;\n    std::vector<DistanceIndex> dist_index_;\n    bool is_full_;\n};\n"
  },
  {
    "path": "algorithms/SH/README.md",
    "content": "# SH - Selective Hashing \n\n[Originial source code](http://www.comp.nus.edu.sg/~dsh/download.html) implemented by C++. \n\n## Prerequisites\n\n- A linux system \n- [A sample dataset](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including its data points, query points and ground truth results. All data files downloaded should be put in the `./knn_benchmark/data` directory.\n\n## Compile (SH/src)\n\nTo compile AGH, go to AGH/src and run \n```\nbuild.sh\n```\nto get the executable file SH.\n\nNote that to handle other dataset, we need to modify the dimensionality and the datasize in constant.h \n```\nconst int D = 192;\nconst int datasize = 53387;\n```\nwe also need to change the file name in main.cpp\n\n```\nchar data_name[20]=\"audio\";\n```\nThen re-compile the program.\n\n## Index and Search (SH/script)\n\nTo build the index of SH and conduct the search, enter into folder and run \n```\nrun.sh\n```\n\nto obtain the searching performance of SH. We use 20 values for the array MaxChecked in the main.cpp (e.g. the number of the visited points) to  achieve the trade-off between search speed and search quality (recall). The result are reported in SH/result directory.\n\n\n"
  },
  {
    "path": "algorithms/SH/script/run.sh",
    "content": "#########################################################################\n# File Name: run.sh\n# Author: XX\n# mail: xx@cse.unsw.edu.au\n# Created Time: Wed 25 May 2016 23:38:23 AEST\n#########################################################################\n#!/bin/bash\n\n../src/SH\n"
  },
  {
    "path": "algorithms/SH/src/SHgeneral.cpp",
    "content": "#include \"SHgeneral.h\"\r\n#include <iostream>\r\n#include <cmath>\r\n#include <vector>\n#include <string.h>\r\n\r\nusing namespace std;\r\n\r\nSHGeneral::SHGeneral()\r\n{\r\n    cout<<\"SHGeneral::SHGeneral\"<<endl;\r\n    /*memset(dataproduct, 0, sizeof(dataproduct));\r\n    memset(familyvector, 0, sizeof(familyvector));\r\n    memset(hashtableindex, 0, sizeof(hashtableindex));\r\n    memset(datahashtable, 0, sizeof(datahashtable));\r\n    memset(datahashresult, 0, sizeof(datahashresult));\r\n    memset(decision, 0, sizeof(decision));*/\r\n    R[0] = BaseR;\r\n    for(int i = 1; i < Alter; i++)R[i] = c * R[i-1];\r\n    isinit = false;\r\n    decisionavailable = false;\n\tcout<<\"finish general\"<<endl;\r\n}\r\n\r\nvoid SHGeneral::init()\r\n{\r\n\tif(isinit)return;\r\n    isinit = true;\r\n\tcout<<\"SHGeneral::init\"<<endl;\r\n\tfamily_generator();\r\n\tgenerate_hashtableindex();\r\n\tproductcomputer();\r\n\tcout<<\"SHGeneral::init--END\"<<endl;\r\n}\r\n\r\nvoid SHGeneral::family_generator()\r\n{\r\n    cout<<\"SHGeneral::family_generator\"<<endl;\r\n    for(int i = 0; i < familysize; i++)\r\n    {\r\n        MyRandom::rand_multi_gaussian(familyvector[i], D+1);\r\n        for (int j = 0; j < D; j++) familyvector[i][j] =  familyvector[i][j]/sqrt(D);\r\n        //for test\r\n        //float sum = 0;\r\n        //for (int j = 0; j < D; j++)sum+= familyvector[i][j]*familyvector[i][j];\r\n        //cout<<\"gaussian\"<<sum<<endl;\r\n    }\r\n    cout<<\"SHGeneral::family_generator--END\"<<endl;\r\n}\r\n\r\nvoid SHGeneral::generate_hashtableindex()\r\n{\r\n     cout<<\"SHGeneral::generate_hashtableindex\"<<endl;\r\n     for(int i = 0; i < L; i++)\r\n     {\r\n             familysample(hashtableindex[i], familysize, M);\r\n     }\r\n     cout<<\"SHGeneral::generate_hashtableindex--END\"<<endl;\r\n}\r\n\r\nvoid SHGeneral::familysample(int result[], int size, int needsize)\r\n{\r\n     vector<int> forchoose;\r\n     forchoose.clear();\r\n     for (int i = 0; i < size; i++)\r\n\t\tforchoose.push_back(i);\r\n     int forswap, temp;\r\n\t for (int i = 0; i < needsize; i++)\r\n\t {\r\n\t\tforswap = MyRandom::int_random(size - i) + i;\r\n\t\ttemp = forchoose[i];\r\n\t\tforchoose[i] = forchoose[forswap];\r\n\t\tforchoose[forswap] = temp;\r\n\t\tresult[i] = forchoose[i];\r\n\t }\r\n\t forchoose.clear();\r\n}\r\n\r\nvoid SHGeneral::productcomputer()\r\n{\r\n    cout<<\"SHGeneral::productcomputer\"<<endl;\r\n    for(int i = 0; i < datasize; i++)\r\n    {\r\n        for(int j = 0; j < familysize; j++)\r\n        {\r\n            dataproduct[i][j] = MyVector::dotproduct(D,data[i],familyvector[j]);\r\n        }\r\n        if(i%20000 == 0) {cout<<\"SHGeneral::productcomputer\"<<endl<<\"current hashing data \"<<i<<endl;\r\n        cout<<dataproduct[i][5]<<endl;}\r\n\r\n    }\r\n    cout<<\"SHGeneral::productcomputer--END\"<<endl;\r\n}\r\n\r\nvoid SHGeneral::tableindex(float product[], int Rrank, unsigned int table[])\r\n{\r\n    int familyint[familysize] = {};\r\n    float ratio = R[Rrank];\r\n    for(int i = 0; i < familysize; i++)\r\n    {\r\n        float temp = product[i];\r\n        temp /=  ratio;\r\n        temp += familyvector[i][D];\r\n        familyint[i] = (int)temp;\r\n    }\r\n    for(int l = 0; l < L; l++)\r\n    {\r\n        table[l] = 0;\r\n        for(int i = 0; i < M; i++)\r\n        {\r\n            table[l] ^= familyint[hashtableindex[l][i]] + 0x9e3779b9 + (table[l] << 6) + (table[l] >> 2);\r\n        }\r\n    }\r\n}\r\n\r\n"
  },
  {
    "path": "algorithms/SH/src/SHgeneral.h",
    "content": "#ifndef SHGENERAL_H_INCLUDED\r\n#define SHGENERAL_H_INCLUDED\r\n\r\nclass SHGeneral;\r\n\r\n#include \"constants.h\"\r\n#include \"data.h\"\r\n#include \"myvector.h\"\r\n#include \"myrandom.h\"\r\n#include <string>\r\n\r\nusing namespace std;\r\n\r\nclass SHGeneral{\r\n    private:\r\n    \r\n    float dataproduct[datasize][familysize];\r\n    float familyvector[familysize][D+1];\r\n    int hashtableindex[L][M];\r\n    unsigned int datahashresult[datasize][L];\r\n    int datahashtable[L][datasize];\r\n    int decision[datasize];\r\n    bool decisionavailable;\r\n    bool isinit;\r\n\r\n    public:\n\tfloat R[Alter];\r\n    friend class SHSelection;\r\n    friend class SHIndex;\r\n\r\n    public:\r\n    SHGeneral();\r\n    void init();\r\n    void tableindex(float [], int, unsigned int []);\r\n\r\n    private:\r\n    void family_generator();\r\n    void generate_hashtableindex();\r\n    void familysample(int result[], int size, int needsize);\r\n    void productcomputer();\r\n};\r\n\r\n#endif // SHGENERAL_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/SHindex.cpp",
    "content": "#include \"SHindex.h\"\r\n#include <iostream>\r\n#include <cmath>\n#include<algorithm>\r\n\r\nusing namespace std;\r\n\nvoid SHIndex::linear_search()\n{\n     for(int i = 0; i < querysize; i++)\r\n     {\n         knn[i].init();\n         knn[i].linear_scan(data,query[i]);\n         for(int j = 0; j < K; j++) queryresult[i][j] = knn[i].knnlist[j];\r\n     }\n}\n\nvoid SHIndex::GetDataQueryDistance()\n{\n    int sub_count=1000;\n    FILE *fp;\r\n\tfp = fopen(\"dq_distance.dat\",\"wb\");\n    for(int sub=0;sub<2000/sub_count;sub_count++)\n    {\n       float dqdistance[sub_count][querysize];\n       for (int i=0;i< sub_count;i++)\n       {\n            for(int j=0;j<querysize;j++)\n            {\n                dqdistance[i][j]= MyVector::distancel2sq(D,data[i+sub*sub_count], query[j],0);\n            }\n       }\n       fwrite(dqdistance[0], sizeof(double), sub_count*querysize, fp);\n    }\r\n\tfclose(fp);\n}\r\nbool datakeycompare(datakey a,datakey b)\r\n{\r\n      if(a.key < b.key) return true;\r\n      if(a.key == b.key)\r\n      {\r\n          if(a.dataid < b.dataid)return true;\r\n      }\r\n      return false;\r\n}\r\n\r\nvoid SHIndex::index_construct(string decision_file)\r\n{\n     int start_=clock();\n\r\n     shg.init();\r\n     if(!shg.decisionavailable)io.diskread_int(decision_file.c_str(), shg.decision, datasize);\r\n     for(int k = 0; k < datasize; k++)\r\n     {\r\n            if(k%20000 == 0) cout<<\"current hashing data \"<<k<<endl;\r\n            shg.tableindex(shg.dataproduct[k],shg.decision[k],shg.datahashresult[k]);\r\n     }\r\n     for(int j = 0; j < L; j++)\r\n     {\r\n             int hashkey;\r\n             for(int i = 0; i < datasize; i++)\r\n             {\r\n                     temptable[i].dataid = i;\r\n                     hashkey = shg.datahashresult[i][j]%bucketnum;\r\n                     temptable[i].key = shg.decision[i]*bucketnum + hashkey;\r\n             }\r\n             sort(temptable,temptable+datasize,datakeycompare);\r\n             int q = 0;\r\n             hashkeyindex[j][0][0] = 0;\r\n             hashkeylength[j][0][0] = 0;\r\n             for(int i = 0; i < datasize; i++)\r\n             {\r\n                     while(q != temptable[i].key)\r\n                     {\r\n                         q++;\r\n                         hashkeyindex[j][q/bucketnum][q%bucketnum] = i;\r\n                         hashkeylength[j][q/bucketnum][q%bucketnum] = 0;\r\n                     }\r\n                     hashkeylength[j][q/bucketnum][q%bucketnum]++;\r\n                     shg.datahashtable[j][i] = temptable[i].dataid;\r\n             }\r\n             //for test\r\n             int nullsum = 0;\r\n             int normalsum = 0;\r\n             for(int i = 0; i < Alter * bucketnum; i++)\r\n             {\r\n                 if(hashkeylength[j][i/bucketnum][i%bucketnum] == 0) nullsum++;\r\n                 else normalsum++;\r\n             }\r\n             cout<<\"table \"<<j<<\" construted\"<<endl;\r\n             cout<<nullsum<<\" \"<<normalsum<<endl;\r\n     }\n     int finish_=clock();\n     indextime=(finish_-start_)*1.0/CLOCKS_PER_SEC;\n\r\n\t //for test\r\n\t double sumchecknum = 0;\r\n\t double optimized = 0;\r\n\t double avechecknum;\r\n\t for(int i = 0; i < L; i++)\r\n\t {\r\n\t\t for(int k = 0; k < Alter; k++)\r\n\t\t {\r\n            for(int j = 0; j < bucketnum; j++)\r\n            {\r\n                sumchecknum += hashkeylength[i][k][j] * hashkeylength[i][k][j] / (double) datasize;\r\n                optimized += hashkeylength[i][k][j] / (double) bucketnum;\r\n            }\r\n\t\t }\r\n\t }\r\n\t avechecknum = sumchecknum / L;\r\n\t cout<<\"bucket balance index is \"<<avechecknum<<endl;\r\n\t cout<<\"optimized bucket balance is \"<<optimized / L<<endl;\r\n}\r\n\r\n\r\nvoid SHIndex::index_write(string index_file)\r\n{\r\n    FILE *fp;\r\n\tfp = fopen(index_file.c_str(),\"wb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n\tfwrite(shg.familyvector[0], sizeof(float), familysize*(D+1), fp);\r\n\tfwrite(shg.hashtableindex[0], sizeof(int), L*M, fp);\r\n\tfwrite(shg.datahashresult[0], sizeof(unsigned int), datasize*L, fp);\r\n\tfwrite(shg.datahashtable[0], sizeof(int), L*datasize, fp);\r\n\tfwrite(hashkeyindex[0][0], sizeof(int), L * Alter * bucketnum, fp);\r\n\tfwrite(hashkeylength[0][0], sizeof(int), L * Alter * bucketnum, fp);\r\n\tfclose(fp);\r\n}\r\n\r\nvoid SHIndex::index_load(string index_file)\r\n{\r\n    FILE *fp;\r\n\tfp = fopen(index_file.c_str(),\"rb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n\tfread(shg.familyvector[0], sizeof(float), familysize*(D+1), fp);\r\n\tfread(shg.hashtableindex[0], sizeof(int), L*M, fp);\r\n\tfread(shg.datahashresult[0], sizeof(unsigned int), datasize*L, fp);\r\n\tfread(shg.datahashtable[0], sizeof(int), L*datasize, fp);\r\n\tfread(hashkeyindex[0][0], sizeof(int), L * Alter * bucketnum, fp);\r\n\tfread(hashkeylength[0][0], sizeof(int), L * Alter * bucketnum, fp);\r\n\tfclose(fp);\r\n}\r\n\r\nvoid SHIndex::query_load(string query_file)\r\n{\r\n     io.diskread_float(query_file.c_str(), query[0], querysize*D);\r\n     for(int i = 0; i < datasize; i++)\r\n     {\r\n             queryid[i] = -1;\r\n     }\r\n     st.sumcheck = 0;\r\n}\r\n\n/*\r\nvoid SHIndex::query_execute(int Lused)//,int MaxChecked\r\n{\n\r\n     for(int i = 0; i < querysize; i++)//querysize\r\n     {\n         if(Lused==1)\n         {\n             knn[i].init();\n         }\r\n         pointquery(query[i],queryresult[i],i,Lused);//,MaxChecked\n         //cout<<\"doing query id: \"<<i<<\" \"<<st.sumcheck<<endl;\r\n     }\n}\n*/\r\nvoid SHIndex::query_execute(int Lused,int MaxChecked)\r\n{\n\r\n     for(int i = 0; i < querysize; i++)//querysize\r\n     {\n         {\n             knn[i].init();\n             st.sumcheck=0;\n         }\r\n         pointquery(query[i],queryresult[i],i,Lused,MaxChecked);\r\n     }\n}\n\r\nvoid SHIndex::result_write(string result_file)\r\n{\r\n     io.diskwrite_int(result_file.c_str(), queryresult[0], querysize*K);\r\n}\r\n\r\nvoid SHIndex::pointquery(float querypoint[], int result[], int id,int Lused,int MaxChecked)\r\n{\r\n     float queryproduct[familysize];\r\n     for(int i = 0; i < familysize; i++)queryproduct[i] = MyVector::dotproduct(D,querypoint,shg.familyvector[i]);\r\n     for(int i = 0; i < Alter; i++)shg.tableindex(queryproduct,i,querytableresult[i]);\r\n\t int hashkey,bucketindex,bucketlength,tocheck;\n\t int check_count=0;\r\n\t for(int n = 0; n < Alter && check_count <= MaxChecked; n++)//&& check_count <= MaxChecked\r\n\t {\r\n              if(knn[id].sqrtbound < ETRatio*shg.R[n])break;\r\n              for(int i = 0; i < Lused && check_count <= MaxChecked; i++)//&& check_count <= MaxChecked\r\n              {\r\n                    hashkey = querytableresult[n][i]%bucketnum;\r\n                    bucketindex = hashkeyindex[i][n][hashkey];\r\n                    bucketlength = hashkeylength[i][n][hashkey];\r\n                    for(int j = 0; j < bucketlength && check_count <= MaxChecked; j++)//&& check_count <= MaxChecked\r\n                    {\r\n                        tocheck = shg.datahashtable[i][bucketindex+j];\r\n                        if (shg.datahashresult[tocheck][i] != querytableresult[n][i])continue;\r\n                        if (queryid[tocheck] == id) continue;\r\n                        queryid[tocheck] = id;\r\n                        knn[id].addvertex(data, tocheck, querypoint);\r\n                        st.sumcheck++;\n                        check_count++;\n                    }\r\n              }\r\n     }\n\t knn[id].KNNsort();\r\n     for(int i = 0; i < K; i++)\n     {\n        result[i] = knn[id].knnlist[i];\n        //cout<< id<< \"   i\"<< knn[id].knnlist[i]<<endl;\n     }\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/SHindex.h",
    "content": "#ifndef SHINDEXING_H_INCLUDED\r\n#define SHINDEXING_H_INCLUDED\r\n\r\nclass SHIndex;\r\n#include \"constants.h\"\r\n#include \"data.h\"\r\n#include \"myvector.h\"\r\n#include \"myrandom.h\"\r\n#include <string>\r\n\r\nusing namespace std;\r\n\r\nstruct datakey\r\n{\r\n    int dataid;\r\n    int key;\r\n};\r\n\r\nclass SHIndex{\r\n    protected:\r\n    //for index\r\n    int hashkeyindex[L][Alter][bucketnum];\r\n    int hashkeylength[L][Alter][bucketnum];\r\n    datakey temptable[datasize];\r\n\r\n    //for query\r\n    float queryproduct[familysize];\r\n    unsigned int querytableresult[Alter][L];\r\n    int queryid[datasize];\r\n    float query[querysize][D];\r\n    //int queryresult[querysize][K];\r\n    //float dqdistance[datasize][querysize];\r\n\n    public:\n\n    int queryresult[querysize][K];\n\n    void linear_search();\n    void GetDataQueryDistance();\r\n    void index_construct(string decision_file);\r\n    void index_write(string index_file);\r\n    void index_load(string index_file);\r\n    void query_load(string query_file);\r\n    //void query_execute(int);//,int\n    void query_execute(int,int);\r\n    void result_write(string result_file);\r\n    float indextime;\n    Knn knn[querysize];\n\r\n    private:\r\n    //void pointquery(float [], int [], int,int);//,int\n    void pointquery(float [], int [], int,int,int);\r\n};\r\n\r\n#endif // SHINDEXING_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/SHselection.cpp",
    "content": "#include \"SHselection.h\"\r\n#include <iostream>\n#include<string.h>\r\nusing namespace std;\r\n\r\nvoid SHSelection::radius_selection(string decision_file)\r\n{\r\n\tmemset(decisionsignal, 0, sizeof(decisionsignal));\n\t//while(1)\n\t{\n\t\t//if(radius_test(0)==0)\n\t\t\t//shg.R[0]=shg.R[0]*2;\n\t\t//else\n            {\n                //for(int i = 1; i < Alter; i++)shg.R[i] = c * shg.R[i-1];\n                //break;\n            }\n\n\t}\n\tint sample_index[100];\n\tshg.familysample(sample_index,datasize, 100);\n\tfloat sum=0.0;\n\tfor (int i=0;i<100;i++)\n\t{\n\t\tfor (int j=0;j<1;j++)\n\t\t{\n\t\t    float a=MyVector::dotproduct(D,data[sample_index[i]],shg.familyvector[j]);\n            sum += abs(a);\n\t\t}\n\n\t}\n\tshg.R[0] = sum/100/3; ///100\n\tcout<<shg.R[0]<<endl;\n\tfor(int i = 1; i < Alter; i++)shg.R[i] = c * shg.R[i-1];\r\n\tfor(int i = 0; i < Alter - 1; i++)radius_test(i);\r\n\tfor(int i = 0; i < datasize; i++)\r\n\t{\r\n\t    if(decisionsignal[i] == 0)\r\n        {\r\n            decisionsignal[i] = 1;\r\n            shg.decision[i] = Alter - 1;\r\n        }\r\n\t}\r\n\tcout<<\"finished\"<<endl;\r\n\tshg.decisionavailable = true;\r\n\tio.diskwrite_int(decision_file, shg.decision, datasize);\r\n}\r\n\r\nint SHSelection::radius_test(int Rrank)\r\n{\r\n     cout<<\"SHSelection::radius_test \"<<Rrank<<endl;\r\n     memset(hashkeylength, 0, sizeof(hashkeylength));\r\n     for(int k = 0; k < datasize; k++)\r\n     {\r\n            if(k%100000 == 0) cout<<\"current hashing data \"<<k<<endl;\r\n            shg.tableindex(shg.dataproduct[k],Rrank,shg.datahashresult[k]);\r\n            for(int i = 0; i < L; i++)hashkeylength[i][shg.datahashresult[k][i]%bucketnum]++;\r\n     }\r\n     int sum = 0;\r\n     for(int i = 0; i < datasize; i++)\r\n     {\r\n         int sumcount = 0;\r\n         for(int j = 0; j < L; j++)\r\n         {\r\n             if(hashkeylength[j][shg.datahashresult[i][j]%bucketnum] >= thresholdpoint)sumcount++;\r\n         }\r\n         //cout<<\"sumcount: \"<<sumcount<<endl;\r\n         //cout<<\"thresholdtable: \"<<thresholdtable<<endl;\r\n         if(sumcount >= thresholdtable)\r\n         {\r\n             //cout<<\"entered\"<<endl;\r\n             if(decisionsignal[i] == 0)\r\n             {\r\n                 //cout<<\"entered insert\"<<endl;\r\n                 sum++;\r\n                 decisionsignal[i] = 1;\r\n                 shg.decision[i] = Rrank;\r\n             }\r\n         }\r\n     }\r\n     cout<<sum<<\" points qualified for Round\"<<Rrank<<endl;\n\treturn sum;\n\t  if(sum==0)\n\t\tcout<<Rrank<<endl;\r\n     //int forc;cin>>forc;\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/SHselection.h",
    "content": "#ifndef SHSELECTION_H_INCLUDED\r\n#define SHSELECTION_H_INCLUDED\r\n\r\nclass SHSelection;\r\n#include \"constants.h\"\r\n#include \"data.h\"\n#include \"cmath\"\r\n#include <string>\r\n\r\nusing namespace std;\r\n\r\nclass SHSelection{\r\n    public:\r\n\r\n    private:\r\n    int decisionsignal[datasize];\r\n    int hashkeylength[L][bucketnum];\r\n\r\n    public:\r\n    //SHSelection();\r\n    void radius_selection(string decision_file);\r\n    private:\r\n    //void radius_test(int);\r\n\tint radius_test(int);\r\n};\r\n\r\n#endif // SHSELECTION_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/build.sh",
    "content": "rm *.o \nrm SH\n\n\nfor f in *.cpp \ndo\ng++ -O3 -c *.cpp \ndone\n\ng++ -o SH -O3 *.o \nrm *.o \n\n"
  },
  {
    "path": "algorithms/SH/src/constants.h",
    "content": "#ifndef CONSTANTS_H_INCLUDED\r\n#define CONSTANTS_H_INCLUDED\r\n\r\n\r\nconst int D = 192;\r\nconst int datasize = 53387;\r\n\r\n\r\nconst int K = 20;\r\nconst int L = 80;\r\nconst int M = 30;\r\nconst int querysize = 200;\r\nconst int familysize = 100;\r\n//selective hashing specific\r\nconst int Alter = 20;\r\nconst float BaseR = 100;\r\nconst float c = 1.2;\r\nconst int bucketnum = 9973;\r\nconst int thresholdpoint = (int)(3*datasize/bucketnum);\r\nconst float thresholdtable = (int)(0.4*L);\r\nconst float ETRatio = 0.3;\r\n\r\n/* \r\n// This is for ERON data\r\nconst int D = 1369;\r\nconst int K = 20;\r\n\r\nconst int L = 80;\r\nconst int M = 30;\r\nconst int datasize = 94987;\r\nconst int querysize = 200;\r\nconst int familysize = 100;\r\n//selective hashing specific\r\nconst int Alter = 20;\r\nconst float BaseR = 100;\r\nconst float c = 3;\r\nconst int bucketnum = 9973;\r\nconst int thresholdpoint = (int)(3*datasize/bucketnum);\r\nconst float thresholdtable = (int)(0.4*L);\r\nconst float ETRatio = 0.3;\r\n//for basic LSH test\r\n//const int Alter = 1;\r\n//const double BaseR = 5;\r\n//const int Checked[16]={100,200,400,500,700,900,1000,1500,2000,3000,5000,10000,15000,20000,30000};\r\n*/\r\n\r\n#endif // CONSTANTS_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/data.h",
    "content": "#ifndef DATA_H_INCLUDED\r\n#define DATA_H_INCLUDED\r\n\r\n#include \"constants.h\"\r\n#include \"io.h\"\r\n#include \"knn.h\"\r\n#include \"SHindex.h\"\r\n#include \"SHgeneral.h\"\r\n#include \"SHselection.h\"\r\n#include \"statisticsmodule.h\"\r\n\r\nextern float data[datasize][D];\r\nextern IO io;\r\nextern Knn knn;\r\nextern SHGeneral shg;\r\nextern SHSelection shs;\r\nextern SHIndex shi;\r\nextern StatisticsModule st;\r\n\r\n#endif //DATA_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/io.cpp",
    "content": "#include \"io.h\"\r\n#include <iostream>\r\n#include <fstream>\n#include <stdlib.h>\r\n\r\nusing namespace std;\r\n\r\nvoid IO::diskread_float(string filename, float array[], int size)\r\n{\r\n    FILE *fp;\r\n\tfp = fopen(filename.c_str(),\"rb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;\r\n\t\texit(1);\r\n\t}\r\n\tfread(array, sizeof(double), size, fp);\r\n\tfclose(fp);\r\n}\r\n\r\nvoid IO::diskwrite_float(string filename, float array[], int size)\r\n{\r\n    FILE *fp;\r\n\tfp = fopen(filename.c_str(),\"wb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n\tfwrite(array, sizeof(float), size, fp);\r\n\tfclose(fp);\r\n}\r\n\r\nvoid IO::diskread_int(string filename, int array[], int size)\r\n{\r\n    FILE *fp;\r\n\tfp = fopen(filename.c_str(),\"rb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n\tfread(array, sizeof(int), size, fp);\r\n\tfclose(fp);\r\n}\r\n\r\nvoid IO::diskwrite_int(string filename, int array[], int size)\r\n{\r\n\tFILE *fp;\r\n\tfp = fopen(filename.c_str(),\"wb\");\r\n\tif(fp == NULL)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n\tfwrite(array, sizeof(int), size, fp);\r\n\tfclose(fp);\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/io.h",
    "content": "#ifndef IO_H_INCLUDED\r\n#define IO_H_INCLUDED\r\n\r\n#include<string>\r\n\r\nusing namespace std;\r\n\r\nclass IO{\r\n    public:\r\n    void diskread_float(string filename, float array[], int size);\r\n    void diskwrite_float(string filename, float array[], int size);\r\n    void diskread_int(string filename, int array[], int size);\r\n    void diskwrite_int(string filename, int array[], int size);\r\n};\r\n\r\n#endif // IO_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/knn.cpp",
    "content": "#include \"knn.h\"\r\n#include \"myvector.h\"\r\n#include <iostream>\r\n#include <cmath>\n#include <vector>\n#include <algorithm>\r\n\r\nusing namespace std;\r\nusing std::pair;\nusing std::make_pair;\n\r\nvoid Knn::init(){\r\n    for (int i = 0; i <= K; i++)\r\n\t{\r\n\t\tknnlist[i] = -1;\r\n\t\tdistlist[i] = -1;\r\n\t}\r\n\tsqrtbound = 1000000;\r\n}\r\n\r\n//linear scan the dataset and put the result in knnlist (order is not maintained)\r\nvoid Knn::linear_scan(float data[][D], float querypoint[])\r\n{\r\n    init();\r\n\tfor (int i = 0; i < datasize; i++)\r\n\t{\r\n\t\taddvertex(data, i, querypoint);\r\n\t}\r\n}\n///*\r\nvector<int> GenRandom (int size,int N)\n{\n    vector<int> addr;\n    addr.resize(size);\n    for (int i = 0; i < size; ++i) {\n        addr[i] = random() % (N - size);\n    }\n    sort(addr.begin(), addr.end());\n    for (int i = 1; i < size; ++i) {\n        if (addr[i] <= addr[i-1]) {\n            addr[i] = addr[i-1] + 1;\n        }\n    }\n    int off = random() % N;\n    for (int i = 0; i < size; ++i) {\n        addr[i] = (addr[i] + off) % N;\n    }\n    return addr;\n}//*/\n\r\n// check if data forcheck is a knn of querypoint, if yes maintain a new knn list\r\nvoid Knn::addvertex(float data[][D], int forcheck, float querypoint[])\r\n{\r\n\tfloat dist;\r\n\tdist = MyVector::distancel2sq(D,data[forcheck], querypoint,0);\r\n\tif (knnlist[K - 1] == -1)\r\n\t{\r\n\t\tfor (int i = 0; i < K; i++)\r\n\t\t{\r\n\t\t\tif (knnlist[i] == -1)\r\n\t\t\t{\r\n\t\t\t\tknnlist[i] = forcheck;// towrite here is a label for the datapoint\r\n\t\t\t\tdistlist[i] = dist;\r\n\t\t\t\tif (i == K - 1) computebound();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (dist >= bound) return;\r\n\tknnlist[tochange] = forcheck;\r\n\tdistlist[tochange] = dist;\r\n\tcomputebound();\r\n}\r\n\nvoid Knn::KNNsort()\n{\n    vector<pair<float,int> > nns_dist;\n    for (int i=0;i<K;i++) {\n      if (knnlist[i] == -1)\n        break;\n      nns_dist.push_back(make_pair(distlist[i],knnlist[i]));\n    }\n\n    size_t m = nns_dist.size();\n    std::partial_sort(&nns_dist[0], &nns_dist[m], &nns_dist[K]);\n    for(int i=0;i<m;i++)\n    {\n        knnlist[i]=nns_dist[i].second;\n        //distlist[i]=nns_dist[i].first;\n    }\n\n}\r\n//compute the bound : current largest knn distance and its index: tochange\r\nvoid Knn::computebound()\r\n{\r\n\tbound = distlist[0];\r\n\ttochange = 0;\r\n\tfor (int i = 1; i < K; i++)\r\n\t{\r\n\t\tif (distlist[i] > bound)\r\n\t\t{\r\n\t\t\tbound = distlist[i];\r\n\t\t\ttochange = i;\r\n\t\t}\r\n\t}\r\n\tsqrtbound = sqrt(bound);\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/knn.h",
    "content": "#ifndef KNN_H_INCLUDED\r\n#define KNN_H_INCLUDED\r\n\r\n#include \"constants.h\"\r\n#include \"myvector.h\"\n#include \"utility\"\n#include \"algorithm\"\r\nusing namespace std;\r\nclass Knn{\r\n    public:\r\n    int knnlist[K];\r\n    float distlist[K];\r\n    float sqrtbound;\r\n    private:\r\n    int tochange;\r\n    float bound;\r\n\n    private:\n    struct dist_pair{\n        float first;\n        int second;\n        dist_pair(float a,int b){first=a; second=b;}\n    };\n\r\n    public:\r\n    void init();\r\n    void linear_scan(float [][D], float []);\r\n    void addvertex(float [][D], int, float []);\r\n    void KNNsort();\n\r\n    private:\r\n    void computebound();\r\n};\r\n\r\n#endif // KNN_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/main.cpp",
    "content": "#include \"statisticsmodule.h\"\n#include \"SHindex.h\"\n#include \"SHgeneral.h\"\n#include \"SHselection.h\"\n#include \"data.h\"\n#include <iostream>\n#include <cstring>\n\n#define no_argument 0\n#define required_argument 1\n#define optional_argument 2\n\nSHGeneral shg;\nSHSelection shs;\nSHIndex shi;\nStatisticsModule st;\n\nfloat data[datasize][D];\nIO io;\nKnn knn;\n\n\n//int main()\n//{\n    //knn.getBaseR();\n    //R=120;\n    /*\n    io.diskread_float(\"ran/ran_base.dat\", data[0], datasize*D);\n    shi.query_load(\"ran/ran_query.dat\");\n    cout<<\"data read from disk\"<<endl;\n\n    //shi.GetDataQueryDistance();\n\n    //io.diskread_float(\"dq_distance.dat\",a[0],2000*100);\n    double start_=clock();\n    shi.linear_search();\n    double finish_=clock();\n    cout<<\"time\"<<(finish_ - start_)*1.0/ CLOCKS_PER_SEC<<endl;\n    io.diskwrite_int(\"ran/ran_groundtruth.dat\",shi.queryresult[0],querysize*K);\n    //shi.result_write(\"sift/SIFT1M result.dat\");\n    //st.stat_output(\"query.dat\",\"groundtruth.dat\",\"sift/SIFT1M result.dat\",\"sift/SIFT1M statistics.txt\",1);\n\n    cout<<\"program finished\"<<endl;\n    int forcin; cin>>forcin;*/\n\t//return 0;\n//}\n\n\nint main()\n{\n    \n    char data_name[20]=\"audio\";\n    //char params[10];\n    //sprintf(params,\"%.1fc\",c);\n    char data_path[100];\n    sprintf(data_path,\"../../../data/%s_base.lshkit\",data_name);\n    char query_path[100];\n    sprintf(query_path,\"../../../data/%s_query.lshkit\",data_name);\n\n    \n    char index_path[100];\n    sprintf(index_path,\"../indices/%s_%.1fc_index\",data_name,c);\n\n    //sprintf(index_path,\"indices_randomquery/%s_%.1fc_index\",data_name,c);\n    char result_path[100];\n    sprintf(result_path,\"../result/%s_%d_%.1fc.txt\",data_name,K,c);\n    //sprintf(result_path,\"/home/yzhang4/HD/home/liwen/Downloads/Dataset/%s/exp_fig/result/DSH/k=%d/%.1fc_randomquery.txt\",file_path,K,c);\n\n    char gnd_path[100];\n    sprintf(gnd_path,\"../../../data/%s_groundtruth.lshkit\", data_name);\n    //sprintf(gnd_path,\"/home/yzhang4/HD/home/liwen/Downloads/Dataset/%s/gnd/%s_groundtruth_randomquery.dat\",file_path,data_name);\n    char decision_path[50]=\"../result/decision.dat\";\n    char query_result_path[50]=\"../result/result.dat\";\n\n    io.diskread_float(data_path, data[0], datasize*D);\n    cerr <<\"data read from disk ........\"<<endl;\n//*\n\n    int start_=clock();\n\tshg.init();\n\tshs.radius_selection(decision_path);\n\t//index\n    shi.index_construct(decision_path);\n    int finish_=clock();\n    float indextime=(finish_-start_)*1.0/CLOCKS_PER_SEC;\n\n    //ofstream fout;\n    //fout.open(result_path,ios::app);\n    cout<<indextime<<\" #index construction time \"<<endl;\n\n    shi.index_write(index_path);\n\n    cerr << \"start the query processing ...\" << endl;\n\n\n    shi.index_load(index_path);\n    //fout.close();\n    //int Ltemp[16] = {5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,26,30,35,40,45,50};\n\n    //search\n    int MaxChecked[20]={50,100,300,500,700,1000,2000,3000,5000,7000,8000,10000,12000,15000,20000,30000,50000,60000,70000,100000};\n    int i=L;\n    //for(int i = 1; i <= 20; i++)\n    {\n    shi.query_load(query_path);\n    cerr<<\"load query .. \"<<endl;\n    for(int j=0;j<20;j++)\n    {\n        st.begin();\n        {\n            shi.query_execute(i,MaxChecked[j]);\n        }\n        cerr<<\"query success\";\n        //shi.query_execute(i);\n        st.finish();\n        shi.result_write(query_result_path);\n\n        //fout.open(result_path, ios::out | ios::app);\n        //fout.close();\n\n        st.stat_output(query_path,gnd_path,query_result_path,result_path,MaxChecked[j]);\n      }\n    }    \n\n    cerr <<\"program finished ....... \"<<endl;\n    //int forcin; cin>>forcin;\n\treturn 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/SH/src/myrandom.cpp",
    "content": "#include \"myrandom.h\"\r\n\r\n\r\nint MyRandom::int_random(int max) // generate a random num from 0 to max-1 (max may be any unsigned int)\r\n{\r\n\tlong long int longresult;\r\n\tint i = 1;\r\n\tlongresult = rand();\r\n\twhile (longresult < 16*max)\r\n\t{\r\n\t\ti = 16 * i;\r\n\t\tlongresult = 16*longresult + rand();\r\n\t}\r\n\tint result = longresult%max;\r\n\treturn result;\r\n}\r\n\r\n//generate a simple multi gaussian distribution n dimensions variance matrix is I\r\nvoid MyRandom::rand_multi_gaussian(float array[], int n)\r\n{\r\n\tfor (int i = 0; i < n; i++) array[i] = rand_single_gaussian();\r\n}\r\n\r\n// generate a random variable follows Gaussian distribution where mean = 0 varaince = 1\r\nfloat MyRandom::rand_single_gaussian()\r\n{\r\n\tint sum = 0;\r\n\tfor (int i = 0; i < 256; i++)\r\n\t{\r\n\t\tsum += rand() % 2;\r\n\t}\r\n\tfloat gaussian  = (float)(sum-128)/8;\r\n\t// this part is to avoid repeat series\r\n\tint test = rand()%8;\r\n\tint sleep;\r\n\tfor(int i = 0; i < test; i++) sleep = rand();\r\n\treturn gaussian;\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/myrandom.h",
    "content": "#ifndef MYRANDOM_H_INCLUDED\r\n#define MYRANDOM_H_INCLUDED\r\n\r\n#include <stdlib.h>\r\nclass MyRandom{\r\n    public:\r\n    static int int_random(int);\r\n    static void rand_multi_gaussian(float [], int);\r\n    static float rand_single_gaussian();\r\n};\r\n\r\n#endif // MYRANDOM_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/myvector.cpp",
    "content": "#include \"myvector.h\"\r\n#include <iostream>\r\nusing namespace std;\r\n\r\nfloat MyVector::dotproduct(int dim,float id1[], float id2[])\r\n{\r\n    float result = 0;\r\n\tfor (int i = 0; i < dim; i++)\r\n\t{\r\n\t\tresult += id1[i]*id2[i];\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n//compute the l2 square distance of two points\r\nfloat MyVector::distancel2sq(int dim,float id1[], float id2[], float bound)// compute the distance between id1 and id2\r\n{\r\n\t// to be optimized: use bound to filt\r\n\tfloat result = 0;\r\n\tfor (int i = 0; i < dim; i++)\r\n\t{\r\n\t\tresult += (id1[i] - id2[i])*(id1[i] - id2[i]);\r\n\t}\r\n\tif(result < 0) cout<<\"error negative distance\" <<endl;\r\n\treturn result;\r\n}\r\n"
  },
  {
    "path": "algorithms/SH/src/myvector.h",
    "content": "#ifndef MYVECTOR_H_INCLUDED\r\n#define MYVECTOR_H_INCLUDED\r\n\r\nclass MyVector{\r\n    public:\r\n    static float dotproduct(int,float [], float []);\r\n    static float distancel2sq(int,float [], float [], float);\r\n};\r\n\r\n#endif // MYRANDOM_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SH/src/statisticsmodule.cpp",
    "content": "#include \"statisticsmodule.h\"\r\n#include <iostream>\r\n#include <cmath>\n#include <algorithm>\n#include <time.h>\r\n#include <set>\n\r\n\r\n\nvoid StatisticsModule::stat_output(string query_file,string groundtruth_file,string result_file,string output_file,int Lused)\r\n{\r\n\tofstream fout;\r\n    fout.open(output_file.c_str(), ios::out | ios::app);\r\n    if(!fout)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n    io.diskread_float(query_file.c_str(), query[0], querysize*D);\r\n    io.diskread_int(groundtruth_file.c_str(), groundtruth[0], querysize*K);\r\n    io.diskread_int(result_file.c_str(), result[0], querysize*K);\n    //cout<<groundtruth[0][1]<<endl;\r\n    //cout<<\"load performance\";\r\n\tfloat recall = compute_recall();\n\t//float mrr = compute_mean_reciprocal_rank();\n\t//float nc = compute_number_closer();\n\t//float map = compute_mean_average_precision();\n\tfloat rde = compute_relative_distance_error();\n\t//float dcg = compute_discounted_culmulative_gain();\n\n    fout.setf(ios::fixed);//\" \"<<mrr<<\" \"<<nc <<\" \"<<map<<\" \"<<dcg<<\n    fout<<recall << \" \"<<rde <<\" \"<<(double)(finish_ - start_)/CLOCKS_PER_SEC/querysize<<\" #N_\" <<Lused<<\" \"<<endl;\r\n\tfout.close();\r\n}\r\n\n\nfloat StatisticsModule::compute_recall()\n{\n\tint sum=0;\n\tfor(int i=0;i<querysize;i++)\n\t{\n\t\tint re_n=0;\n\t\tint gs_n=0;\n\t\twhile(re_n<K && gs_n<K)\n\t\t{\n\t\t\tif(result[i][re_n] == groundtruth[i][gs_n])\n\t\t\t{\n\t\t\t\tsum++;\n\t\t\t\tre_n++;\n\t\t\t\tgs_n++;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tgs_n++;\n\t\t\t}\n\t\t}\n\t}\n\treturn sum*1.0/querysize/K;\n}\n\nfloat StatisticsModule::compute_mean_reciprocal_rank()\n{\n\tfloat avg = 0.0;\n\tfor (int i=0;i<querysize;i++)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(int j=0;j<K;j++)\n\t\t{\n\t\t\tif(groundtruth[i][0] == result[i][j])\n\t\t\t{\n\t\t\t\trate +=1.0/(j+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tavg+=rate;\n\t}\n\treturn avg/querysize;\n}\n\nfloat StatisticsModule::compute_number_closer()\n{\n\tfloat avg = 0.0;\n\tfor (int i=0;i<querysize;i++)\n\t{\n\t\tfloat rate=0.0;\n\t\tfor(int j=0;j<K;j++)\n\t\t{\n\t\t\tfor(int t=0;t<K;t++)\n\t\t\t{\n\t\t\t\tif(groundtruth[i][j] == result[i][t])\n\t\t\t\t{\n\t\t\t\t\trate +=(float)(j+1)/(t+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tavg+=rate/K;\n\t}\n\treturn avg/querysize;\n}\n\nfloat StatisticsModule::compute_relative_distance_error()\n{\n\tfloat count = 0.0;\n\tfor (int i=0; i<querysize; i++)//querysize\n\t{\n\t\tfloat sum=0.0;\n\t\tfor (int j=0;j<K;j++)//K\n\t\t{\n\t\t\tfloat min_distance= MyVector::distancel2sq(D,data[groundtruth[i][j]],query[i],100);\n\t\t\t//cout<<min_distance<<endl;\n\t\t\tif(min_distance==0)\n\t\t\t\tcontinue;\n\t\t\tfloat test_distance = MyVector::distancel2sq(D,data[result[i][j]],query[i],100);\n\n            if(test_distance<min_distance)\n                cout<<i<<\" \"<<j<<\" \"<<groundtruth[i][j]<<\" \"<<min_distance<<\" \"<<test_distance<<endl;\n               // cout<<i<<\" \"<<j<<endl;\n\t\t\tfloat d= (test_distance - min_distance )/min_distance;\n\t\t\tif(d >4)\n\t\t\t\tsum +=4;\n\t\t\telse\n\t\t\t\tsum +=d;\n\t\t}\n\t\tcount += sum /K;\n\t}\n\treturn count/ querysize;\n}\n\nfloat StatisticsModule::compute_mean_average_precision ()\n{\n\tfloat sum = 0;\n\tfor (int i = 0; i < querysize; ++i)\n\t{\n\t\tfloat rate = 0.0;\n\t\tint found = 0;\n\t\tstd::set<int> gnd_row;\n  \t\tfor(int j = 0; j <K; ++j) {\n      \t\tgnd_row.insert(groundtruth[i][j]);\n  \t\t}\n\t\tfor(int j=0;j <K; j++)\n\t\t{\n      \t\tif(gnd_row.find(result[i][j]) != gnd_row.end())\n\t\t\t{\n\t\t\t\tfound++;\n\t\t\t\trate += 1.0 * found/(j+1);\n      \t\t}\n    \t}\n\t\tsum += rate/K;\n\t}\n\treturn sum / querysize;\n}\n\nfloat StatisticsModule::compute_discounted_culmulative_gain ()\n{\n\tfloat sum = 0;\n\tfor (int i=0;i<querysize;i++)\n\t{\n\t\tfloat rate = 0.0;\n\t\tstd::set<int> gnd_row;\n  \t\tfor(size_t j = 0; j <K; ++j) {\n      \t\tgnd_row.insert(groundtruth[i][j]);\n  \t\t}\n\n\t\tfor(size_t j=0;j <K; j++)\n\t\t{\n      \t\tif(gnd_row.find(result[i][j]) != gnd_row.end())\n\t\t\t{\n\t\t\t\trate += 1.0 /log2(j+2);\n      \t\t}\n    \t}\n\t\tsum += rate;\n\t}\n\treturn sum / querysize;\n}\n\r\nvoid StatisticsModule::gen_query_and_groundtruth(string query_file, string groundtruth_file)\r\n{\r\n    sample_query();\r\n    cout<<\"query sampled\"<<endl;\r\n    io.diskwrite_float(query_file.c_str(), query[0], querysize*D);\r\n    cout<<\"query write to disk\"<<endl;\r\n    batch_linear_scan();\r\n    cout<<\"linear scan finished\"<<endl;\r\n    io.diskwrite_int(groundtruth_file.c_str(), groundtruth[0], querysize*K);\r\n    cout<<\"groundtruth write to disk\"<<endl;\r\n}\r\n\r\n//sample querysize query points from data and store in query\r\nvoid StatisticsModule::sample_query()\r\n{\r\n    for(int i = 0; i < querysize; i++)\r\n    {\r\n        int temp = MyRandom::int_random(datasize);\r\n        for(int j = 0; j < D; j++) query[i][j] = data[temp][j];\r\n    }\r\n    return;\r\n}\r\n\r\n//do batch check for all points\r\nvoid StatisticsModule::batch_linear_scan()\r\n{\r\n    for(int i = 0; i < querysize; i++)\r\n    {\r\n        knn.linear_scan(data, query[i]);\r\n        for(int j = 0; j < K; j++) groundtruth[i][j] = knn.knnlist[j];\r\n        cout<<i<<\"   \"<<knn.sqrtbound<<endl;\r\n    }\r\n    return;\r\n}\r/*\nvoid StatisticsModule::stat_output(string query_file,string groundtruth_file,string result_file,string output_file,int Lused)\r\n{\r\n\tofstream fout;\r\n    fout.open(output_file.c_str(), ios::out | ios::app);\r\n    if(!fout)\r\n\t{\r\n\t    cout << \"Cannot open file!\" << endl;;\r\n\t\texit(1);\r\n\t}\r\n    io.diskread_float(query_file.c_str(), query[0], querysize*D);\r\n    io.diskread_int(groundtruth_file.c_str(), groundtruth[0], querysize*K);\r\n    io.diskread_int(result_file.c_str(), result[0], querysize*K);\r\n\r\n    float sumerrorrate = 0;\r\n    float aveerrorate;\r\n    int sumrecall = 0;\r\n    float testdist[K],gtdist[K];\r\n    for(int i = 0; i < querysize; i++)\r\n    {\r\n\t\t for(int j = 0; j < K; j++)\r\n\t\t {\r\n\t\t\t testdist[j] = MyVector::distancel2sq(D,data[result[i][j]],query[i],100);\r\n\t\t\t //testdist[j] = sqrt(testdist[j]);\r\n\t\t\t gtdist[j] = MyVector::distancel2sq(D,data[groundtruth[i][j]],query[i],100);\r\n\t\t\t //gtdist[j] = sqrt(gtdist[j]);\r\n\t\t }\r\n\t\t sort(testdist,testdist+K);\r\n\t\t sort(gtdist,gtdist+K);\r\n\t\t for(int j = 0; j < K; j++)\r\n\t\t {\r\n\t\t     if(testdist[j] <= gtdist[K-1] + 0.0001)sumrecall++;\r\n\t\t\t if(testdist[j] <= gtdist[j] + 0.0001) continue;\r\n\t\t\t double temp = (testdist[j] - gtdist[j])/ gtdist[j];\r\n\t\t\t if(temp > 4) temp = 4;\r\n\t\t\t if(temp < -0.01) cout<<\"error perform better than optimal!\"<<endl;\r\n\t\t\t sumerrorrate += temp;\r\n\t\t }\r\n\t}\r\n\tfloat recall = (float)sumrecall/ (float)(querysize*K);\r\n    aveerrorate = sumerrorrate / (querysize*K);\r\n    //fout<<\"recall is \"<<recall<<endl;\r\n    //cout<<\"recall is \"<<recall<<endl;\r\n    //fout<<\"error rate is \"<<aveerrorate<<endl;\r\n    //cout<<\"error rate is \"<<aveerrorate<<endl;\r\n    float tempfl = (float)sumcheck;\r\n    tempfl = tempfl*50/((float)(querysize)*datasize);\r\n    //fout<<\"check rate is (%) \"<<tempfl<<endl;\r\n    //cout<<\"check rate is (%) \"<<tempfl<<endl;\n    fout<<recall << \" \"<<(double)(finish_ - start_)/CLOCKS_PER_SEC/querysize<<\" #N_\" <<Lused<<\" \"<<endl;\n\r\n    /*fout<<Lused<<\" \"<<\"   \"<<(double)(finish_ - start_)/CLOCKS_PER_SEC<<\" \";\r\n    fout<<recall<<\" \"<<aveerrorate<<\" \"<<sumcheck*1.0/querysize<<endl;\r\n    cout<<Lused<<\" \"<<(finish_ - start_)*1.0/ CLOCKS_PER_SEC<<\" \";\r\n    cout<<recall<<\" \"<<aveerrorate<<\" \"<<sumcheck*1.0/querysize<<endl;\r\n\tfout.close();\r\n}*/\n"
  },
  {
    "path": "algorithms/SH/src/statisticsmodule.h",
    "content": "#ifndef STAT_H_INCLUDED\r\n#define STAT_H_INCLUDED\r\n\r\nclass StatisticsModule;\r\n\r\n#include \"constants.h\"\r\n#include \"data.h\"\r\n#include <string>\r\n#include <fstream>\r\n\r\nclass StatisticsModule{\r\n    public:\r\n    void begin(){start_ = clock();};\r\n    void finish(){finish_ = clock();};\r\n    void stat_output(string query_file,string groundtruth_file,string result_file,string output_file,int);\n    //void stat_output(string query_file,string groundtruth_file,string output_file,int);\r\n    void gen_query_and_groundtruth(string query_file, string groundtruth_file);\n\tfloat compute_recall();\n\tfloat compute_mean_reciprocal_rank();\n\tfloat compute_number_closer();\n\tfloat compute_mean_average_precision();\n\tfloat compute_relative_distance_error();\n\tfloat compute_discounted_culmulative_gain();\n\r\n    private:\r\n    void sample_query();\r\n    void batch_linear_scan();\r\n\r\n    private:\r\n    double start_,finish_;\r\n    int result[querysize][K];\r\n    int groundtruth[querysize][K];\r\n    float query[querysize][D];\r\n\r\n    public:\r\n    double sumcheck;\r\n};\r\n\r\n#endif // STAT_H_INCLUDED\r\n"
  },
  {
    "path": "algorithms/SRS/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"srs---fast-approximate-nearest-neighbor-search-in-high-dimensional-euclidean-space-with-a-tiny-index\">SRS - Fast Approximate Nearest Neighbor Search in High Dimensional Euclidean Space With a Tiny Index</h1>\n<p>Please refer to our <a href=\"https://github.com/DBWangGroupUNSW/SRS\">GitHub reposit</a> for more details.</p>\n<h2 id=\"prerequisites.\">Prerequisites.</h2>\n<ul>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>gcc 4.7</code> and above)</li>\n<li>A linux system</li>\n<li>The users need to have Boost C++ library installed (http://www.boost.org/). The Boost library is used to calculate the quantile of chi-squared distribution.</li>\n<li><a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">A sample data</a> (e.g., audio) is downloaded, including its data points, query points and ground truth results. Note that we need to change data format later. All data files downloaded should be put the <code>./knn_benchmark/data</code> directory.</li>\n</ul>\n<h2 id=\"how-to-use-srs\">How to use SRS</h2>\n<ol style=\"list-style-type: decimal\">\n<li>Compile the program (SRS/src)</li>\n</ol>\n<pre><code>% make all</code></pre>\n<ol start=\"2\" style=\"list-style-type: decimal\">\n<li>Build Index (SRS/script)</li>\n</ol>\n<pre><code>% build.sh</code></pre>\n<ol start=\"3\" style=\"list-style-type: decimal\">\n<li>Conduct search (SRS/script)</li>\n</ol>\n<pre><code>% search.sh</code></pre>\n<h2 id=\"data-format\">Data Format</h2>\n<ol style=\"list-style-type: decimal\">\n<li>Data file should contain <em>n</em> lines, where <em>n</em> is the cardinality of the dataset. The file should be formatted as:</li>\n</ol>\n<pre><code>e_1_1 e_1_2 ... e_1_d\n...\ne_n_1 e_n_2 ... e_n_d</code></pre>\n<p>where <code>e_i_j</code>s are integers, and are separated by whitespace.</p>\n<ol start=\"2\" style=\"list-style-type: decimal\">\n<li>Query file should contain <em>N+1</em> lines, where <em>N</em> is the number of queries in the query workload. The file should be formatted as:</li>\n</ol>\n<pre><code>N d\nID_1 e_1_1 e_1_2 ... e_1_d\n...\nID_N e_N_1 e_N_2 ... e_N_d</code></pre>\n<p>where <em>d</em> is the dimensionality, <code>e_i_j</code> is an integer, and separated by whitespace.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/SRS/README.md",
    "content": "SRS - Fast Approximate Nearest Neighbor Search in High Dimensional Euclidean Space With a Tiny Index\n====================================================================================================\n\nPlease refer to our [GitHub reposit](https://github.com/DBWangGroupUNSW/SRS) for more details.\n\nPrerequisites.\n------------------\n\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- A linux system \n- The users need to have Boost C++ library installed (http://www.boost.org/). The Boost library is used to calculate the quantile of chi-squared distribution.\n- [A sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including its data points, query points and ground truth results. Note that we need to change data format later. All data files downloaded should be put the `./knn_benchmark/data` directory.\n\n\nHow to use SRS\n--------------\n\n1. Compile the program (SRS/src)\n\n```\n% make all\n```\n\n2. Build Index (SRS/script)\n\n```\n% build.sh\n```\n3. Conduct search (SRS/script)\n\n```\n% search.sh\n```\n\n\nData Format\n-----------\n\n1. Data file should contain _n_ lines, where _n_ is the cardinality of the\n   dataset. The file should be formatted as:\n\n```\ne_1_1 e_1_2 ... e_1_d\n...\ne_n_1 e_n_2 ... e_n_d\n```\n  \n  where `e_i_j`s are integers, and are separated by whitespace.\n\n2. Query file should contain _N+1_ lines, where _N_ is the number of queries in the\n   query workload. The file should be formatted as:\n  \n```\nN d\nID_1 e_1_1 e_1_2 ... e_1_d\n...\nID_N e_N_1 e_N_2 ... e_N_d\n```\n  where _d_ is the dimensionality, `e_i_j` is an integer, and separated by whitespace.\n\n\n"
  },
  {
    "path": "algorithms/SRS/script/build.sh",
    "content": "data_path=../../../data\nindex_path=../index\nmkdir ${index_path}\n\nfor data in \"audio\"\ndo\nindex_path=\"${index_path}/${data}\"\nmkdir ${index_path}\n\nn=53387\nnq=200\nd=192\nm=8\n\ncd ../src\n\necho \"== Calculating parameter ==\"\n./cal_param -n $n -m $m\n\necho \"== Indexing... ==\"\n./srs -I -d $d -i ${index_path}/ -m $m -n $n -s \"${data_path}/${data}_base.txt\" -p ${nq} -y f\n\ndone\n\n \n"
  },
  {
    "path": "algorithms/SRS/script/search.sh",
    "content": "data_path=../../../data\nquery_path=../../../data\ngnd_path=../../../data\nindex_path=../index\nresult_path=../results\nmkdir ${result_path}\n\nk=20\n\nfor data in \"audio\"\ndo\nindex_path=\"${index_path}/${data}\"\n\nn=53387\nnq=200\nd=192\nm=8\n\ncd ../src\n\nfor c in 100 500 1000\ndo\n\n./srs -Q -c 4 -g ${gnd_path}/${data}_groundtruth.txt -i ${index_path}/ -k $k -q ${query_path}/${data}_query.txt -t ${c} -r 1.315558 -p ${nq} -y f -d $d -m ${m} -n $n -o ${result_path}/${data}.txt\n\ndone\ndone\n\n \n"
  },
  {
    "path": "algorithms/SRS/src/Makefile",
    "content": "##############\n# Make the SRS project\n##############\n\nboost_dir=\"/home/yingz/Software/boost_1_58_0/\"\nboost_lib=\"/usr/local/lib\"\n\nPROD\t:= DEBUG\nOPT     := -O3 # -pg\nVERSION := \\\"0.1_${PROD}\\\"\nTARGETS := srs cal_param gen_gt gen_hard_data #name of binary file\nDEFINES := #-DREAL_PROF\nSRCS    := srs.cpp ProjData.cpp ParamFile.cpp RandGen.cpp SRSCoverTree.cpp cal_param.cpp gen_gt.cpp gen_hard_data.cpp\n\nCCFLAGS = -std=c++11 ${OPT} -Wno-deprecated -ggdb -D${PROD} ${DEFINES} -I./ -DVERSION=${VERSION} -L${boost_lib} -I${boost_dir}\nLDLIBS+= -L${boost_lib}\n\nLDFLAGS = ${OPT} -ggdb  \nLIBS    = \nCC\t= g++ \nOBJS    := ${SRCS:.cpp=.o}\n\n\n.PHONY: all clean distclean \nall:: ${TARGETS} \n\nsrs: srs.o SRSCoverTree.o ParamFile.o ProjData.o RandGen.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\ncal_para: cal_param.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\ngen_gt: gen_gt.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\ngen_hard_data: gen_hard_data.o RandGen.o\n\t${CC} ${LDFLAGS} -o $@ $^ ${LIBS}\n\n${OBJS}: %.o: %.cpp\n\t${CC} ${CCFLAGS} -o $@ -c $< \n\nclean:: \n\t-rm -f *~ *.o ${TARGETS}\n\ndistclean:: clean\n"
  },
  {
    "path": "algorithms/SRS/src/ParamFile.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include \"ParamFile.h\"\n\n#include <stdio.h>\n#include <string.h>\n\nvoid writeParamFile(char * file_path, long long n, int d, int m, int B,\n                    float * proj, const char * type) {\n  FILE * fp = fopen(file_path, \"w\");\n\n  fprintf(fp, \"B = %d\\n\", B);\n  fprintf(fp, \"n = %ld\\n\", n);\n  fprintf(fp, \"d = %d\\n\", d);\n  fprintf(fp, \"m = %d\\n\", m);\n\n  for (int i = 0; i < m * d; i++) {\n    fprintf(fp, \"%f \", proj[i]);\n  }\n  fprintf(fp, \"\\n%s s\", type);\n\n  fclose(fp);\n}\n\nfloat * readParamFile(char * index_path, long long &n, int &d, int &m, int &B,\n                      char * type) {\n  char file_path[100];\n  strcpy(file_path, index_path);\n  strcat(file_path, \"para.txt\");\n  FILE *fp = fopen(file_path, \"r\");\n\n  fscanf(fp, \"B = %d\\n\", &B);\n  fscanf(fp, \"n = %ld\\n\", &n);\n  fscanf(fp, \"d = %d\\n\", &d);\n  fscanf(fp, \"m = %d\\n\", &m);\n\n  float *proj = new float[m * d];\n  for (int i = 0; i < m * d; i++) {\n    fscanf(fp, \"%f\", &proj[i]);\n  }\n\n  fscanf(fp, \"\\n\");\n  int i = 0;\n  ;\n  fgets(type, 100, fp);  //, \"%s\", type);\n  for (; type[i] != ' '; ++i) {\n  }\n  type[i] = 0;\n\n  fclose(fp);\n  return proj;\n}\n"
  },
  {
    "path": "algorithms/SRS/src/ParamFile.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef PARAMFILE_H_\n#define PARAMFILE_H_\n\nvoid writeParamFile(char * file_path, long long n, int d, int m, int B,\n                    float * proj, const char * type);  // write the para file out (as part of the index)\nfloat * readParamFile(char * index_path, long long &n, int &d, int &m, int &B,\n                      char * type);  // read parameters from para file\n\n#endif /* PARAMFILE_H_ */\n"
  },
  {
    "path": "algorithms/SRS/src/ProjData.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include \"ProjData.h\"\n\n#include <math.h>\n#include <stdlib.h>\n#include <stdio.h>\n\ninline float cal_squared_dist_1(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]);\n}\n\ninline float cal_squared_dist_2(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]);\n}\n\ninline float cal_squared_dist_3(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]);\n}\n\ninline float cal_squared_dist_4(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3]);\n}\ninline float cal_squared_dist_5(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]);\n}\ninline float cal_squared_dist_6(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]) + (a[5] - b[5]) * (a[5] - b[5]);\n}\ninline float cal_squared_dist_7(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]) + (a[5] - b[5]) * (a[5] - b[5])\n      + (a[6] - b[6]) * (a[6] - b[6]);\n}\ninline float cal_squared_dist_8(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]) + (a[5] - b[5]) * (a[5] - b[5])\n      + (a[6] - b[6]) * (a[6] - b[6]) + (a[7] - b[7]) * (a[7] - b[7]);\n}\ninline float cal_squared_dist_9(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]) + (a[5] - b[5]) * (a[5] - b[5])\n      + (a[6] - b[6]) * (a[6] - b[6]) + (a[7] - b[7]) * (a[7] - b[7])\n      + (a[8] - b[8]) * (a[8] - b[8]);\n}\ninline float cal_squared_dist_10(float * a, float * b) {\n  return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])\n      + (a[2] - b[2]) * (a[2] - b[2]) + (a[3] - b[3]) * (a[3] - b[3])\n      + (a[4] - b[4]) * (a[4] - b[4]) + (a[5] - b[5]) * (a[5] - b[5])\n      + (a[6] - b[6]) * (a[6] - b[6]) + (a[7] - b[7]) * (a[7] - b[7])\n      + (a[8] - b[8]) * (a[8] - b[8]) + (a[9] - b[9]) * (a[9] - b[9]);\n}\n\nProj_data::Proj_data(long long n, int d, float * data) {\n  this->n = n;\n  this->d = d;\n  if (data == NULL) {\n    this->data = new float[n * d];\n  } else {\n    this->data = data;\n  }\n  return;\n}\n\nProj_data::~Proj_data() {\n  delete[] this->data;\n}\n\nfloat Proj_data::cal_squared_dist(long long id1, long long id2) {\n  float * a = &data[d * id1];\n  float * b = &data[d * id2];\n  switch (d) {\n    case 6:\n      return cal_squared_dist_6(a, b);\n      break;\n    case 7:\n      return cal_squared_dist_7(a, b);\n      break;\n    case 8:\n      return cal_squared_dist_8(a, b);\n      break;\n    case 9:\n      return cal_squared_dist_9(a, b);\n      break;\n    case 10:\n      return cal_squared_dist_10(a, b);\n      break;\n    case 1:\n      return cal_squared_dist_1(a, b);\n      break;\n    case 2:\n      return cal_squared_dist_2(a, b);\n      break;\n    case 3:\n      return cal_squared_dist_3(a, b);\n      break;\n    case 4:\n      return cal_squared_dist_4(a, b);\n      break;\n    case 5:\n      return cal_squared_dist_5(a, b);\n      break;\n    default:\n      break;\n  }\n  float res = 0.0, diff0, diff1, diff2, diff3;\n  int iter = d / 4, last = d % 4;\n  for (int i = 0; i < iter; ++i) {\n    diff0 = a[0] - b[0];\n    diff1 = a[1] - b[1];\n    diff2 = a[2] - b[2];\n    diff3 = a[3] - b[3];\n    res += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n    a += 4;\n    b += 4;\n  }\n  for (int i = 0; i < last; ++i) {\n    diff0 = *a++ - *b++;\n    res += diff0 * diff0;\n  }\n  return res;\n}\n\nfloat Proj_data::cal_squared_dist(long long id, float * q) {\n  float * a = &data[d * id];\n  switch (d) {\n    case 6:\n      return cal_squared_dist_6(a, q);\n      break;\n    case 7:\n      return cal_squared_dist_7(a, q);\n      break;\n    case 8:\n      return cal_squared_dist_8(a, q);\n      break;\n    case 9:\n      return cal_squared_dist_9(a, q);\n      break;\n    case 10:\n      return cal_squared_dist_10(a, q);\n      break;\n    case 1:\n      return cal_squared_dist_1(a, q);\n      break;\n    case 2:\n      return cal_squared_dist_2(a, q);\n      break;\n    case 3:\n      return cal_squared_dist_3(a, q);\n      break;\n    case 4:\n      return cal_squared_dist_4(a, q);\n      break;\n    case 5:\n      return cal_squared_dist_5(a, q);\n      break;\n    default:\n      break;\n  }\n  float res = 0.0, diff0, diff1, diff2, diff3;\n  int iter = d / 4, last = d % 4;\n  for (int i = 0; i < iter; ++i) {\n    diff0 = a[0] - q[0];\n    diff1 = a[1] - q[1];\n    diff2 = a[2] - q[2];\n    diff3 = a[3] - q[3];\n    res += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n    a += 4;\n    q += 4;\n  }\n  for (int i = 0; i < last; ++i) {\n    diff0 = *a++ - *q++;\n    res += diff0 * diff0;\n  }\n  return res;\n}\n\nfloat Proj_data::cal_dist(long long id1, long long id2) {\n  float * a = &data[d * id1];\n  float * b = &data[d * id2];\n  switch (d) {\n    case 6:\n      return sqrt(cal_squared_dist_6(a, b));\n      break;\n    case 7:\n      return sqrt(cal_squared_dist_7(a, b));\n      break;\n    case 8:\n      return sqrt(cal_squared_dist_8(a, b));\n      break;\n    case 9:\n      return sqrt(cal_squared_dist_9(a, b));\n      break;\n    case 10:\n      return sqrt(cal_squared_dist_10(a, b));\n      break;\n    case 1:\n      return sqrt(cal_squared_dist_1(a, b));\n      break;\n    case 2:\n      return sqrt(cal_squared_dist_2(a, b));\n      break;\n    case 3:\n      return sqrt(cal_squared_dist_3(a, b));\n      break;\n    case 4:\n      return sqrt(cal_squared_dist_4(a, b));\n      break;\n    case 5:\n      return sqrt(cal_squared_dist_5(a, b));\n      break;\n    default:\n      break;\n  }\n\n  float res = 0.0, diff0, diff1, diff2, diff3;\n  int iter = d / 4, last = d % 4;\n  for (int i = 0; i < iter; ++i) {\n    diff0 = a[0] - b[0];\n    diff1 = a[1] - b[1];\n    diff2 = a[2] - b[2];\n    diff3 = a[3] - b[3];\n    res += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n    a += 4;\n    b += 4;\n  }\n  for (int i = 0; i < last; ++i) {\n    diff0 = *a++ - *b++;\n    res += diff0 * diff0;\n  }\n  return sqrt(res);\n}\n\nfloat Proj_data::cal_dist(long long id, float * q) {\n  float * a = &data[d * id];\n  switch (d) {\n    case 6:\n      return sqrt(cal_squared_dist_6(a, q));\n      break;\n    case 7:\n      return sqrt(cal_squared_dist_7(a, q));\n      break;\n    case 8:\n      return sqrt(cal_squared_dist_8(a, q));\n      break;\n    case 9:\n      return sqrt(cal_squared_dist_9(a, q));\n      break;\n    case 10:\n      return sqrt(cal_squared_dist_10(a, q));\n      break;\n    case 1:\n      return sqrt(cal_squared_dist_1(a, q));\n      break;\n    case 2:\n      return sqrt(cal_squared_dist_2(a, q));\n      break;\n    case 3:\n      return sqrt(cal_squared_dist_3(a, q));\n      break;\n    case 4:\n      return sqrt(cal_squared_dist_4(a, q));\n      break;\n    case 5:\n      return sqrt(cal_squared_dist_5(a, q));\n      break;\n    default:\n      break;\n  }\n  float res = 0.0, diff0, diff1, diff2, diff3;\n  int iter = d / 4, last = d % 4;\n  for (int i = 0; i < iter; ++i) {\n    diff0 = a[0] - q[0];\n    diff1 = a[1] - q[1];\n    diff2 = a[2] - q[2];\n    diff3 = a[3] - q[3];\n    res += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n    a += 4;\n    q += 4;\n  }\n  for (int i = 0; i < last; ++i) {\n    diff0 = *a++ - *q++;\n    res += diff0 * diff0;\n  }\n  return sqrt(res);\n}\n\nvoid Proj_data::print_row(long long index) {\n  for (int i = 0; i < d; ++i) {\n    printf(\"%f \", data[index * d + i]);\n  }\n  printf(\"\\n\");\n}\n"
  },
  {
    "path": "algorithms/SRS/src/ProjData.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef PROJDATA_H_\n#define PROJDATA_H_\n\n// Similar to raw_data, but for projected data, as raw data are \n// integers while projected data are floating numbers\nclass Proj_data {\n private:\n  long long n;\n  int d;\n\n public:\n  float * data;  // data\n  Proj_data(long long n, int d, float *data);\n  virtual ~Proj_data();\n\n  float cal_squared_dist(long long id1, long long id2);  // calculate distance between two points in the dataset (given their ids)\n  float cal_squared_dist(long long id, float *q);  // calculate distance between given vector (i.e., q) and point in the dataset (i.e., id)\n  float cal_dist(long long id1, long long id2);  // calculate distance between two points in the dataset (given their ids)\n  float cal_dist(long long id, float *q);  // calculate distance between given vector (i.e., q) and point in the dataset (i.e., id)\n\n  void print_row(long long i);  // print out the i-th vector in the dataset (i start from 0)\n};\n\n#endif /* PROJDATA_H_ */\n"
  },
  {
    "path": "algorithms/SRS/src/README.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\n<head>\n<title>srs_v2.2/README.html</title>\n\n</head>\n\n<body>\n\n<h1>SRS - Fast Approximate Nearest Neighbor Search in High Dimensional Euclidean Space With Tiny Index</h1>\n\n<p>SRS-Mem is a C++ program for performing approximate nearest neighbor search in\nhigh dimension Euclidean space in the main memory. The current implementation is\nadapted from our\n<a href=\"http://www.cse.unsw.edu.au/~weiw/files/VLDB15-SRS-Final.pdf\">VLDB'15 research paper</a>.\nThe main modification is to use an in-memory multidimensional index (rather than\nan R-tree as in the paper), as it is often the case that our index is so small\nand can be accommodated in the main memory. Currently, the index is a modified\nversion of the\n<a href=\"http://hunch.net/~jl/projects/cover_tree/cover_tree.html\">Cover Tree</a> due to\nits strong theoretical guarantees; nevertheless, any multidimensional index that\nsupports incremental exact <em>k</em>NN search can be used!</p>\n\n<h2>Features</h2>\n\n<ul>\n<li><p><strong>Guaranteed Success Probability</strong></p>\n\n<p>Theoretically, SRS guarantees to return a <em>c</em>-approximate nearest neighbor to\nthe query with a user specified probability even in the worst case. For\nexample, many heuristic methods will not return a near neighbor on some hard\ndatasets (e.g., those generated by <code>gen_hard_data</code>).</p>\n\n<p>There are several other unique theoretical properties of the SRS algorithm.\nThe top-<em>k</em> version of SRS guarantees to return <em>c</em>-<em>k</em>-approximate nearest\nneighbors with constant probability (while previous methods have no guarantee\nfor <em>k</em> > 1), and the <code>SRS-1</code> algorithm guarantees to return <em>nearest\nneighbor</em> (i.e., <em>c</em> = 1) to the query with any user specified success\nprobability.</p></li>\n<li><p><strong>Small Index Size</strong></p>\n\n<p>The index size of SRS is substantially smaller than the size of original data.\nFor example, the index size for a 12GB data set (8 million 384-dimension\npoints) is only 337MB. This means that the SRS index usually can be\naccommodated <em>entirely</em> in the main memory.</p>\n\n<p>As a side note, our index and query processing algorithm is independent of the\ndimensionality of the dataset, i.e., it works for arbitrarily high dimensions. </p></li>\n<li><p><strong>Rich Functionality</strong></p>\n\n<p>The users can easily achieve a space-time balance by tuning parameters even\nafter the index has been built. All four variants of the query processing\nalgorithm in the paper are supported.</p></li>\n</ul>\n\n<h2>How it works</h2>\n\n<p>In a nutshell, SRS reduces the problem of \"approximate NN search in high\ndimensional space\" to a \"exact T-NN search in a low dimensional space\". </p>\n\n<p>In the indexing phase, SRS projects data points from the original\nhigh-dimensional space into an appropriately chosen <em>m</em>-dimensional space via\n2-stable random projections, and then uses a cover-tree to index these projected\npoints.</p>\n\n<p>The key observation is that the inter-point distance in the projected space\n(called <em>Projected Distance</em>) over that in the original high-dimensional space\nfollows a scaled chi-squared distribution, which has a sharp concentration bound.\nTherefore, given any threshold on the projected distance, and for any point <em>o</em>,\nwe can compute exactly the probability that <em>o</em>'s projected distance is within the\nthreshold.</p>\n\n<p>In the querying phase, SRS performs an incrementally <em>k</em>-NN search on the\nprojected space, until when it has found a satisfactory point (i.e.,\nearly-termination condition), or it has examined <em>t * n</em> points (i.e.,\nnormal-termination condition).</p>\n\n<h2>Before start</h2>\n\n<ul>\n<li>The users need to have Boost C++ library installed (http://www.boost.org/).\nThe Boost library is used to calculate the quantile of chi-squared\ndistribution.</li>\n<li>Currently the program has only been tested on Linux.</li>\n<li>There are four key parameters to the SRS algorithms:\n<ul>\n<li><em>n</em>: number of data points. </li>\n<li><em>c</em>: approximation ratio. </li>\n<li><em>m</em>: number of 2-stable random projections to be used in the index. </li>\n<li><em>prob_thres</em>: the probability that the algorithm returns a <em>c</em>-approximate NN. \nTypically, <em>n</em> is fixed, and one can fine tune the other three parameters to\nachieve different space/time/quality tradoffs. Fixing any of the two\nparameters will place a constraint on the third parameter.</li>\n</ul></li>\n<li>In addition to these input parameters, the program also generate an internal\nparameter <em>t</em>: the fraction of data points to be examined before the search\nterminates in the normal condition. </li>\n</ul>\n\n<h2>How to use SRS</h2>\n\n<ol>\n<li><p>Compile the program:</p>\n\n<p><code>\n% make all\n</code></p></li>\n<li><p>Use <code>cal_param</code> to calculate a feasible setting of parameters based on the\ngiven constraints. The users can manually set either <em>m</em> or <em>the success\nprobability</em>. A feasible setting of parameters will be printed on the screen\nand it can be used later in the query processing phase. The implementation is\nbased on Algorithm 6 in the paper. For example (using the toy dataset with\n3000 points):</p>\n\n<p><code>\n% ./cal_param -n 3000 -m 7 -c 4\n</code></p>\n\n<p>The following message will be printed out:</p>\n\n<p><code>\nA feasible setting is:\nm = 7\nprob_thres(-r) = 0.299203\nT_max(-t) = 2\nt = 0.000544\n</code></p>\n\n<p>The output indicates that, in the query processing phase, the users shall\nuse the arguments <code>-c 4</code>, <code>-m 7</code>, <code>-r 0.299203</code> and <code>-t 2</code>.</p>\n\n<p>As a rule of thumb, we recommend setting <em>m</em> between 6 and 10, to begin with.</p></li>\n<li><p>Use <code>gen_gt</code> to generate the ground truth of given dataset and query\nworkload. The ground truth file will be used when processing the query\nworkload. For example (using the toy dataset):</p>\n\n<p><code>\n% ./gen_gt -d 192 -n 3000 -k 10 -q data/toy.q -s data/toy.ds -g data/toy.gt -y i\n</code></p>\n\n<p><code>-y i</code> indicates that each coordinates is an integer. The other option is <code>-y\nf</code>, indicating that each coordinates is a floating point number.</p></li>\n<li><p>Use <code>srs</code> with the <code>-I</code> option to index the data. Users need to specify <em>m</em> and\n<em>index path</em> in this step. For example (using the toy dataset):</p>\n\n<p><code>\n% mkdir index\n% ./srs -I -d 192 -i index/ -m 7 -n 3000 -s data/toy.ds -y i\n</code></p></li>\n<li><p>Use <code>srs</code> with the <code>-Q</code> option to process the query workload. The\nimplementation is based on Algorithm 1 in the paper and its variants. The\ntop-<em>k</em> approximate nearest neighbors for each query in the query workload\nwill be returned, together with the average ratio and time over all queries.</p>\n\n<p>Users can use the parameter setting given by <code>cal_param</code>. For\nexample (using the toy dataset):</p>\n\n<p><code>\n% ./srs -Q -c 4 -g data/toy.gt -i index/ -k 10 -q data/toy.q -t 2 -r 0.299203\n</code></p>\n\n<p>Alternatively, users can also specify the parameters by themselves to achieve another\nspace-time trade-off.</p></li>\n<li><p>The users can change the <code>-t</code> parameter to <em>n</em> (i.e., the cardinality of the\ndataset) to force the algorithm rely on the early-termination condition to\nstop. This will increase the quality and slightly increase the time cost.\nThis is the <code>SRS-2</code> algorithm in the paper.</p></li>\n<li><p>The users can change the <code>-r</code> parameter to any number larger than 1, to force the\nalgorithm stop only on the normal-termination condition (i.e., examining <em>tn</em>\ndata points). This will substantially increase the quality and time cost.\nThis is the <code>SRS-1</code> algorithm in the paper.</p></li>\n<li><p>The users can change the <code>-c</code> parameter to a smaller value to achieve better\nquality without affecting the worst case time cost. This is the <code>SRS-12+</code>\nalgorithm in the paper.</p></li>\n</ol>\n\n<h2>Data Format</h2>\n\n<ol>\n<li><p>Data file should contain <em>n</em> lines, where <em>n</em> is the cardinality of the\ndataset. The file should be formatted as:</p>\n\n<p><code>\ne_1_1 e_1_2 ... e_1_d\n...\ne_n_1 e_n_2 ... e_n_d\n</code></p>\n\n<p>where <code>e_i_j</code>s are integers, and are separated by whitespace.</p></li>\n<li><p>Query file should contain <em>N+1</em> lines, where <em>N</em> is the number of queries in the\nquery workload. The file should be formatted as:</p>\n\n<p><code>\nN d\nID_1 e_1_1 e_1_2 ... e_1_d\n...\nID_N e_N_1 e_N_2 ... e_N_d\n</code>\nwhere <em>d</em> is the dimensionality, <code>e_i_j</code> is an integer, and separated by whitespace.</p></li>\n</ol>\n\n<h2>Hard Dataset</h2>\n\n<ul>\n<li><p>Users can use <code>gen_hard_data</code> to generate a hard dataset with a user specified\ncardinality, dimensionality and approximation ratio. The dataset contains one\npoint which is the nearest neighbor of query. All the other points are\n(c+&#949;)-NN of query (c is user specified approximation ratio), and these\npoints are distributed randomly and uniformly on a sphere centered at the\nquery point with radius c+&#949;.</p></li>\n<li><p>An example of using <code>gen_hard_data</code>:</p>\n\n<p><code>\n% ./gen_hard_data -n 1000000 -d 128 -c 4 -s hard.ds -q hard.q\n</code></p>\n\n<p>Then a dataset contains 1,000,000 points (i.e., <code>hard.ds</code>) and a query set\ncontains 1 query (i.e., <code>hard.q</code>) will be generated.</p></li>\n</ul>\n\n<h2>Condition of use</h2>\n\n<ul>\n<li>SRS is distributed under the terms of the GPL License.</li>\n<li>Copyright is owned by DBWang Group, University of New South Wales, Australia.</li>\n</ul>\n\n<h2>Future work</h2>\n\n<ul>\n<li>Support more input data formats.</li>\n<li>Integrate SRS with other multidimensional indexing methods.</li>\n</ul>\n\n<h2>Contact</h2>\n\n<p>Please report bugs, feature requests, comments, or suggestions to Yifang Sun\n(<code>yifangs AT cse.unsw.edu.au</code>) or Wei Wang (<code>weiw AT cse.unsw.edu.au</code>).</p>\n\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/SRS/src/RandGen.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <math.h>\n#include <stdlib.h>\n#include \"RandGen.h\"\n\n/************************************************************\n ***  Given a mean and a standard deviation, gaussian       **\n **   generates a normally distributed random number        **\n **   Algorithm:  Polar Method, p.  104, Knuth, vol. 2      **\n ************************************************************/\n\nfloat gaussian(float mean, float sigma) {\n  float v1, v2;\n  float s;\n  float x;\n\n  do {\n    v1 = 2 * uniform(0, 1) - 1;\n    v2 = 2 * uniform(0, 1) - 1;\n    s = v1 * v1 + v2 * v2;\n  } while (s >= 1.);\n\n  x = v1 * (float) sqrt(-2. * log(s) / s);\n\n  /*  x is normally distributed with mean 0 and sigma 1.  */\n  x = x * sigma + mean;\n\n  return (x);\n}\n\n/************************************************************\n ** Generates a random number between _min and _max         **\n ** uniformly                                               **\n ** By Yufei Tao\n ************************************************************/\n\nfloat uniform(float _min, float _max) {\n  int int_r = rand();\n  long base = RAND_MAX - 1;\n  float f_r = ((float) int_r) / base;\n  return (_max - _min) * f_r + _min;\n}\n\n"
  },
  {
    "path": "algorithms/SRS/src/RandGen.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef RANDGEN_H_\n#define RANDGEN_H_\n\nfloat gaussian(float mean, float sigma);\nfloat uniform(float _min, float _max);\n\n#endif /* RANDGEN_H_ */\n"
  },
  {
    "path": "algorithms/SRS/src/Rawdata.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef RAWDATA_H_\n#define RAWDATA_H_\n\n#include <type_traits>\n#include <stdio.h>\n\ntemplate<typename T>\nstruct Accumulator {\n  typedef T Type;\n};\ntemplate<>\nstruct Accumulator<float> {\n  typedef double Type;\n};\ntemplate<>\nstruct Accumulator<int> {\n  typedef long long Type;\n};\n\ntemplate<class T>\nclass Raw_data {\n  typedef typename Accumulator<T>::Type ResultType;\n public:\n  long long n;\n  int d;\n\n  Raw_data(long long n, int d, char * data_file_path) {\n    this->n = n;\n    this->d = d;\n    this->data = new T[n * d];\n    FILE *fp = fopen(data_file_path, \"rb\");\n    fread(data, sizeof(T), n * d, fp);\n    fclose(fp);\n  }\n\n  virtual ~Raw_data() {\n    delete[] this->data;\n  }\n\n  ResultType cal_squared_dist(long long id, T * q) {\n    ResultType res = 0, diff0, diff1, diff2, diff3;\n    T * a = &data[d * id];\n    int iter = d / 4, last = d % 4;\n    for (int i = 0; i < iter; ++i) {\n      diff0 = a[0] - q[0];\n      diff1 = a[1] - q[1];\n      diff2 = a[2] - q[2];\n      diff3 = a[3] - q[3];\n      res += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n      a += 4;\n      q += 4;\n    }\n\n    for (int i = 0; i < last; ++i) {\n      diff0 = *a++ - *q++;\n      res += diff0 * diff0;\n    }\n\n    return res;\n  }\n\n private:\n  T * data;\n};\n\n#endif /* RAWDATA_H_ */\n"
  },
  {
    "path": "algorithms/SRS/src/SRSCoverTree.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include \"SRSCoverTree.h\"\n\nstruct search_node {\n  float min_dist;\n  CompressedTreeNode * node;\n  int id;\n\n  bool operator>(const search_node &) const;\n  bool operator>=(const search_node &) const;\n  bool operator==(const search_node &) const;\n  bool operator<=(const search_node &) const;\n  bool operator<(const search_node &) const;\n};\n\nbool search_node::operator>(const search_node &n) const {\n  return min_dist < n.min_dist;\n}\nbool search_node::operator>=(const search_node &n) const {\n  return min_dist <= n.min_dist;\n}\nbool search_node::operator==(const search_node &n) const {\n  return min_dist == n.min_dist;\n}\nbool search_node::operator<=(const search_node &n) const {\n  return min_dist >= n.min_dist;\n}\nbool search_node::operator<(const search_node &n) const {\n  return min_dist > n.min_dist;\n}\n\nfloat base = 1.3;  // 2 in cover-tree paper\n\nfloat il2 = 1. / log(base);\n\ninline float dist_of_scale(int s) {\n  return pow(base, s);\n}\n\ninline int get_scale(float d) {\n  return (int) ceilf(il2 * log(d));\n}\n\ninline int min(int a, int b) {\n  if (a <= b)\n    return a;\n  else\n    return b;\n}\n\ninline float max(float a, float b) {\n  if (a >= b)\n    return a;\n  else\n    return b;\n}\n\nSRS_Cover_Tree::SRS_Cover_Tree(long long n, int d, Proj_data * data) {\n  this->n = n;\n  this->isVectorized = false;\n  this->num_node = 0;\n  this->data = data;\n  this->d = d;\n  this->root = NULL;\n  this->heap = NULL;\n  this->query = NULL;\n  this->pool = NULL;\n\n  this->construct();\n  this->compressed_vectorization();\n}\n\nSRS_Cover_Tree::SRS_Cover_Tree(char * file_path) {\n  read_from_disk_compressed(file_path);\n}\n\nSRS_Cover_Tree::~SRS_Cover_Tree() {\n  free(pool);\n  delete this->data;\n}\n\nTreeNode * SRS_Cover_Tree::new_node(int id) {\n  TreeNode * node = new TreeNode;\n  if (isVectorized == true) {\n    // Cannot Change the tree node structure as it is Vectorized.\n    // This version only support bulk loading index construction.\n    fprintf(stderr,\n            \"Cannot new node after cover-tree is already vectorized.\\n\");\n    return NULL;\n  }\n  node->pivot = id;\n  node->max_dist = 0;\n  node->nextSibling = NULL;\n  node->firstChild = NULL;\n  num_node++;\n  return node;\n}\n\nfloat SRS_Cover_Tree::get_max(v_array<ds_node> set) {\n  float max = -1.0;\n  for (int i = 0; i < set.index; ++i) {\n    if (max < set[i].dist.last()) {\n      max = set[i].dist.last();\n    }\n  }\n  return max;\n}\n\nvoid SRS_Cover_Tree::split(v_array<ds_node> &point_set,\n                           v_array<ds_node> &far_set, int scale) {\n  unsigned int new_index = 0;\n  float thres = dist_of_scale(scale);\n  for (int i = 0; i < point_set.index; i++) {\n    if (point_set[i].dist.last() <= thres) {\n      point_set[new_index++] = point_set[i];\n    } else {\n      push(far_set, point_set[i]);\n    }\n  }\n  point_set.index = new_index;\n}\n\nvoid SRS_Cover_Tree::dist_split(v_array<ds_node>& point_set,\n                                v_array<ds_node>& new_point_set, int new_pivot,\n                                int scale) {\n  unsigned int new_index = 0;\n  float thres = dist_of_scale(scale);\n  for (int i = 0; i < point_set.index; i++) {\n    float new_dist = data->cal_dist(new_pivot, point_set[i].id);\n    if (new_dist <= thres) {\n      push(point_set[i].dist, new_dist);\n      push(new_point_set, point_set[i]);\n    } else {\n      point_set[new_index++] = point_set[i];\n    }\n  }\n  point_set.index = new_index;\n}\n\nTreeNode * SRS_Cover_Tree::batch_insert(int pivot, int max_scale, int top_scale,\n                                        v_array<ds_node> &point_set,\n                                        v_array<ds_node> &consumed_set,\n                                        v_array<v_array<ds_node> > &stack) {\n  if (point_set.index == 0) {\n    return new_node(pivot);\n  }\n\n  float max_dist = get_max(point_set);\n  int next_scale = min(max_scale - 1, get_scale(max_dist));\n  if (next_scale < -100) {  // if points are with distance 0\n    TreeNode * firstChild = new_node(pivot);\n    while (point_set.index > 0) {\n      TreeNode * temp_node = new_node(point_set.last().id);\n      temp_node->nextSibling = firstChild;\n      firstChild = temp_node;\n      push(consumed_set, point_set.last());\n      point_set.decr();\n    }\n    return firstChild;\n  }\n\n  v_array<ds_node> far = pop(stack);\n  split(point_set, far, max_scale);\n  TreeNode * child = batch_insert(pivot, next_scale, top_scale, point_set,\n                                  consumed_set, stack);\n\n  if (point_set.index == 0) {\n    push(stack, point_set);\n    point_set = far;\n    return child;\n  }\n\n  TreeNode * node = new_node(pivot);\n  v_array<ds_node> new_point_set = pop(stack);\n  v_array<ds_node> new_consumed_set = pop(stack);\n  while (point_set.index != 0) {\n    int new_pivot = point_set.last().id;\n    push(consumed_set, point_set.last());\n    point_set.decr();\n\n    dist_split(point_set, new_point_set, new_pivot, max_scale);\n    dist_split(far, new_point_set, new_pivot, max_scale);\n    TreeNode * new_child = batch_insert(new_pivot, next_scale, top_scale,\n                                        new_point_set, new_consumed_set, stack);\n    new_child->nextSibling = child;\n    child = new_child;\n\n    float thres = dist_of_scale(max_scale);\n    for (int i = 0; i < new_point_set.index; ++i) {\n      new_point_set[i].dist.decr();\n      if (new_point_set[i].dist.last() <= thres) {\n        push(point_set, new_point_set[i]);\n      } else {\n        push(far, new_point_set[i]);\n      }\n    }\n    for (int i = 0; i < new_consumed_set.index; ++i) {\n      new_consumed_set[i].dist.decr();\n      push(consumed_set, new_consumed_set[i]);\n    }\n    new_point_set.index = 0;\n    new_consumed_set.index = 0;\n  }\n  push(stack, new_point_set);\n  push(stack, new_consumed_set);\n  push(stack, point_set);\n  point_set = far;\n\n  node->max_dist = get_max(consumed_set);\n  node->firstChild = child;\n  return node;\n}\n\nvoid SRS_Cover_Tree::construct() {\n  v_array<ds_node> point_set;\n  v_array<ds_node> consumed_set;\n  v_array<v_array<ds_node> > stack;\n\n  float max_dist = -1.0;\n  for (int i = 1; i < n; ++i) {  // take the first point as pivot\n    ds_node temp;\n    temp.id = i;\n    push(temp.dist, data->cal_dist(0, i));\n    push(point_set, temp);\n    if (temp.dist.last() > max_dist) {\n      max_dist = temp.dist.last();\n    }\n  }\n\n  this->root = batch_insert(0, get_scale(max_dist), get_scale(max_dist),\n                            point_set, consumed_set, stack);\n\n  for (int i = 0; i < consumed_set.index; i++) {\n    free(consumed_set[i].dist.elements);\n  }\n  free(consumed_set.elements);\n  for (int i = 0; i < stack.index; i++) {\n    free(stack[i].elements);\n  }\n  free(stack.elements);\n  free(point_set.elements);\n}\n\nvoid SRS_Cover_Tree::init_search(float * query) {\n  search_node node;\n  node.min_dist = max(\n      0,\n      data->cal_dist(this->compressed_root->pivot, query)\n          - this->compressed_root->max_dist);\n  node.node = this->compressed_root;\n  node.id = -1;\n\n  this->query = query;\n  this->heap = new std::vector<search_node>;\n  heap->push_back(node);\n  heap->reserve(n / 100);  // Avoid too many re-size of heap by reserving the heap size to be 1% of the total number of points.\n}\n\nres_pair SRS_Cover_Tree::increm_knn_search_compressed() {\n  while (!heap->empty()) {\n    search_node node = heap->front();\n    std::pop_heap(heap->begin(), heap->end());\n    heap->pop_back();\n    if (node.node == NULL) {\n      res_pair res = { node.id, node.min_dist };\n      return res;\n    } else {\n      int * external_children = node.node->get_external_children();\n      for (int i = 0; i < node.node->num_of_external_node; ++i) {\n        search_node new_node;\n        new_node.id = external_children[i];\n        new_node.min_dist = data->cal_dist(new_node.id, query);\n        new_node.node = NULL;\n        heap->push_back(new_node);\n        std::push_heap(heap->begin(), heap->end());\n      }\n      CompressedTreeNode * internal_children =\n          node.node->get_internal_children();\n      for (int i = 0; i < node.node->num_of_internal_node; ++i) {\n        search_node new_node;\n        new_node.node = &internal_children[i];\n        new_node.min_dist = max(\n            0,\n            data->cal_dist(new_node.node->pivot, query)\n                - new_node.node->max_dist);\n        new_node.id = -1;\n        heap->push_back(new_node);\n        std::push_heap(heap->begin(), heap->end());\n      }\n    }\n  }\n  res_pair res = { -1, -1 };\n  return res;\n}\n\nvoid SRS_Cover_Tree::finish_search() {\n  delete this->heap;\n  delete[] this->query;\n}\n\nvoid SRS_Cover_Tree::compressed_vectorization(CompressedTreeNode * new_node,\n                                              TreeNode * node) {\n  unsigned char internal_node = 0, external_node = 0;\n  TreeNode * temp = node->firstChild;\n  while (temp != NULL) {\n    if (temp->firstChild == NULL) {\n      external_node++;\n    } else {\n      internal_node++;\n    }\n    if (external_node == 256 || internal_node == 256) {\n      fprintf(\n          stderr,\n          \"ABORT: fanout of the tree exceed 256, change the type in Line 47-48 in SRSCoverTree.h\\n\");\n      return;\n    }\n    temp = temp->nextSibling;\n  }\n\n  new_node->pivot = node->pivot;\n  new_node->max_dist = node->max_dist;\n  new_node->num_of_internal_node = internal_node;\n  new_node->num_of_external_node = external_node;\n  new_node->children = pool + next_available;\n  next_available += sizeof(int) * external_node\n      + sizeof(CompressedTreeNode) * internal_node;\n\n  // external nodes\n  temp = node->firstChild;\n  int * external_children = new_node->get_external_children();\n  for (int i = 0; i < external_node; ++i) {\n    while (temp->firstChild != NULL) {\n      temp = temp->nextSibling;\n    }\n    external_children[i] = temp->pivot;\n    temp = temp->nextSibling;\n  }\n\n  // internal nodes\n  temp = node->firstChild;\n  CompressedTreeNode * internal_children = new_node->get_internal_children();\n  for (int i = 0; i < internal_node; ++i) {\n    while (temp->firstChild == NULL) {\n      TreeNode * another_temp = temp;\n      temp = temp->nextSibling;\n      delete another_temp;\n    }\n    TreeNode * another_temp = temp->nextSibling;\n    compressed_vectorization(&internal_children[i], temp);\n    temp = another_temp;\n  }\n  delete node;\n}\n\nvoid SRS_Cover_Tree::compressed_vectorization() {\n  pool = (char *) malloc(\n      sizeof(CompressedTreeNode) * (num_node - n) + sizeof(int) * n);\n  next_available = 0;\n  CompressedTreeNode * new_root = (CompressedTreeNode *) pool;\n  next_available += sizeof(CompressedTreeNode);\n  compressed_vectorization(new_root, root);\n  //delete root;\n  compressed_root = new_root;\n  isVectorized = true;\n}\n\nvoid SRS_Cover_Tree::write_to_disk_compressed(char * file_path) {\n  char fileex[255];\n  FILE* fp;\n\n  // Write out tree as binary file.\n  sprintf(fileex, \"%s.bin\", file_path);\n  fp = fopen(fileex, \"wb\");\n\n  fwrite(&num_node, sizeof(int), 1, fp);\n  fwrite(&n, sizeof(long long), 1, fp);\n  fwrite(&d, sizeof(int), 1, fp);\n\n  fwrite(&pool, sizeof(CompressedTreeNode*), 1, fp);  // This is for offset.\n  fwrite(pool, sizeof(CompressedTreeNode) * (num_node - n) + sizeof(int) * n, 1,\n         fp);\n  fwrite(data->data, sizeof(float), n * d, fp);\n\n  fclose(fp);\n\n}\n\n// called by read_from_disk_compressed\nvoid adjust_offset(CompressedTreeNode * node, char * tmppool, char * pool) {\n  node->children = (char *) ((char *) pool\n      + ((char *) node->children - (char*) tmppool));\n  CompressedTreeNode * internal_children = node->get_internal_children();\n  for (int i = 0; i < node->num_of_internal_node; ++i) {\n    adjust_offset(&internal_children[i], tmppool, pool);\n  }\n}\n\nvoid SRS_Cover_Tree::read_from_disk_compressed(char * file_path) {\n  char fileex[255];\n  FILE* fp;\n  char* tmppool;\n\n  sprintf(fileex, \"%s.bin\", file_path);\n  fp = fopen(fileex, \"rb\");\n\n  fread(&num_node, sizeof(int), 1, fp);\n  fread(&n, sizeof(long long), 1, fp);\n  fread(&d, sizeof(int), 1, fp);\n\n  fread(&tmppool, sizeof(CompressedTreeNode*), 1, fp);\n  pool = (char *) malloc(\n      sizeof(CompressedTreeNode) * (num_node - n) + sizeof(int) * n);\n  fread(pool, 1, sizeof(CompressedTreeNode) * (num_node - n) + sizeof(int) * n,\n        fp);\n\n  // adjust the point offset\n  this->compressed_root = (CompressedTreeNode *) pool;\n  adjust_offset(this->compressed_root, tmppool, pool);\n  // read data\n  this->data = new Proj_data(n, d, NULL);\n  fread(this->data->data, sizeof(float), n * d, fp);\n\n  fclose(fp);\n}\n\nvoid traverse(CompressedTreeNode * node, int my_height, int & max_height,\n              int & max_fanout) {\n  if (node == NULL) {  //leaf\n    if (my_height > max_height) {\n      max_height = my_height;\n    }\n    return;\n  } else {  //internal node\n    int * external_children = node->get_external_children();\n    for (int i = 0; i < node->num_of_external_node; ++i) {\n      traverse(NULL, my_height + 1, max_height, max_fanout);\n    }\n    CompressedTreeNode * internal_children = node->get_internal_children();\n    for (int i = 0; i < node->num_of_internal_node; ++i) {\n      traverse(&internal_children[i], my_height + 1, max_height, max_fanout);\n    }\n    if (node->num_of_internal_node + node->num_of_external_node > max_fanout) {\n      max_fanout = node->num_of_internal_node + node->num_of_external_node;\n    }\n  }\n}\n\nvoid SRS_Cover_Tree::tree_stat() {\n  int my_height = 0, max_height = 0, max_fanout = 0;\n  traverse(this->compressed_root, my_height, max_height, max_fanout);\n  printf(\"max height: %d\\nmax fanout: %d\\n\", max_height, max_fanout);\n}\n"
  },
  {
    "path": "algorithms/SRS/src/SRSCoverTree.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n/*  We implement some of the functions based on the implementation of cover-tree project\n *   (url: http://hunch.net/~jl/projects/cover_tree/cover_tree.html)\n */\n\n#ifndef SRSCOVERTREE_H_\n#define SRSCOVERTREE_H_\n\n#include <vector>\n#include <algorithm>\n#include <stdio.h>\n#include <string.h>\n#include <math.h>\n\n#include \"ProjData.h\"\n#include \"stack.h\"\n\nstruct TreeNode {\n  int pivot;  // id\n  float max_dist;  //maximum distance to all grandchildren\n  TreeNode * firstChild;  // for firstChild-nextSibling structure\n  TreeNode * nextSibling;  // for firstChild-nextSibling structure\n};\n\nstruct CompressedTreeNode {\n  int pivot;  // id\n  float max_dist;  // maximum distance to all descendants\n  unsigned char num_of_external_node;\n  unsigned char num_of_internal_node;\n  char * children;\n  CompressedTreeNode * get_internal_children() {\n    // extenral node and then internal node\n    return (CompressedTreeNode *) (children + sizeof(int) * num_of_external_node);\n  }\n  int * get_external_children() {\n    return (int *) children;\n  }\n};\n\nstruct res_pair {\n  int id;\n  float dist;\n};\n\nstruct ds_node {\n  int id;\n  v_array<float> dist;\n};\n\nstruct search_node;\n\nclass SRS_Cover_Tree {\n private:\n  /****index****/\n  TreeNode * root;\n  CompressedTreeNode * compressed_root;\n  int num_node;\n  //TreeNode *node_pool; // to be deleted\n  char *pool;\n  long long next_available;\n  bool isVectorized;\n  long long n;\n  int d;\n  Proj_data * data;\n\n  /****query****/\n  float * query;\n  std::vector<search_node> * heap;\n\n  TreeNode * batch_insert(int pivot, int max_scale, int top_scale,\n                          v_array<ds_node> &point_set,\n                          v_array<ds_node> &consumed_set,\n                          v_array<v_array<ds_node> > &stack);  // batch insert a set of points into the tree.\n  TreeNode * new_node(int id);\n  void construct();\n  void compressed_vectorization(CompressedTreeNode * new_node, TreeNode * node);\n  void compressed_vectorization();  // change the tree structure (from firstChild-nextSibling to children list)and do memory optimization to improve query performance\n  void read_from_disk_compressed(char * file_path);\n\n  void dist_split(v_array<ds_node>& point_set, v_array<ds_node>& new_point_set,\n                  int new_pivot, int scale);  // split points from point_set and new_point_set according to their distance to the pivot\n  float get_max(v_array<ds_node> set);  // get the diagram of the set\n  void split(v_array<ds_node> &point_set, v_array<ds_node> &far_set, int scale);  // split points from point_set according to their distance\n\n public:\n  SRS_Cover_Tree(long long n, int d, Proj_data * data);  // construct tree from dataset\n  SRS_Cover_Tree(char * file_path);  // restore tree from disk\n  virtual ~SRS_Cover_Tree();\n  void search_knn(float * query, int k);  // knn search on cover tree\n  void init_search(float * query);\n  res_pair increm_knn_search_compressed();  // incremental knn search on compressed cover tree\n  void finish_search();\n\n  void write_to_disk_compressed(char * file_path);\n  void tree_stat();  // for test only\n};\n\n#endif /* SRSCOVERTREE_H_ */\n\n"
  },
  {
    "path": "algorithms/SRS/src/SRSInMemory.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#ifndef SRSINMEMORY_H_\n#define SRSINMEMORY_H_\n\n#include <stdio.h>\n#include <vector>\n#include <algorithm>\n\n#include \"ParamFile.h\"\n#include \"RandGen.h\"\n#include \"SRSCoverTree.h\"\n#include \"Rawdata.h\"\n\ntemplate<typename T>\nstruct res_pair_raw {\n  int id;\n  T dist;\n  bool operator>(const res_pair_raw<T> &) const;\n  bool operator>=(const res_pair_raw<T> &) const;\n  bool operator==(const res_pair_raw<T> &) const;\n  bool operator<=(const res_pair_raw<T> &) const;\n  bool operator<(const res_pair_raw<T> &) const;\n};\n\ntemplate<typename T>\nbool res_pair_raw<T>::operator>(const res_pair_raw<T> &n) const {\n  return (dist > n.dist);\n}\ntemplate<typename T>\nbool res_pair_raw<T>::operator>=(const res_pair_raw<T> &n) const {\n  return (dist >= n.dist);\n}\ntemplate<typename T>\nbool res_pair_raw<T>::operator==(const res_pair_raw<T> &n) const {\n  return (dist == n.dist);\n}\ntemplate<typename T>\nbool res_pair_raw<T>::operator<=(const res_pair_raw<T> &n) const {\n  return (dist <= n.dist);\n}\ntemplate<typename T>\nbool res_pair_raw<T>::operator<(const res_pair_raw<T> &n) const {\n  return (dist < n.dist);\n}\n\ntemplate<>\nbool res_pair_raw<long long>::operator>(\n    const res_pair_raw<long long> &n) const {\n  return (dist > n.dist);\n}\ntemplate<>\nbool res_pair_raw<long long>::operator>=(\n    const res_pair_raw<long long> &n) const {\n  return (dist >= n.dist);\n}\ntemplate<>\nbool res_pair_raw<long long>::operator==(\n    const res_pair_raw<long long> &n) const {\n  return (dist == n.dist);\n}\ntemplate<>\nbool res_pair_raw<long long>::operator<=(\n    const res_pair_raw<long long> &n) const {\n  return (dist <= n.dist);\n}\ntemplate<>\nbool res_pair_raw<long long>::operator<(\n    const res_pair_raw<long long> &n) const {\n  return (dist < n.dist);\n}\n\ntemplate<>\nbool res_pair_raw<double>::operator>(const res_pair_raw<double> &n) const {\n  return (dist > n.dist);\n}\ntemplate<>\nbool res_pair_raw<double>::operator>=(const res_pair_raw<double> &n) const {\n  return (dist >= n.dist);\n}\ntemplate<>\nbool res_pair_raw<double>::operator==(const res_pair_raw<double> &n) const {\n  return (dist == n.dist);\n}\ntemplate<>\nbool res_pair_raw<double>::operator<=(const res_pair_raw<double> &n) const {\n  return (dist <= n.dist);\n}\ntemplate<>\nbool res_pair_raw<double>::operator<(const res_pair_raw<double> &n) const {\n  return (dist < n.dist);\n}\n\ntemplate<typename T> struct type_name {\n  static const char* name() {\n    return \"double\";\n  }  // fixme\n};\ntemplate<> struct type_name<int> {\n  static const char* name() {\n    return \"int\";\n  }\n};\ntemplate<> struct type_name<float> {\n  static const char* name() {\n    return \"float\";\n  }\n};\ntemplate<> struct type_name<double> {\n  static const char* name() {\n    return \"double\";\n  }\n};\ntemplate<> struct type_name<long long> {\n  static const char* name() {\n    return \"long long\";\n  }\n};\n\ntemplate<typename T> struct type_format {\n  static const char* format() {\n    return \"%s\";\n  }  // fixme\n};\ntemplate<> struct type_format<int> {\n  static const char* format() {\n    return \"%d\";\n  }\n};\ntemplate<> struct type_format<float> {\n  static const char* format() {\n    return \"%f\";\n  }\n};\ntemplate<> struct type_format<double> {\n  static const char* format() {\n    return \"%f\";\n  }\n};\ntemplate<> struct type_format<long long> {\n  static const char* format() {\n    return \"%lld\";\n  }\n};\n\ntemplate<typename T>\nclass SRS_In_Memory {\n private:\n  long long n;\n  int d;\n  int m;\n  float * proj;\n  Raw_data<T> * raw_data;\n  char * index_path;\n  char * data_type;\n  SRS_Cover_Tree * index;\n\n  void get_proj(int n, int d, T * source, float * proj, float * dest);\n public:\n  SRS_In_Memory(char * index_path);\n  virtual ~SRS_In_Memory();\n\n  void build_index(long long n, int d, int m, char * ds_path);\n  void restore_index();\n  template<typename X>\n  void knn_search(T * query, int k, int t, double thres,\n                  std::vector<res_pair_raw<X> > & heap);\n  int get_m() {\n    return this->m;\n  }\n  char * get_type() {\n    return this->data_type;\n  }\n};\n\ntemplate<typename T>\nSRS_In_Memory<T>::SRS_In_Memory(char * index_path) {\n  this->index_path = new char[100];\n  strcpy(this->index_path, index_path);\n  if (this->index_path[strlen(this->index_path) - 1] != '/')\n    strcat(this->index_path, \"/\");\n\n  this->d = -1;\n  this->n = -1;\n  this->m = -1;\n  this->proj = NULL;\n  this->raw_data = NULL;\n  this->index = NULL;\n  this->data_type = new char[10];\n}\n\ntemplate<typename T>\nSRS_In_Memory<T>::~SRS_In_Memory() {\n  delete[] this->proj;\n  delete[] this->data_type;\n  delete[] this->index_path;\n  delete this->raw_data;\n  delete this->index;\n}\n\ntemplate<typename T>\nvoid SRS_In_Memory<T>::build_index(long long n, int d, int m, char * ds_path) {\n  this->n = n;\n  this->d = d;\n  this->m = m;\n  T * data = new T[d];\n  this->proj = new float[m * d];\n  for (int i = 0; i < m * d; ++i) {\n    proj[i] = gaussian(0, 1);\n  }\n  float * proj_data = new float[n * m];\n  FILE *dfp = fopen(ds_path, \"r\");\n  char file_path[100];\n  strcpy(file_path, index_path);\n  strcat(file_path, \"raw_data.dat\");\n  FILE * fp = fopen(file_path, \"wb\");\n\n  int elem_cnt = 0, temp;\n  long long point_cnt = 0;\n\n  //read data\n  while (!feof(dfp) && point_cnt < n) {\n    fscanf(dfp, type_format<T>::format(), &data[elem_cnt]);\n    elem_cnt++;\n    if (elem_cnt == d) {  // generate projected points\n      for (int i = 0; i < m; ++i) {\n        float p = 0.0;\n        for (int j = 0; j < d; ++j) {\n          p += data[j] * proj[i * d + j];\n        }\n        proj_data[point_cnt * m + i] = p;\n      }\n      fwrite(data, sizeof(T), d, fp);\n      elem_cnt = 0;\n      point_cnt++;\n      if (point_cnt % 50000 == 0) {\n        fprintf(stderr, \"\\r%lld (%.3f\\%)\", point_cnt,\n                (double) point_cnt / n * 100);\n      }\n    }\n  }\n  fprintf(stderr, \"\\r%lld (100.000\\%)\\n\", point_cnt);\n  fclose(dfp);\n  delete[] data;\n  fclose(fp);\n  //build srs_cover_tree\n  Proj_data * data_proj = new Proj_data(n, m, proj_data);\n  this->index = new SRS_Cover_Tree(n, m, data_proj);\n  //write tree out\n  strcpy(file_path, this->index_path);\n  strcat(file_path, \"index\");\n  this->index->write_to_disk_compressed(file_path);\n\n  //write para out\n  strcpy(file_path, index_path);\n  strcat(file_path, \"para.txt\");\n  writeParamFile(file_path, n, d, m, -1, proj, type_name<T>::name());  // no B in MEM model\n}\n\ntemplate<typename T>\nvoid SRS_In_Memory<T>::restore_index() {\n  int B;\n  this->proj = readParamFile(this->index_path, this->n, this->d, this->m, B,\n                             this->data_type);\n  char file_path[100];\n  strcpy(file_path, this->index_path);\n  strcat(file_path, \"raw_data.dat\");\n  this->raw_data = new Raw_data<T>(n, d, file_path);\n  strcpy(file_path, this->index_path);\n  strcat(file_path, \"index\");\n  this->index = new SRS_Cover_Tree(file_path);\n}\n\ntemplate<typename T>\nvoid SRS_In_Memory<T>::get_proj(int n, int d, T * source, float * proj,\n                                float * dest) {\n  for (int i = 0; i < n; ++i) {\n    float p = 0.0;\n    for (int j = 0; j < d; ++j) {\n      p += source[j] * proj[i * d + j];\n    }\n    dest[i] = p;\n  }\n}\n\ntemplate<typename T>\ntemplate<typename X>\nvoid SRS_In_Memory<T>::knn_search(T * query, int k, int t, double thres,\n                                  std::vector<res_pair_raw<X> > & heap) {\n  float * q_proj = new float[m];\n  get_proj(m, d, query, this->proj, q_proj);\n  this->index->init_search(q_proj);\n  heap.clear();\n  heap.reserve(k);\n  int count = 0;\n  while (count < t) {\n    res_pair cover_tree_res = this->index->increm_knn_search_compressed();\n    count++;\n    if (thres > 0 && heap.size() == k\n        && (cover_tree_res.dist * cover_tree_res.dist\n            > heap.front().dist * thres)) {  // 1st time test early-stop condition\n      this->index->finish_search();\n      return;\n    }\n    res_pair_raw<X> res = { cover_tree_res.id, raw_data->cal_squared_dist(\n        cover_tree_res.id, query) };\n    bool changed = false;\n    if (heap.size() < k) {\n      heap.push_back(res);\n      std::push_heap(heap.begin(), heap.end());\n      changed = true;\n    } else if (res.dist < heap.front().dist) {  // update top-k heap\n      std::pop_heap(heap.begin(), heap.end());\n      heap.pop_back();\n      heap.push_back(res);\n      std::push_heap(heap.begin(), heap.end());\n      changed = true;\n    }\n    if (thres > 0 && changed && heap.size() == k\n        && (cover_tree_res.dist * cover_tree_res.dist\n            > heap.front().dist * thres)) {  // 2nd time test early-stop condition\n      this->index->finish_search();\n      return;\n    }\n  }\n  this->index->finish_search();\n  return;\n}\n\n#endif /* SRSINMEMORY_H_ */\n"
  },
  {
    "path": "algorithms/SRS/src/cal_param.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <stdio.h>\n#include <math.h>\n#include <cstdlib>\n#include <fstream>\n#include <getopt.h>\n#include <boost/math/distributions/chi_squared.hpp>\n\nvoid usage();\nvoid cal_para_given_t(int, double, double, double);\nvoid cal_para_given_m(int, int, double, double);\n\nint main(int argc, char* argv[]) {\n  const struct option longopts[] = {\n      { \"help\", no_argument, 0, 'h' },\n      { \"page-size\", required_argument, 0, 'b' },\n      { \"m\", required_argument, 0, 'm' },\n      { \"cardinality\", required_argument, 0, 'n' },\n      { \"approximation-ratio\", required_argument, 0, 'c' },\n      { \"max-number-of-points\", required_argument, 0, 't' },\n      { \"success-probability\", required_argument, 0, 'p' },\n      { 0, 0, 0, 0 },\n  };\n\n  int index;\n  int iarg = 0;\n  opterr = 1;    //getopt error message (off: 0)\n\n  double c = 4.0;  //default value\n  double success_prob = 0.132121;  // default value: 1/2 - 1/e\n  double max_f = 0;\n  int m = -1;\n  int n = -1;\n\n  bool is_valid_command = true;\n\n  while (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"m:n:c:t:p:h\", longopts, &index);\n\n    switch (iarg) {\n      case 'c':\n        if (optarg) {\n          c = atof(optarg);\n        }\n        break;\n      case 'h':\n        usage();\n        return 0;\n      case 'm':\n        if (optarg) {\n          m = atoi(optarg);\n        }\n        break;\n      case 'n':\n        if (optarg) {\n          n = atoi(optarg);\n        }\n        break;\n      case 'p':\n        if (optarg) {\n          success_prob = atof(optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          max_f = atof(optarg);\n        }\n        break;\n    }\n  }\n\n  if (n <= 0 || success_prob < 0 || success_prob > 1 || c < 1 || max_f < 0\n      || max_f > 1 || m < 0 || (max_f != 0 && m != -1)\n      || (max_f == 0 && m == -1)) {\n    is_valid_command = false;\n  } else if (m == -1) {\n    cal_para_given_t(n, max_f, c, success_prob);\n  } else {\n    cal_para_given_m(n, m, c, success_prob);\n  }\n\n  if (!is_valid_command) {\n    usage();\n  }\n\n  return 0;\n}\n\n/*\n * Given: c, T/n, n, p_\\tau\n * Output: minimum m, p_\\tau', and T'\n * Algorithm 6 in the paper\n * */\nvoid cal_para_given_t(int n, double max_f, double c, double sp) {\n  int m = 0;\n  bool find = false;\n  while (!find) {\n    m++;\n    boost::math::chi_squared chi(m);\n    double prev_t = 1.0;\n    // check if current m valid\n    for (double p = 0.00001; p < 1; p = p + 0.00001) {\n      double t = boost::math::cdf(chi, boost::math::quantile(chi, p) / c / c)\n          / (p - sp);  //quantile equals to inverse_cdf\n      if (t > 0 && t < 1) {\n        if (t < max_f) {\n          find = true;\n          break;\n        }\n        if (t > prev_t) {\n          break;\n        }\n        prev_t = t;\n      }\n    }\n  }\n  if (m > 30) {  // if m is too large, warn user\n    printf(\n        \"Warning: m is too large, please consider enlarge c or t, reduce p\\n\");\n  }\n  printf(\"A feasible setting is:\\nm = %d\\n\", m);\n\n  double prev_t = 1.0;\n  boost::math::chi_squared chi(m);\n  // find the best threshold for a given m (to minimize T)\n  for (double p = 0.000001; p < 1; p += 0.000001) {\n    double t = boost::math::cdf(chi, boost::math::quantile(chi, p) / c / c)\n        / (p - sp);\n    if (t > 0 && t < 1) {\n      if (t > prev_t) {\n        printf(\"prob_thres(-r) = %f\\nT_max(-t) = %d\\nt = %f\\n\", p, (int) (n * t) + 1,\n               t);\n        break;\n      }\n      prev_t = t;\n    }\n  }\n}\n\n/*\n * Given: c, m, n, p_\\tau\n * Output: p_\\tau' and T'\n * Different from Algorithm 6.\n */\nvoid cal_para_given_m(int n, int m, double c, double sp) {\n  double t = 0, p = 0;\n  bool find = false;\n\n  boost::math::chi_squared chi(m);\n  double prev_t = 1.0;\n\n  // find the best threshold for a given m (to minimize T)\n  for (p = 0.000001; p < 1; p += 0.000001) {\n    t = boost::math::cdf(chi, boost::math::quantile(chi, p) / c / c) / (p - sp);\n    if (t > 0 && t < 1) {\n      if (t > prev_t && t < 1) {\n        find = true;\n        break;\n      }\n      prev_t = t;\n    }\n  }\n\n  if (!find) {  // it is possible that given m doesn't work\n    printf(\n        \"Error: Cannot find valid setting. Please consider enlarge c or m, or reduce p\\n\");\n    return;\n  }\n\n  printf(\"A feasible setting is:\\nm = %d\\n\", m);\n  printf(\"prob_thres(-r) = %f\\nT_max(-t) = %d\\nt = %f\\n\", p, (int) (n * t) + 1, t);\n}\n\nvoid usage() {\n  printf(\"SRS-Mem (v1.0)\\n\");\n  printf(\"Options\\n\");\n  printf(\"-c {value}\\tapproximation ratio (>= 1), default value: 4\\n\");\n  printf(\"-p {value}\\tsuccess probability, default value: 1/2 - 1/e\\n\");\n  printf(\"-m {value}\\tdimensionality of the projected space\\n\");\n  printf(\"-n {value}\\tcardinality\\n\");\n  printf(\"-t {value}\\tmaximum fraction of verify points\\n\");\n  printf(\"\\n\");\n\n  printf(\"Usage:\\n\");\n  printf(\"Calculate a feasible setting of parameters (given m)\\n\");\n  printf(\"[-c] -m -n [-p]\\n\");\n  printf(\"Calculate a feasible setting of parameters (given t)\\n\");\n  printf(\"[-c] -n -p [-t]\\n\");\n}\n"
  },
  {
    "path": "algorithms/SRS/src/gen_gt.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <stdlib.h>\n#include <math.h>\n#include <string.h>\n#include <queue>\n\n#define no_argument 0\n#define required_argument 1\n#define optional_argument 2\n\n//#define _LARGEFILE_SOURCE\n//#define _LARGEFILE64_SOURCE\n#define _FILE_OFFSET_BITS 64\n#define O_LARGEFILE 0\n\n#define MAXINT 1e9\n\ntypedef std::priority_queue<double> max_queue_t;\n\nvoid usage();\nbool file_exists(const char *);\ndouble l2_dist(int *_p1, int *_p2, int _dim);\ndouble l2_dist(float *_p1, float *_p2, int _dim);\nvoid gen_gt(int, int, int, const char *, const char *, const char *,\n            bool is_integer);\n\nint main(int argc, char * argv[]) {\n  const struct option longopts[] ={\n    {\"dimension\",                   required_argument, 0, 'd'},\n    {\"dataset-file-path\",           required_argument, 0, 's'},\n    {\"cardinality\",                 required_argument, 0, 'n'},\n    {\"k\",                           required_argument, 0, 'k'},\n    {\"ground-truth-file-path\",      required_argument, 0, 'g'},\n    {\"query-file-path\",             required_argument, 0, 'q'},\n    {\"data-type\",                   required_argument, 0, 'y'},\n    {0, 0, 0, 0},\n  };\n\n  int index;\n  int iarg = 0;\n  opterr = 1;    //getopt error message (off: 0)\n\n  int d = -1;\n  int n = -1;\n  int k = -1;\n  bool is_integer = true;\n\n  char ground_truth_file_path[100] = \"\";\n  char query_file_path[100] = \"\";\n  char data_file_path[100] = \"\";\n\n  bool is_valid_command = true;\n\n  while (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"d:g:k:n:q:s:y:h\", longopts, &index);\n\n    switch (iarg) {\n      case 'd':\n        if (optarg) {\n          d = atoi(optarg);\n        }\n        break;\n      case 'g':\n        if (optarg) {\n          strcpy(ground_truth_file_path, optarg);\n        }\n        break;\n      case 'h':\n        usage();\n        return 0;\n      case 'k':\n        if (optarg) {\n          k = atoi(optarg);\n        }\n        break;\n      case 'n':\n        if (optarg) {\n          n = atoi(optarg);\n        }\n        break;\n      case 'q':\n        if (optarg) {\n          strcpy(query_file_path, optarg);\n        }\n        break;\n      case 's':\n        if (optarg) {\n          strcpy(data_file_path, optarg);\n        }\n        break;\n      case 'y':\n        if (optarg) {\n          if (strcmp(optarg, \"f\") == 0) {\n            is_integer = false;\n          } else if (strcmp(optarg, \"i\") != 0) {\n            is_valid_command = false;\n          }\n        }\n        break;\n    }\n  }\n\n  if (d < 0 || k < 0 || n < 0 || !file_exists(data_file_path)\n      || !file_exists(query_file_path)) {\n    is_valid_command = false;\n  }\n  if (!is_valid_command) {\n    usage();\n  } else {\n    gen_gt(n, d, k, data_file_path, query_file_path, ground_truth_file_path,\n           is_integer);\n  }\n\n  return 0;\n}\n\nvoid usage() {\n  printf(\"SRS-Mem (v1.0)\\n\");\n  printf(\"Options\\n\");\n  printf(\"-d {value}\\tdimensionality of data\\n\");\n  printf(\"-g {string}\\tground truth file\\n\");\n  printf(\"-k {value}\\tnumber of neighbors wanted\\n\");\n  printf(\"-n {value}\\tcardinality\\n\");\n  printf(\"-q {string}\\tquery file\\n\");\n  printf(\"-s {string}\\tdataset file\\n\");\n  printf(\n      \"-y {string}\\tdata type (i: integer; f: floating number), default value: integer\\n\");\n  printf(\"\\n\");\n\n  printf(\"Usage:\\n\");\n\n  printf(\"Generate ground truth file\\n\");\n  printf(\"-d -g -k -n -q -s [-y]\\n\");\n}\n\nbool file_exists(const char *filename) {\n  std::ifstream ifile(filename);\n  return ifile;\n}\n\ndouble l2_dist_int(int *_p1, int *_p2, int _dim) {\n  double ret = 0;\n  for (int i = 0; i < _dim; i++) {\n    long long dif = (_p1[i] - _p2[i]);\n    ret += dif * dif;\n  }\n  return ret;\n}\n\ndouble l2_dist_float(float *_p1, float *_p2, int _dim) {\n  double ret = 0;\n  for (int i = 0; i < _dim; i++) {\n    double dif = (_p1[i] - _p2[i]);\n    ret += dif * dif;\n  }\n  return ret;\n}\n\nvoid gen_gt(int n, int d, int k, const char * data_file,\n            const char * query_file, const char * gt_file, bool is_integer) {\n  FILE * dfp = fopen(data_file, \"r\");\n  FILE * qfp = fopen(query_file, \"r\");\n  FILE * rfp = fopen(gt_file, \"w+\");\n\n  if (dfp == NULL || qfp == NULL || rfp == NULL) {\n    printf(\"open file error\\n\");\n  }\n\n  int nq;\n  fscanf(qfp, \"%d %d\", &nq, &d);\n  fprintf(rfp, \"%d %d\\n\", nq, k);\n\n  int * qs_int = new int[d * nq];\n  int * data_int = new int[d];\n  float * qs_float = new float[d * nq];\n  float * data_float = new float[d];\n\n  int temp = -1;\n  double dist = -1;\n\n  for (int i = 0; i < nq; ++i) {\n    fscanf(qfp, \"%d\", &temp);\n    for (int j = 0; j < d; ++j) {\n      if (is_integer) {\n        fscanf(qfp, \"%d\", &qs_int[i * d + j]);\n      } else {\n        fscanf(qfp, \"%f\", &qs_float[i * d + j]);\n      }\n    }\n  }\n\n  max_queue_t *max_queue_list = new max_queue_t[nq];\n  for (int i = 0; i < n; ++i) {\n    if (i % 5000 == 0) {\n      fprintf(stderr, \"\\r%d (%.3f\\%)\", i, 1.0 * i / n * 100);\n    }\n    for (int j = 0; j < d; ++j) {\n      if (is_integer) {\n        fscanf(dfp, \"%d\", &data_int[j]);\n      } else {\n        fscanf(dfp, \"%f\", &data_float[j]);\n      }\n    }\n\n    for (int j = 0; j < nq; ++j) {\n      if (is_integer) {\n        dist = l2_dist_int(data_int, &qs_int[j * d], d);\n      } else {\n        dist = l2_dist_float(data_float, &qs_float[j * d], d);\n      }\n      if (max_queue_list[j].size() < k) {\n        max_queue_list[j].push(dist);\n      } else if (max_queue_list[j].top() > dist) {\n        max_queue_list[j].pop();\n        max_queue_list[j].push(dist);\n      }\n    }\n  }\n  fprintf(stderr, \"\\r%d (%.3f\\%)\\n\", n, 100.0);\n\n  double *klist = new double[k];\n  for (int i = 0; i < nq; ++i) {\n    fprintf(rfp, \"%d\", i + 1);\n    while (max_queue_list[i].size() > 0) {\n      klist[max_queue_list[i].size() - 1] = max_queue_list[i].top();\n      max_queue_list[i].pop();\n    }\n    for (int j = 0; j < k; ++j) {\n      fprintf(rfp, \" %f\", sqrt(klist[j]));\n    }\n    fprintf(rfp, \"\\n\");\n  }\n\n  fclose(dfp);\n  fclose(qfp);\n  fclose(rfp);\n\n  delete[] qs_int;\n  delete[] data_int;\n  delete[] qs_float;\n  delete[] data_float;\n  delete[] max_queue_list;\n  delete[] klist;\n}\n"
  },
  {
    "path": "algorithms/SRS/src/gen_hard_data.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <getopt.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <math.h>\n#include \"RandGen.h\"\n\nvoid usage();\n//void gen_hard_data_integer(int n, int d, float c, char * data_file_path,\n//                           char * query_file_path);\nvoid gen_hard_data_float(int n, int d, float c, char * data_file_path,\n                         char * query_file_path);\n\nint main(int argc, char* argv[]) {\n  const struct option longopts[] = {\n        { \"help\",                 no_argument,       0, 'h' },\n        { \"dimension\",            required_argument, 0, 'd' },\n        { \"cardinality\",          required_argument, 0, 'n' },\n        { \"approximation-ratio\",  required_argument, 0, 'c' },\n        { \"data-file-path\",       required_argument, 0, 's' },\n        { \"query-file-path\",      required_argument, 0, 'q' },\n        { \"data-type\",            required_argument, 0, 'y' },\n        { 0, 0, 0, 0 },\n  };\n\n  int index;\n  int iarg = 0;\n  opterr = 1;    //getopt error message (off: 0)\n\n  int d = -1;\n  int n = -1;\n  float c = 4.0;\n  bool is_integer = false;\n\n  char query_file_path[100] = \"\";\n  char data_file_path[100] = \"\";\n\n  bool is_valid_command = true;\n\n  while (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"c:d:n:q:s:y:h\", longopts, &index);\n\n    switch (iarg) {\n      case 'd':\n        if (optarg) {\n          d = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n          c = atof(optarg);\n        }\n        break;\n      case 'h':\n        usage();\n        return 0;\n      case 'n':\n        if (optarg) {\n          n = atoi(optarg);\n        }\n        break;\n      case 'q':\n        if (optarg) {\n          strcpy(query_file_path, optarg);\n        }\n        break;\n      case 's':\n        if (optarg) {\n          strcpy(data_file_path, optarg);\n        }\n        break;\n      case 'y':\n        if (optarg) {\n          if (strcmp(optarg, \"i\") == 0) {\n            is_integer = true;\n\t    fprintf(stderr, \"currently do not support integer coordinates, please use '-y f'\\n\"); \n          } else if (strcmp(optarg, \"f\") != 0) {\n            is_valid_command = false;\n          }\n        }\n        break;\n    }\n  }\n\n  if (d <= 0 || n <= 0 || c <= 1.0) {\n    is_valid_command = false;\n  }\n  if (!is_valid_command) {\n    usage();\n    return 0;\n  }\n\n  gen_hard_data_float(n, d, c, data_file_path, query_file_path);\n\n  return 1;\n}\n\nvoid gen_hard_data_float(int n, int d, float c, char * data_file_path,\n                         char * query_file_path) {\n  //generate query point and write into query file\n  float * query = new float[d];\n  FILE * fp = fopen(query_file_path, \"w+\");\n  fprintf(fp, \"%d %d\\n\", 1, d);\n  for (int i = 0; i < d; ++i) {\n    query[i] = uniform(0, 1);\n    fprintf(fp, \"%f \", query[i]);\n  }\n  fprintf(fp, \"\\n\");\n  fclose(fp);\n\n  //generate query's NN (distance to q is 1) as the first data point\n  float * nn = new float[d];\n  fp = fopen(data_file_path, \"w+\");\n  float norm_factor = 0.0;\n  for (int i = 0; i < d; ++i) {\n    nn[i] = gaussian(0, 1);\n    norm_factor += nn[i] * nn[i];\n  }\n  norm_factor = sqrt(norm_factor);\n  for (int i = 0; i < d; ++i) {\n    fprintf(fp, \"%f \", nn[i] / norm_factor + query[i]);\n  }\n  fprintf(fp, \"\\n\");\n\n  //generate other c+\\epsilon NNs and write into query file\n  float * cnn = new float[d];\n  for (int j = 1; j < n; ++j) {\n    norm_factor = 0.0;\n    for (int i = 0; i < d; ++i) {\n      cnn[i] = gaussian(0, 1);\n      norm_factor += cnn[i] * cnn[i];\n    }\n    norm_factor = sqrt(norm_factor) / (c + 0.001);\n    for (int i = 0; i < d; ++i) {\n      fprintf(fp, \"%f \", cnn[i] / norm_factor + query[i]);\n    }\n    fprintf(fp, \"\\n\");\n  }\n  fclose(fp);\n\n  delete cnn;\n  delete query;\n  delete nn;\n}\n\n/*\nvoid gen_hard_data_integer(int n, int d, float c, char * data_file_path,\n                           char * query_file_path) {\n  //generate query point and write into query file\n  int * query = new int[d];\n  FILE * fp = fopen(query_file_path, \"w+\");\n  fprintf(fp, \"%d %d\\n\", 1, d);\n  for (int i = 0; i < d; ++i) {\n    query[i] = (int) (uniform(0, 1) * 1000000);\n    fprintf(fp, \"%d \", query[i]);\n  }\n  fprintf(fp, \"\\n\");\n  fclose(fp);\n\n  //generate query's NN (distance to q is 1) as the first data point\n  float * nn = new float[d];\n  fp = fopen(data_file_path, \"w+\");\n  float norm_factor = 0.0;\n  for (int i = 0; i < d; ++i) {\n    nn[i] = gaussian(0, 1);\n    norm_factor += nn[i] * nn[i];\n  }\n  norm_factor = sqrt(norm_factor);\n  for (int i = 0; i < d; ++i) {\n    fprintf(fp, \"%d \", (int) (nn[i] / norm_factor * 1000000) + query[i]);\n  }\n  fprintf(fp, \"\\n\");\n\n  //generate other c+\\epsilon NNs and write into query file\n  float * cnn = new float[d];\n  for (int j = 1; j < n; ++j) {\n    norm_factor = 0.0;\n    for (int i = 0; i < d; ++i) {\n      cnn[i] = gaussian(0, 1);\n      norm_factor += cnn[i] * cnn[i];\n    }\n    norm_factor = sqrt(norm_factor) / (c + 0.001);\n    for (int i = 0; i < d; ++i) {\n      fprintf(fp, \"%d \", (int) (cnn[i] / norm_factor * 1000000) + query[i]);\n    }\n    fprintf(fp, \"\\n\");\n  }\n  fclose(fp);\n\n  delete cnn;\n  delete query;\n  delete nn;\n}\n*/\n\nvoid usage() {\n  printf(\"SRS-Mem (v1.0)\\n\");\n  printf(\"Options\\n\");\n  printf(\"-c {value}\\tapproximation ratio (>= 1), default value: 4\\n\");\n  printf(\"-d {value}\\tdimensionality of data\\n\");\n  printf(\"-n {value}\\tcardinality\\n\");\n  printf(\"-q {string}\\tquery file\\n\");\n  printf(\"-s {string}\\tdataset file\\n\");\n  //printf(\"-y {string}\\tdata type (i: integer; f: floating number), default value: integer\\n\");\n  printf(\"\\n\");\n\n  printf(\"Usage:\\n\");\n\n  printf(\"Generate worst case data set\\n\");\n  //printf(\"[-c] -d -n -q -s [-y]\\n\");\n  printf(\"[-c] -d -n -q -s\\n\");\n}\n\n"
  },
  {
    "path": "algorithms/SRS/src/srs.cpp",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <getopt.h>\n#include <cstdlib>\n#include <dirent.h>\n#include <vector>\n#include <time.h>\n#include <sys/time.h>\n#include <set>\n#include <boost/math/distributions/chi_squared.hpp>\n#include \"SRSInMemory.h\"\n\n#define no_argument 0\n#define required_argument 1\n#define optional_argument 2\n\nusing namespace std;\n\nvoid usage();\nbool file_exists(const char *);\nbool dir_exists(const char *foldername);\ndouble cal_thres(double c, double p_thres, int m);\n\ntemplate<class T>\nvoid query_workload(SRS_In_Memory<T> * searcher, int nq, int d, int k, int t, double thres,\n                    char *query_file_path, char *ground_truth_file_path,\n                    char *output_file_path);\n\nfloat diff_timeval(timeval t1, timeval t2) {\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\n}\n\nint main(int argc, char * argv[]) {\n  const struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"page-size\",                   required_argument, 0, 'b'},\n    {\"approximation-ratio\",         required_argument, 0, 'c'},\n    {\"dimension\",                   required_argument, 0, 'd'},\n    {\"seed\",                        required_argument, 0, 'e'},\n    {\"ground-truth-file-path\",      required_argument, 0, 'g'},\n    {\"index-dir-path\",              required_argument, 0, 'i'},\n    {\"is-index\",                    no_argument,       0, 'I'},\n    {\"k\",                           required_argument, 0, 'k'},\n    {\"m\",                           required_argument, 0, 'm'},\n    {\"cardinality\",                 required_argument, 0, 'n'},\n    {\"output-file-path\",            required_argument, 0, 'o'},\n    {\"query-file-path\",             required_argument, 0, 'q'},\n    {\"is-query\",                    no_argument,       0, 'Q'},\n    {\"threshold\",                   required_argument, 0, 'r'},\n    {\"dataset-file-path\",           required_argument, 0, 's'},\n    {\"max-number-of-points\",        required_argument, 0, 't'},\n    {\"data-type\",                   required_argument, 0, 'y'},\n    {\"query-size\",                  required_argument, 0, 'p'},\n    {0, 0, 0, 0},\n  };\n\n  srand(1000);\n  int index;\n  int iarg = 0;\n  opterr = 1;    //getopt error message (off: 0)\n\n  int d = -1;\n  long long n = -1;\n  int k = -1;\n  int b = -1;\n  int m = -1;\n  int t = -1;\n  int nq =-1;\n\n  double c = -1.0;\n  double p_thres = -1.0;\n\n  char ground_truth_file_path[100] = \"\";\n  char query_file_path[100] = \"\";\n  char data_file_path[100] = \"\";\n  char output_file_path[100] = \"\";  //output file, currently not used.\n  char index_dir_path[100] = \"\";\n  char data_type[100] = \"\";\n  char result_file_path[100] = \"\";\n\n  bool is_valid_command = true;\n  bool is_index = false;\n  bool is_query = false;\n  bool is_integer = true;\n\n  while (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"b:c:d:e:g:i:k:m:n:o:q:R:r:s:t:y:p:hIQ\",\n                       longopts, &index);\n\n    switch (iarg) {\n      case 'b':\n        if (optarg) {\n          b = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n          c = atof(optarg);\n        }\n        break;\n      case 'd':\n        if (optarg) {\n          d = atoi(optarg);\n        }\n        break;\n      case 'e':\n        if (optarg) {\n          srand (atoi(optarg));}\n          break;\n          case 'g':\n          if (optarg) {\n            strcpy(ground_truth_file_path, optarg);\n          }\n          break;\n          case 'h':\n          usage();\n          return 0;\n          case 'i':\n          if (optarg) {\n            strcpy(index_dir_path, optarg);\n          }\n          break;\n          case 'I':\n          is_index = true;\n          break;\n          case 'k':\n          if (optarg) {\n            k = atoi(optarg);\n          }\n          break;\n          case 'm':\n          if (optarg) {\n            m = atoi(optarg);\n          }\n          break;\n          case 'n':\n          if (optarg) {\n            n = atoi(optarg);\n          }\n          break;\n\t\t  case 'p':\n          if (optarg) {\n            nq = atoi(optarg);\n          }\n          break;\n          case 'o':\n          if (optarg) {\n            strcpy(output_file_path, optarg);\n          }\n          break;\n          case 'R':\n          if (optarg) {\n            strcpy(result_file_path, optarg);\n          }\n          break;\n          case 'q':\n          if (optarg) {\n            strcpy(query_file_path, optarg);\n          }\n          break;\n          case 'Q':\n          is_query = true;\n          break;\n          case 'r':\n          if (optarg) {\n            p_thres = atof(optarg);\n          }\n          break;\n          case 's':\n          if (optarg) {\n            strcpy(data_file_path, optarg);\n          }\n          break;\n          case 't':\n          if (optarg) {\n            t = atoi(optarg);\n          }\n          break;\n          case 'y':\n          if (optarg) {\n            if (strcmp(optarg, \"f\") == 0) {\n              is_integer = false;\n            } else if (strcmp(optarg, \"i\") != 0) {\n              is_valid_command = false;\n            }\n          }\n          break;\n\n        }\n      }\n\n  if (is_index == is_query) {\n    is_valid_command = false;\n  }\n  if (is_index) {\n    if (!is_valid_command || d < 0 || m < 0 || n < 0\n        || !file_exists(data_file_path) || !dir_exists(index_dir_path)) {\n      is_valid_command = false;\n    } else if (b < 0) {\n      if (is_integer) {\n        SRS_In_Memory<int> * indexer = new SRS_In_Memory<int>(index_dir_path);\n        indexer->build_index(n, d, m, data_file_path);\n        delete indexer;\n      } else {\n\t\ttimeval start;\n    \tgettimeofday(&start, NULL);\n        SRS_In_Memory<float> * indexer = new SRS_In_Memory<float>(\n            index_dir_path);\n        indexer->build_index(n, d, m, data_file_path);\n\t\ttimeval end;\n    \tgettimeofday(&end, NULL);\n    \tfloat index_time = diff_timeval(end, start);\n\t\tcout<<index_time<<\" #indextime\"<<endl;\n        delete indexer;\n      }\n    } else {\n      printf(\"use R-tree here\\n\");\n    }\n  }\n  if (is_query) {\n    if (!is_valid_command || k < 0 || c < 1 || t < 0 || p_thres < 0\n        || !file_exists(query_file_path) || !file_exists(ground_truth_file_path)\n        || !dir_exists(index_dir_path)) {\n      is_valid_command = false;\n    } else {\n      char * type = new char[10];\n      float * temp = readParamFile(index_dir_path, n, d, m, b, type);\n      delete[] temp;\n      if (b == -1) {\n        if (strcmp(type, \"int\") == 0) {\n          SRS_In_Memory<int> * searcher = new SRS_In_Memory<int>(\n              index_dir_path);\n          searcher->restore_index();\n          query_workload(searcher, nq, d ,k, t, cal_thres(c, p_thres, m),\n                         query_file_path, ground_truth_file_path,\n                         output_file_path);\n          delete searcher;\n        } else if (strcmp(type, \"float\") == 0) {\n          SRS_In_Memory<float> * searcher = new SRS_In_Memory<float>(\n              index_dir_path);\n          searcher->restore_index();\n          query_workload(searcher, nq, d, k, t, cal_thres(c, p_thres, m),\n                         query_file_path, ground_truth_file_path,\n                         output_file_path);\n          delete searcher;\n        }\n        delete[] type;\n      } else {\n        printf(\"use R-tree here\\n\");\n      }\n    }\n  }\n\n  if (!is_valid_command) {\n    usage();\n  }\n\n  return 0;\n}\n\nvoid usage() {\n  printf(\"SRS-Mem (v1.0)\\n\");\n  printf(\"Options\\n\");\n  //printf(\"-b {value}\\tpage size in bytes (need to be a multiple of 4)\\n\");\n  printf(\"-c {value}\\tapproximation ratio (>= 1)\\n\");\n  printf(\"-d {value}\\tdimensionality of data\\n\");\n  printf(\"-e {value}\\tseed for random generators\\n\");\n  printf(\"-g {string}\\tground truth file\\n\");\n  printf(\"-i {string}\\tsrs index path (dir)\\n\");\n  printf(\"-I (function)\\tindex data\\n\");\n  printf(\"-k {value}\\tnumber of neighbors wanted\\n\");\n  printf(\"-m {value}\\tdimensionality of the projected space\\n\");\n  printf(\"-n {value}\\tcardinality\\n\");\n  //printf(\"-o {string}\\toutput file\\n\");\n  printf(\"-q {string}\\tquery file\\n\");\n  printf(\"-Q (function)\\tprocess queries\\n\");\n  printf(\"-r {value}\\tthreshold of early termination condition\\n\");\n  printf(\"-s {string}\\tdataset file\\n\");\n  printf(\"-t {value}\\tmaximum number of verify points\\n\");\n  printf(\n      \"-y {string}\\tdata type (i: integer; f: floating number), default value: integer\\n\");\n  printf(\"\\n\");\n  printf(\"Usage:\\n\");\n\n  // printf(\"Index data (using R-tree)\\n\");\n  // printf(\"-I -b -d -i -m -n -s\\n\");\n\n  printf(\"Index data (using cover-tree)\\n\");\n  printf(\"-I -d -i -m -n -s [-y]\\n\");\n\n  printf(\"Process queries\\n\");\n  printf(\"-Q -c -g -i -k -q -r -t\\n\");\n}\n\nbool file_exists(const char *filename) {\n  std::ifstream ifile(filename);\n  if (!ifile) {\n    fprintf(stderr, \"cannot open file %s\\n\", filename);\n  }\n  return ifile;\n}\n\nbool dir_exists(const char *dirname) {\n  DIR * dir = opendir(dirname);\n  if (dir) {\n    closedir(dir);\n    return true;\n  }\n  fprintf(stderr, \"cannot open dir %s\\n\", dirname);\n  return false;\n}\n\ntemplate<class T>\nvoid query_workload(SRS_In_Memory<T> * searcher,int qn, int d, int k, int t, double thres,\n                    char *query_file_path, char *ground_truth_file_path,\n                    char *output_file_path) {\n  typedef typename Accumulator<T>::Type ResultType;\n \n  FILE *qfp = fopen(query_file_path, \"r\");\n  FILE *gfp = fopen(ground_truth_file_path, \"r\");\n  FILE *ofp = fopen(output_file_path, \"a+\");\n\n  double overall_recall = 0.0;\n  double overall_time = 0.0;\n  double overall_MAP = 0.0;\n\n  T * query = new T[d];\n  int * gt = new int[k];\n  std::vector<res_pair_raw<ResultType> > res;\n  for (int i = 0; i < qn; ++i) {\n    for (int j = 0; j < d; ++j) {\n      fscanf(qfp, type_format<T>::format(), &query[j]);\n    }\n    for (int j = 0; j < k; ++j) {\n      fscanf(gfp, \"%d \", &gt[j]);\n    }\n\n    timeval start;\n    gettimeofday(&start, NULL);\n    searcher->knn_search(query, k, t, thres, res);\n    timeval end;\n    gettimeofday(&end, NULL);\n    overall_time += diff_timeval(end, start);\n\n    int ratio = 0;\n    std::sort(res.begin(), res.end());\n\t//compute recall\n\tstd::set<int> gnd_row;\n\tfor(unsigned j=0; j<k; j++)\n\t\tgnd_row.insert(gt[j]);\n\tfor(unsigned j=0; j<k; j++)\n\t{\n\t\tif(gnd_row.find(res[j].id)!=gnd_row.end())\n\t\t\tratio++;\n\t}\n\n\toverall_recall += ratio;\n    }\n\tfloat recall = overall_recall/k/qn;\n\tfloat searchtime = overall_time / qn;\n\tfprintf(ofp,\"%.6f %.6f #N_%d \\n\",recall,searchtime,t);\n\n  \n  delete[] query;\n  delete[] gt;\n  fclose(qfp);\n  fclose(gfp);\n  fclose(ofp);\n}\n\ndouble cal_thres(double c, double p_thres, int m) {\n  if (p_thres >= 1) {\n    return -1;\n  }\n  boost::math::chi_squared chi(m);\n  return boost::math::quantile(chi, p_thres) / c / c;\n}\n"
  },
  {
    "path": "algorithms/SRS/src/stack.h",
    "content": "/*\n *   This file is part of SRS project.\n *\n *   SRS is free software: you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation, either version 3 of the License, or\n *   (at your option) any later version.\n *\n *   SRS is distributed in the hope that it will be useful,\n *   but WITHOUT ANY WARRANTY; without even the implied warranty of\n *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *   GNU General Public License for more details.\n *\n *   You should have received a copy of the GNU General Public License\n *   along with SRS. If not, see <http://www.gnu.org/licenses/>.\n *\n *   Created by: Yifang Sun, Jianbin Qin\n *   Last modified by: Yifang Sun, Jianbin Qin\n */\n\n#include <stdlib.h>\n\n// v_array will be called in SRS_Cover_Tree\ntemplate<class T> class v_array {\npublic:\n\tint index;\n\tint length;\n\tT* elements;\n\n\tT last() {\n\t\treturn elements[index - 1];\n\t}\n\tvoid decr() {\n\t\tindex--;\n\t}\n\tv_array() {\n\t\tindex = 0;\n\t\tlength = 0;\n\t\telements = NULL;\n\t}\n\tT& operator[](unsigned int i) {\n\t\treturn elements[i];\n\t}\n};\n\ntemplate<class T> void push(v_array<T>& v, const T &new_ele) {\n\twhile (v.index >= v.length) {\n\t\tv.length = 2 * v.length + 3;\n\t\tv.elements = (T *) realloc(v.elements, sizeof(T) * v.length);\n\t}\n\tv[v.index++] = new_ele;\n}\n\ntemplate<class T> void alloc(v_array<T>& v, int length) {\n\tv.elements = (T *) realloc(v.elements, sizeof(T) * length);\n\tv.length = length;\n}\n\ntemplate<class T> v_array<T> pop(v_array<v_array<T> > &stack) {\n\tif (stack.index > 0)\n\t\treturn stack[--stack.index];\n\telse\n\t\treturn v_array<T>();\n}\n"
  },
  {
    "path": "algorithms/flann/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"flann---fast-library-for-approximate-nearest-neighbors\">FLANN - Fast Library for Approximate Nearest Neighbors</h1>\n<p>FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. This is a modified version of Flann. The original version can be found form <a href=\"http://www.cs.ubc.ca/~mariusm/flann\">here</a>. FLANN is written in C++ and contains bindings for the following languages: C, MATLAB and Python. We only evaluate the C++ results.</p>\n<p>Main differences:</p>\n<ul>\n<li>We disabled the improved version of the distance computation and only use a single thread.</li>\n</ul>\n<h2 id=\"prerequisites\">Prerequisites:</h2>\n<ul>\n<li>A modern compiler that supports <code>C++11</code> (e.g., <code>gcc 4.7</code> and above)</li>\n<li>CMake (version 2.6 or over is required)</li>\n<li>HDF5 should be installed. <a href=\"https://www.hdfgroup.org/HDF5/\">HDF5</a> is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes, and is designed for flexible and efficient I/O and for high volume and complex data.</li>\n<li><a href=\"https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data\">A sample data</a> (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that the input format is .hdf5 and all data files downloaded should be put to the knn_benchmark/data directory.</li>\n</ul>\n<h2 id=\"compile-flanncodebuild\">Compile (flann/code/build)</h2>\n<p>Enter code/build directory and run</p>\n<pre><code>cmake .. </code></pre>\n<p>then</p>\n<pre><code>make</code></pre>\n<h2 id=\"build-index-flannscript\">Build index (flann/script)</h2>\n<pre><code>build_auto.sh</code></pre>\n<p>Flann will automatically choose hierarchical k-means, randomized K-Tree or linear scan according to its estimation. Alternatively, we can explicitly let Flann to choose hierarchical k-means or randomized K-Tree for indexing.</p>\n<pre><code>build_hkmeans.sh \nbuild_kdtree.sh </code></pre>\n<h2 id=\"search-flannscript\">Search (flann/script)</h2>\n<p>Corresponding search algorithms based on different indexing mechanism</p>\n<pre><code>run_auto.sh\nrun_hkmeans.sh\nrun_kdtree.sh</code></pre>\n<p>Flann also provide linear scan algorithm</p>\n<pre><code>run_linear.sh</code></pre>\n<p>which is used to compute speedup of other NNS algorithms.</p>\n<p>Note that, in our experiment paper, we tune the <code>N</code> value (retrived number of the data points) to achieve the trade-off between search speed and search quality (recall). The search performance (time and recall) results are kept in the <code>Flann/results</code> directory.</p>\n</body>\n</html>\n"
  },
  {
    "path": "algorithms/flann/README.md",
    "content": "FLANN - Fast Library for Approximate Nearest Neighbors\n======================================================\n\nFLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. This is a modified version of Flann. The original version can be found form  [here](http://www.cs.ubc.ca/~mariusm/flann). FLANN is written in C++ and contains bindings for the following languages: C, MATLAB and Python. We only evaluate the C++ results.\n\nMain differences:\n\n- We disabled the improved version of the distance computation and only use a single thread.\n\n##Prerequisites:\n\n- A modern compiler that supports `C++11` (e.g., `gcc 4.7` and above)\n- CMake (version 2.6 or over is required)\n- HDF5 should be installed. [HDF5](https://www.hdfgroup.org/HDF5/) is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes, and is designed for flexible and efficient I/O and for high volume and complex data.\n- [A sample data](https://github.com/DBWangGroupUNSW/nns_benchmark/tree/master/data) (e.g., audio) is downloaded, including data points, query points and ground truth results. Note that the input format is .hdf5 and all data files downloaded should be put to the knn_benchmark/data directory.\n\n##Compile  (flann/code/build)\n\nEnter code/build directory and run \n```\ncmake .. \n```\nthen\n\n```\nmake\n```\n\n##Build index (flann/script)\n\n```\nbuild_auto.sh\n```\nFlann will automatically choose hierarchical k-means, randomized K-Tree or linear scan according to its estimation.\nAlternatively, we can explicitly let Flann to choose hierarchical k-means or randomized K-Tree for indexing.\n\n```\nbuild_hkmeans.sh \nbuild_kdtree.sh \n```\n\n##Search (flann/script)\nCorresponding search algorithms based on different indexing mechanism \n```\nrun_auto.sh\nrun_hkmeans.sh\nrun_kdtree.sh\n```\n\nFlann also provide linear scan algorithm \n\n```\nrun_linear.sh\n```\nwhich is used to compute speedup of other NNS algorithms.\n\n\nNote that, in our experiment paper, we tune the `N` value (retrived number of\nthe data points) to achieve the trade-off between search speed and search\nquality (recall). The search performance (time and recall) results are kept in\nthe `Flann/results` directory.\n\n"
  },
  {
    "path": "algorithms/flann/code/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.6)\n\nif(COMMAND cmake_policy)\n    cmake_policy(SET CMP0003 NEW)\nendif(COMMAND cmake_policy)\n\nproject(flann)\nstring(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)\n\ninclude(${PROJECT_SOURCE_DIR}/cmake/flann_utils.cmake)\nset(FLANN_VERSION 1.8.4)\nDISSECT_VERSION()\nGET_OS_INFO()\n\n# CMAKE_C_COMPILER_ID and CMAKE_CXX_COMPILER_ID are documented as internal variables subject to\n# change at: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#variable:CMAKE_LANG_COMPILER_ID\n# however currently this seems the most robust way to detect the presence of the Clang compiler\nif(\"${CMAKE_C_COMPILER_ID}\" MATCHES \"Clang\")\n  set(CMAKE_COMPILER_IS_CLANG 1)\nendif ()\n\nif(\"${CMAKE_CXX_COMPILER_ID}\" MATCHES \"Clang\")\n  set(CMAKE_COMPILER_IS_CLANGXX 1)\nendif ()\n\nlist(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)\n\n# Add an \"uninstall\" target\nCONFIGURE_FILE (\"${PROJECT_SOURCE_DIR}/cmake/uninstall_target.cmake.in\"\n    \"${PROJECT_BINARY_DIR}/uninstall_target.cmake\" IMMEDIATE @ONLY)\nADD_CUSTOM_TARGET (uninstall \"${CMAKE_COMMAND}\" -P\n    \"${PROJECT_BINARY_DIR}/uninstall_target.cmake\")\n\n# Set the build type.  Options are:\n#  Debug          : w/ debug symbols, w/o optimization\n#  Release        : w/o debug symbols, w/ optimization\n#  RelWithDebInfo : w/ debug symbols, w/ optimization\n#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries\n\nif (NOT CMAKE_BUILD_TYPE)\n    #set(CMAKE_BUILD_TYPE Release)\n    set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING \"Build type\" FORCE)\n    #set(CMAKE_BUILD_TYPE Debug)\nendif()\n\n#set the default path for built executables to the \"bin\" directory\nset(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)\n#set the default path for built libraries to the \"lib\" directory\nset(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)\n# set output path for tests\nset(TEST_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/test)\n\noption(BUILD_C_BINDINGS \"Build C bindings\" ON)\noption(BUILD_PYTHON_BINDINGS \"Build Python bindings\" ON)\noption(BUILD_MATLAB_BINDINGS \"Build Matlab bindings\" ON)\noption(BUILD_CUDA_LIB \"Build CUDA library\" OFF)\noption(USE_OPENMP \"Use OpenMP multi-threading\" OFF)   #ON\noption(USE_MPI \"Use MPI\" OFF)\n\nset(NVCC_COMPILER_BINDIR \"\" CACHE PATH  \"Directory where nvcc should look for C++ compiler. This is passed to nvcc through the --compiler-bindir option.\")\n\nif (NOT BUILD_C_BINDINGS)\n    set(BUILD_PYTHON_BINDINGS OFF)\n    set(BUILD_MATLAB_BINDINGS OFF)\nendif()\n\n\n# find python\nfind_package(PythonInterp)\nif (NOT PYTHON_EXECUTABLE)\n    set(BUILD_PYTHON_BINDINGS OFF)\nendif()\n\nfind_hdf5()\nif (NOT HDF5_FOUND)\n\tmessage(WARNING \"hdf5 library not found, some tests will not be run\")\nelse()\n    include_directories(${HDF5_INCLUDE_DIR})\nendif()\n\nif (USE_MPI OR HDF5_IS_PARALLEL)\n    find_package(MPI)\nendif()\nif (HDF5_IS_PARALLEL)\n    if (NOT MPI_FOUND)\n        message(WARNING \"Found the parallel HDF5 library, but could not find the MPI library. Define the MPI_COMPILER variable to the path of your MPI compiler.\")\n    endif()\n    # Parallel HDF5 needs to find the \"mpi.h\" header file\n    include_directories(${MPI_INCLUDE_PATH})\nendif()\n\n\nif (USE_MPI)\n    if (NOT MPI_FOUND)\n        message(WARNING \"Could not find an MPI library. Define the MPI_COMPILER variable to the path of your MPI compiler.\")\n        set(USE_MPI OFF)\n    endif()\n\n    if (NOT HDF5_IS_PARALLEL)\n        message(WARNING \"For MPI support the Parallel HDF5 library is required.\")\n        set(USE_MPI OFF)\n    endif()\nendif(USE_MPI)\n\n\nif (USE_MPI AND HDF5_IS_PARALLEL)\n    find_package(Boost COMPONENTS mpi system serialization thread REQUIRED)\n    include_directories(${Boost_INCLUDE_DIRS})\n    add_definitions(\"-DHAVE_MPI\")\nendif()\n\n\nfind_package(GTest) \nif (NOT GTEST_FOUND)\n\tmessage(WARNING \"gtest library not found, some tests will not be run\")\nendif()\n\n\nif (USE_OPENMP)\n    find_package(OpenMP)\n    if(OPENMP_FOUND)\n        set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}\")\n        set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}\")\n        set(CMAKE_EXE_LINKER_FLAGS \"${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}\")\n    else()\n        message(WARNING \"OpenMP NOT found\")\n    endif()\nendif()\n\n\n# CUDA support\nif (BUILD_CUDA_LIB)\n    find_package(CUDA)\n    if (CUDA_FOUND)\n        message(STATUS \"CUDA found (include: ${CUDA_INCLUDE_DIRS}, lib: ${CUDA_LIBRARIES})\")\n        include_directories(${CUDA_INCLUDE_DIRS})\n    else(CUDA_FOUND)\n        message(STATUS \"CUDA not found, CUDA library will not be built\")\n        set(BUILD_CUDA_LIB OFF)\n    endif(CUDA_FOUND)\nendif(BUILD_CUDA_LIB)\n\n#set the C/C++ include path to the \"include\" directory\ninclude_directories(${PROJECT_SOURCE_DIR}/src/cpp)\n\n# require proper c++\n#add_definitions( \"-Wall -ansi -pedantic\" )\n# HDF5 uses long long which is not ansi\nif (WIN32)\n    # lots of warnings with cl.exe right now, use /W1\n    add_definitions(\"/W1 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS /bigobj\")\nelse(WIN32)\n    add_definitions( \"-Wall -Wno-unknown-pragmas -Wno-unused-function\" )\nendif(WIN32)\n\nadd_subdirectory( cmake )\nadd_subdirectory( src )\nadd_subdirectory( examples )\n#add_subdirectory( test )\nadd_subdirectory( doc )\n\n\n# CPACK options\n\n# RPM\nfind_program(RPM_PROGRAM rpm)\nif(EXISTS ${RPM_PROGRAM})\n  list(APPEND CPACK_GENERATOR \"RPM\")\nendif(EXISTS ${RPM_PROGRAM})\n# DEB\nfind_program(DPKG_PROGRAM dpkg)\nif(EXISTS ${DPKG_PROGRAM})\n  list(APPEND CPACK_GENERATOR \"DEB\")\nendif(EXISTS ${DPKG_PROGRAM})\n# NSIS\nfind_program(NSIS_PROGRAM makensis MakeNSIS)\nif(EXISTS ${NSIS_PROGRAM})\n  list(APPEND CPACK_GENERATOR \"NSIS\")\nendif(EXISTS ${NSIS_PROGRAM})\n# dpkg\nfind_program(PACKAGE_MAKER_PROGRAM PackageMaker\n\t    HINTS /Developer/Applications/Utilities)\nif(EXISTS ${PACKAGE_MAKER_PROGRAM})\n  list(APPEND CPACK_GENERATOR \"PackageMaker\")\nendif(EXISTS ${PACKAGE_MAKER_PROGRAM})\n \nset(CPACK_GENERATOR \"${CPACK_GENERATOR}\")\nset(CPACK_MONOLITHIC_INSTALL 1)\nset(CPACK_SET_DESTDIR ON)\ninclude(InstallRequiredSystemLibraries)\nset(CPACK_PACKAGE_CONTACT \"Marius Muja\")\nset(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})\nSET(CPACK_PACKAGE_VERSION ${FLANN_VERSION})\nSET(CPACK_PACKAGE_VERSION_MAJOR ${FLANN_VERSION_MAJOR})\nSET(CPACK_PACKAGE_VERSION_MINOR ${FLANN_VERSION_MINOR})\nSET(CPACK_PACKAGE_VERSION_PATCH ${FLANN_VERSION_PATCH})\ninclude(CPack)\n\n\nmessage(STATUS \"Install prefix: ${CMAKE_INSTALL_PREFIX}\")\nmessage(STATUS \"Build type: ${CMAKE_BUILD_TYPE}\")\nmessage(STATUS \"Building C bindings: ${BUILD_C_BINDINGS}\")\nmessage(STATUS \"Building python bindings: ${BUILD_PYTHON_BINDINGS}\")\nmessage(STATUS \"Building matlab bindings: ${BUILD_MATLAB_BINDINGS}\")\nmessage(STATUS \"Building CUDA library: ${BUILD_CUDA_LIB}\")\nmessage(STATUS \"Using OpenMP support: ${USE_OPENMP}\")\nmessage(STATUS \"Using MPI support: ${USE_MPI}\")\n"
  },
  {
    "path": "algorithms/flann/code/COPYING",
    "content": "\nThe BSD License\n\nCopyright (c) 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\nCopyright (c) 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * Neither the name of the \"University of British Columbia\" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "algorithms/flann/code/ChangeLog",
    "content": "Version 1.6.11\n\t* bug fixes\n\nVersion 1.6.10\n\t* fixed a radiusSearch bug introduced in 1.6.9\n\nVersion 1.6.9\n\t* bug fixes\n\t* fixed radius search bug on MSVC compiler\n\t* fixed windows linking problems\n\nVersion 1.6.8\n\t* bug fixes, low dimensional search speedup\n\nVersion 1.6.7\n\t* bug fixes\n\nVersion 1.6.6\n\t* misc bug fixes\n\nVersion 1.6.5\n\t* fix compilation problem on some C++ compilers\n\t* fixes in the python bindings\n\nVersion 1.6.4\n\t* small bug fix\n\nVersion 1.6.3\n\t* radius search speedup\n\nVersion 1.6.2\n\t* slight API changes to the C++ bindings, now the main index type is templated\n\t* on the distance functor which makes it easier to use custom distances\n\t* new kd-tree implementation optimized for low dimensionality data\n\t* experimental MPI support for cluster computing\n\nVersion 1.5\n\t* new C++ templated API\n\t* saving/loading of indices to disk\n\t* threadsafe search\n\t* new distance types (thanks to Radu Bogdan Rusu and Romain Thibaux for the patch)\n\t* (api change) autotuned is no longer selected by passing a precision >0, it's used when the algorithm type is set to autotuned\n"
  },
  {
    "path": "algorithms/flann/code/README.md",
    "content": "FLANN - Fast Library for Approximate Nearest Neighbors\n======================================================\n\nFLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It contains a collection of algorithms we found to work best for nearest neighbor search and a system for automatically choosing the best algorithm and optimum parameters depending on the dataset.\nFLANN is written in C++ and contains bindings for the following languages: C, MATLAB and Python.\n\n\nDocumentation\n-------------\n\nCheck FLANN web page [here](http://www.cs.ubc.ca/~mariusm/flann).\n\nDocumentation on how to use the library can be found in the doc/manual.pdf file included in the release archives.\n\nMore information and experimental results can be found in the following paper:\n\n  * Marius Muja and David G. Lowe, \"Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration\", in International Conference on Computer Vision Theory and Applications (VISAPP'09), 2009 [(PDF)](http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann_visapp09.pdf) [(BibTex)](http://people.cs.ubc.ca/~mariusm/index.php/FLANN/BibTex)\n\n\nGetting FLANN\n-------------\n\nThe latest version of FLANN can be downloaded from here:\n\n *  Version 1.8.4 (15 January 2013)\n    [flann-1.8.4-src.zip](http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann-1.8.4-src.zip) (Source code)  \n    [User manual](http://people.cs.ubc.ca/~mariusm/uploads/FLANN/flann_manual-1.8.4.pdf)  \n    [Changelog](https://github.com/mariusmuja/flann/blob/master/ChangeLog)  \n\nIf you want to try out the latest changes or contribute to FLANN, then it's recommended that you checkout the git source repository: `git clone git://github.com/mariusmuja/flann.git`\n\nIf you just want to browse the repository, you can do so by going [here](https://github.com/mariusmuja/flann).\n\n\nConditions of use\n-----------------\n\nFLANN is distributed under the terms of the [BSD License](https://github.com/mariusmuja/flann/blob/master/COPYING).\n\nBug reporting\n-------------\n\nPlease report bugs or feature requests using [github's issue tracker](http://github.com/mariusmuja/flann/issues).\n"
  },
  {
    "path": "algorithms/flann/code/bin/download_checkmd5.py",
    "content": "#!/usr/bin/env python2\n\nimport urllib, hashlib, sys, os\nfrom optparse import OptionParser\n\nclass AppURLopener(urllib.FancyURLopener):\n    version =\"Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7\"\n\n    def prompt_user_passwd(self, host, realm):\n        raise Exception()\nurllib._urlopener = AppURLopener()\n\ndef file_md5(file):\n    m = hashlib.md5()\n    m.update(open(dest).read())\n    return m.hexdigest()\n\n\ndef main():\n    parser = OptionParser(usage=\"usage: %prog URI dest [md5sum]\", prog=sys.argv[0])\n    options, args = parser.parse_args()\n    md5sum = None\n    \n    if len(args)==2:\n        uri, dest = args\n    elif len(args)==3:\n        uri, dest, md5 = args\n    else:\n        parser.error(\"Wrong arguments\")\n    \n    fresh = False\n    if not os.path.exists(dest):\n        print \"Downloading from %s to %s...\"%(uri, dest),\n        sys.stdout.flush()\n        urllib.urlretrieve(uri, dest)\n        print \"done\"\n        fresh = True\n        \n    if md5sum:\n        print \"Computing md5sum on downloaded file\",\n        sys.stdout.flush()\n        checksum = md5_file(dest)\n        print \"done\"\n        \n        if checksum!=md5sum:\n            if not fresh:\n                print \"Checksum mismatch (%s != %s), re-downloading file %s\"%(checksum, md5sum, dest),\n                sys.stdout.flush()\n                os.remove(dest)\n                urllib.urlretrieve(uri, dest)\n                print \"done\"\n    \n                print \"Computing md5sum on downloaded file\",\n                sys.stdout.flush()\n                checksum = md5_file(dest)\n                print \"done\"\n                \n                if checksum!=md5sum:\n                    print \"ERROR, checksum mismatch (%s != %s) on %d\",(checksum, md5sum, dest)\n                    return 1\n    return 0\n\n\nif __name__ == '__main__':\n    try:\n        sys.exit(main())\n    except Exception as e:\n        print \"ERROR, \",e\n        sys.exit(1)\n"
  },
  {
    "path": "algorithms/flann/code/bin/indent.sh",
    "content": "#!/bin/bash\n\nDIR=`dirname $0`\nuncrustify --no-backup -c ${DIR}/uncrustify.cfg  $1\n\n"
  },
  {
    "path": "algorithms/flann/code/bin/make_release.sh",
    "content": "#!/bin/bash\nVERSION=`grep \"set(FLANN_VERSION\" CMakeLists.txt  | sed 's/[^0-9]*\\([0-9]*\\.[0-9]*\\.[0-9]*\\)[^0-9]*/\\1/'`\n\necho \"Creating flann-$VERSION-src.zip\"\n\ngit archive --prefix=flann-$VERSION-src/ -o flann-$VERSION-src.zip $VERSION-src\n"
  },
  {
    "path": "algorithms/flann/code/bin/run_test.py",
    "content": "#!/usr/bin/env python2\n\n\nimport sys\nimport os.path as op\nimport unittest\n\nif __name__ == \"__main__\":\n    if len(sys.argv)==1:\n        print \"Usage: %s file\"%sys.argv[0]\n        sys.exit(1)\n\n    python_path = op.abspath(op.join( op.dirname(__file__),\"..\",\"src\",\"python\"))\n    sys.path.append(python_path)\n\n    test_file = sys.argv[1]\n    sys.argv = sys.argv[1:]\n    execfile(test_file)\n"
  },
  {
    "path": "algorithms/flann/code/bin/uncrustify.cfg",
    "content": "indent_align_string=false\nindent_braces=false\nindent_braces_no_func=false\nindent_brace_parent=false\nindent_namespace=false\nindent_extern=false\nindent_class=true\nindent_class_colon=false\nindent_else_if=false\nindent_func_call_param=false\nindent_func_def_param=false\nindent_func_proto_param=false\nindent_func_class_param=false\nindent_func_ctor_var_param=false\nindent_template_param=false\nindent_func_param_double=false\nindent_relative_single_line_comments=true\nindent_col1_comment=true\nindent_access_spec_body=false\nindent_paren_nl=false\nindent_comma_paren=false\nindent_bool_paren=false\nindent_square_nl=false\nindent_preserve_sql=false\nindent_align_assign=true\nsp_balance_nested_parens=false\nalign_keep_tabs=false\nalign_with_tabs=false\nalign_on_tabstop=false\nalign_number_left=false\nalign_func_params=false\nalign_same_func_call_params=false\nalign_var_def_colon=false\nalign_var_def_attribute=false\nalign_var_def_inline=false\nalign_right_cmt_mix=false\nalign_on_operator=false\nalign_mix_var_proto=false\nalign_single_line_func=false\nalign_single_line_brace=false\nalign_nl_cont=false\nalign_left_shift=true\nnl_collapse_empty_body=false\nnl_assign_leave_one_liners=true\nnl_class_leave_one_liners=true\nnl_enum_leave_one_liners=true\nnl_getset_leave_one_liners=true\nnl_func_leave_one_liners=true\nnl_if_leave_one_liners=true\nnl_multi_line_cond=false\nnl_multi_line_define=false\nnl_before_case=false\nnl_after_case=false\nnl_after_return=false\nnl_after_semicolon=false\nnl_after_brace_open=false\nnl_after_brace_open_cmt=false\nnl_after_vbrace_open=false\nnl_after_brace_close=false\nnl_define_macro=false\nnl_squeeze_ifdef=false\nnl_ds_struct_enum_cmt=false\nnl_ds_struct_enum_close_brace=false\nnl_create_if_one_liner=true\nnl_create_for_one_liner=true\nnl_create_while_one_liner=true\nls_for_split_full=false\nls_func_split_full=false\nnl_after_multiline_comment=false\neat_blanks_after_open_brace=false\neat_blanks_before_close_brace=false\nmod_pawn_semicolon=false\nmod_full_paren_if_bool=true\nmod_remove_extra_semicolon=true\nmod_sort_import=false\nmod_sort_using=false\nmod_sort_include=false\nmod_move_case_break=false\nmod_remove_empty_return=false\ncmt_indent_multi=true\ncmt_c_group=false\ncmt_c_nl_start=false\ncmt_c_nl_end=false\ncmt_cpp_group=false\ncmt_cpp_nl_start=false\ncmt_cpp_nl_end=false\ncmt_cpp_to_c=false\ncmt_star_cont=false\ncmt_multi_check_last=true\ncmt_insert_before_preproc=false\npp_indent_at_level=false\npp_region_indent_code=false\npp_if_indent_code=false\npp_define_at_level=false\ninput_tab_size=4\nindent_columns=4\nindent_with_tabs=0\nsp_before_ptr_star=remove\nsp_between_ptr_star=remove\nsp_after_ptr_star=add\nsp_before_byref=remove\nsp_after_byref=add\nsp_after_type=ignore\nsp_else_brace=add\nsp_catch_brace=add\nsp_finally_brace=add\nsp_try_brace=add\nnl_end_of_file=add\nnl_fcall_brace=remove\nnl_enum_brace=add\nnl_struct_brace=add\nnl_union_brace=remove\nnl_if_brace=remove\nnl_brace_else=add\nnl_else_brace=remove\nnl_else_if=remove\nnl_brace_finally=add\nnl_finally_brace=remove\nnl_try_brace=remove\nnl_for_brace=remove\nnl_catch_brace=remove\nnl_brace_catch=add\nnl_while_brace=remove\nnl_do_brace=remove\nnl_brace_while=remove\nnl_switch_brace=remove\nnl_namespace_brace=add\nnl_template_class=add\nnl_class_brace=add\nnl_fdef_brace=add\nmod_full_brace_function=add\nmod_paren_on_return=remove\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/3.2.3/CMakeCCompiler.cmake",
    "content": "set(CMAKE_C_COMPILER \"/opt/rh/devtoolset-2/root/usr/bin/cc\")\nset(CMAKE_C_COMPILER_ARG1 \"\")\nset(CMAKE_C_COMPILER_ID \"GNU\")\nset(CMAKE_C_COMPILER_VERSION \"4.8.2\")\nset(CMAKE_C_COMPILE_FEATURES \"c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert\")\nset(CMAKE_C90_COMPILE_FEATURES \"c_function_prototypes\")\nset(CMAKE_C99_COMPILE_FEATURES \"c_restrict;c_variadic_macros\")\nset(CMAKE_C11_COMPILE_FEATURES \"c_static_assert\")\n\nset(CMAKE_C_PLATFORM_ID \"Linux\")\nset(CMAKE_C_SIMULATE_ID \"\")\nset(CMAKE_C_SIMULATE_VERSION \"\")\n\nset(CMAKE_AR \"/opt/rh/devtoolset-2/root/usr/bin/ar\")\nset(CMAKE_RANLIB \"/opt/rh/devtoolset-2/root/usr/bin/ranlib\")\nset(CMAKE_LINKER \"/opt/rh/devtoolset-2/root/usr/bin/ld\")\nset(CMAKE_COMPILER_IS_GNUCC 1)\nset(CMAKE_C_COMPILER_LOADED 1)\nset(CMAKE_C_COMPILER_WORKS TRUE)\nset(CMAKE_C_ABI_COMPILED TRUE)\nset(CMAKE_COMPILER_IS_MINGW )\nset(CMAKE_COMPILER_IS_CYGWIN )\nif(CMAKE_COMPILER_IS_CYGWIN)\n  set(CYGWIN 1)\n  set(UNIX 1)\nendif()\n\nset(CMAKE_C_COMPILER_ENV_VAR \"CC\")\n\nif(CMAKE_COMPILER_IS_MINGW)\n  set(MINGW 1)\nendif()\nset(CMAKE_C_COMPILER_ID_RUN 1)\nset(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)\nset(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)\nset(CMAKE_C_LINKER_PREFERENCE 10)\n\n# Save compiler ABI information.\nset(CMAKE_C_SIZEOF_DATA_PTR \"8\")\nset(CMAKE_C_COMPILER_ABI \"ELF\")\nset(CMAKE_C_LIBRARY_ARCHITECTURE \"\")\n\nif(CMAKE_C_SIZEOF_DATA_PTR)\n  set(CMAKE_SIZEOF_VOID_P \"${CMAKE_C_SIZEOF_DATA_PTR}\")\nendif()\n\nif(CMAKE_C_COMPILER_ABI)\n  set(CMAKE_INTERNAL_PLATFORM_ABI \"${CMAKE_C_COMPILER_ABI}\")\nendif()\n\nif(CMAKE_C_LIBRARY_ARCHITECTURE)\n  set(CMAKE_LIBRARY_ARCHITECTURE \"\")\nendif()\n\n\n\n\nset(CMAKE_C_IMPLICIT_LINK_LIBRARIES \"c\")\nset(CMAKE_C_IMPLICIT_LINK_DIRECTORIES \"/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib\")\nset(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES \"\")\n\n\n\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/3.2.3/CMakeCXXCompiler.cmake",
    "content": "set(CMAKE_CXX_COMPILER \"/opt/rh/devtoolset-2/root/usr/bin/c++\")\nset(CMAKE_CXX_COMPILER_ARG1 \"\")\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\nset(CMAKE_CXX_COMPILER_VERSION \"4.8.2\")\nset(CMAKE_CXX_COMPILE_FEATURES \"cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates\")\nset(CMAKE_CXX98_COMPILE_FEATURES \"cxx_template_template_parameters\")\nset(CMAKE_CXX11_COMPILE_FEATURES \"cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates\")\nset(CMAKE_CXX14_COMPILE_FEATURES \"\")\n\nset(CMAKE_CXX_PLATFORM_ID \"Linux\")\nset(CMAKE_CXX_SIMULATE_ID \"\")\nset(CMAKE_CXX_SIMULATE_VERSION \"\")\n\nset(CMAKE_AR \"/opt/rh/devtoolset-2/root/usr/bin/ar\")\nset(CMAKE_RANLIB \"/opt/rh/devtoolset-2/root/usr/bin/ranlib\")\nset(CMAKE_LINKER \"/opt/rh/devtoolset-2/root/usr/bin/ld\")\nset(CMAKE_COMPILER_IS_GNUCXX 1)\nset(CMAKE_CXX_COMPILER_LOADED 1)\nset(CMAKE_CXX_COMPILER_WORKS TRUE)\nset(CMAKE_CXX_ABI_COMPILED TRUE)\nset(CMAKE_COMPILER_IS_MINGW )\nset(CMAKE_COMPILER_IS_CYGWIN )\nif(CMAKE_COMPILER_IS_CYGWIN)\n  set(CYGWIN 1)\n  set(UNIX 1)\nendif()\n\nset(CMAKE_CXX_COMPILER_ENV_VAR \"CXX\")\n\nif(CMAKE_COMPILER_IS_MINGW)\n  set(MINGW 1)\nendif()\nset(CMAKE_CXX_COMPILER_ID_RUN 1)\nset(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)\nset(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)\nset(CMAKE_CXX_LINKER_PREFERENCE 30)\nset(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)\n\n# Save compiler ABI information.\nset(CMAKE_CXX_SIZEOF_DATA_PTR \"8\")\nset(CMAKE_CXX_COMPILER_ABI \"ELF\")\nset(CMAKE_CXX_LIBRARY_ARCHITECTURE \"\")\n\nif(CMAKE_CXX_SIZEOF_DATA_PTR)\n  set(CMAKE_SIZEOF_VOID_P \"${CMAKE_CXX_SIZEOF_DATA_PTR}\")\nendif()\n\nif(CMAKE_CXX_COMPILER_ABI)\n  set(CMAKE_INTERNAL_PLATFORM_ABI \"${CMAKE_CXX_COMPILER_ABI}\")\nendif()\n\nif(CMAKE_CXX_LIBRARY_ARCHITECTURE)\n  set(CMAKE_LIBRARY_ARCHITECTURE \"\")\nendif()\n\n\n\n\nset(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES \"stdc++;m;c\")\nset(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES \"/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib\")\nset(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES \"\")\n\n\n\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/3.2.3/CMakeSystem.cmake",
    "content": "set(CMAKE_HOST_SYSTEM \"Linux-2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_HOST_SYSTEM_NAME \"Linux\")\nset(CMAKE_HOST_SYSTEM_VERSION \"2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_HOST_SYSTEM_PROCESSOR \"x86_64\")\n\n\n\nset(CMAKE_SYSTEM \"Linux-2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_SYSTEM_NAME \"Linux\")\nset(CMAKE_SYSTEM_VERSION \"2.6.32-573.12.1.el6.x86_64\")\nset(CMAKE_SYSTEM_PROCESSOR \"x86_64\")\n\nset(CMAKE_CROSSCOMPILING \"FALSE\")\n\nset(CMAKE_SYSTEM_LOADED 1)\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/3.2.3/CompilerIdC/CMakeCCompilerId.c",
    "content": "#ifdef __cplusplus\n# error \"A C++ compiler has been selected for C.\"\n#endif\n\n#if defined(__18CXX)\n# define ID_VOID_MAIN\n#endif\n\n\n/* Version number components: V=Version, R=Revision, P=Patch\n   Version date components:   YYYY=Year, MM=Month,   DD=Day  */\n\n#if defined(__INTEL_COMPILER) || defined(__ICC)\n# define COMPILER_ID \"Intel\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n  /* __INTEL_COMPILER = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)\n# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)\n# if defined(__INTEL_COMPILER_UPDATE)\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)\n# else\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)\n# endif\n# if defined(__INTEL_COMPILER_BUILD_DATE)\n  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */\n#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)\n# endif\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__PATHCC__)\n# define COMPILER_ID \"PathScale\"\n# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)\n# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)\n# if defined(__PATHCC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)\n# endif\n\n#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)\n# define COMPILER_ID \"Embarcadero\"\n# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)\n# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)\n# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)\n\n#elif defined(__BORLANDC__)\n# define COMPILER_ID \"Borland\"\n  /* __BORLANDC__ = 0xVRR */\n# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)\n# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)\n\n#elif defined(__WATCOMC__) && __WATCOMC__ < 1200\n# define COMPILER_ID \"Watcom\"\n   /* __WATCOMC__ = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__WATCOMC__)\n# define COMPILER_ID \"OpenWatcom\"\n   /* __WATCOMC__ = VVRP + 1100 */\n# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__SUNPRO_C)\n# define COMPILER_ID \"SunPro\"\n# if __SUNPRO_C >= 0x5100\n   /* __SUNPRO_C = 0xVRRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)\n# else\n   /* __SUNPRO_CC = 0xVRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)\n# endif\n\n#elif defined(__HP_cc)\n# define COMPILER_ID \"HP\"\n  /* __HP_cc = VVRRPP */\n# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)\n# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)\n# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)\n\n#elif defined(__DECC)\n# define COMPILER_ID \"Compaq\"\n  /* __DECC_VER = VVRRTPPPP */\n# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)\n# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)\n# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)\n\n#elif defined(__IBMC__) && defined(__COMPILER_VER__)\n# define COMPILER_ID \"zOS\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800\n# define COMPILER_ID \"XL\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800\n# define COMPILER_ID \"VisualAge\"\n  /* __IBMC__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)\n\n#elif defined(__PGI)\n# define COMPILER_ID \"PGI\"\n# define COMPILER_VERSION_MAJOR DEC(__PGIC__)\n# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)\n# if defined(__PGIC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)\n# endif\n\n#elif defined(_CRAYC)\n# define COMPILER_ID \"Cray\"\n# define COMPILER_VERSION_MAJOR DEC(_RELEASE)\n# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)\n\n#elif defined(__TI_COMPILER_VERSION__)\n# define COMPILER_ID \"TI\"\n  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */\n# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)\n# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)\n# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)\n\n#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)\n# define COMPILER_ID \"Fujitsu\"\n\n#elif defined(__TINYC__)\n# define COMPILER_ID \"TinyCC\"\n\n#elif defined(__SCO_VERSION__)\n# define COMPILER_ID \"SCO\"\n\n#elif defined(__clang__) && defined(__apple_build_version__)\n# define COMPILER_ID \"AppleClang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)\n\n#elif defined(__clang__)\n# define COMPILER_ID \"Clang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__GNUC__)\n# define COMPILER_ID \"GNU\"\n# define COMPILER_VERSION_MAJOR DEC(__GNUC__)\n# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)\n# if defined(__GNUC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)\n# endif\n\n#elif defined(_MSC_VER)\n# define COMPILER_ID \"MSVC\"\n  /* _MSC_VER = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)\n# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)\n# if defined(_MSC_FULL_VER)\n#  if _MSC_VER >= 1400\n    /* _MSC_FULL_VER = VVRRPPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)\n#  else\n    /* _MSC_FULL_VER = VVRRPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)\n#  endif\n# endif\n# if defined(_MSC_BUILD)\n#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)\n# endif\n\n#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)\n# define COMPILER_ID \"ADSP\"\n#if defined(__VISUALDSPVERSION__)\n  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */\n# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)\n# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)\n# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)\n#endif\n\n#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)\n# define COMPILER_ID \"IAR\"\n\n#elif defined(SDCC)\n# define COMPILER_ID \"SDCC\"\n  /* SDCC = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)\n#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)\n\n#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)\n# define COMPILER_ID \"MIPSpro\"\n# if defined(_SGI_COMPILER_VERSION)\n  /* _SGI_COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)\n# else\n  /* _COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)\n# endif\n\n\n/* These compilers are either not known or too old to define an\n  identification macro.  Try to identify the platform and guess that\n  it is the native compiler.  */\n#elif defined(__sgi)\n# define COMPILER_ID \"MIPSpro\"\n\n#elif defined(__hpux) || defined(__hpua)\n# define COMPILER_ID \"HP\"\n\n#else /* unknown compiler */\n# define COMPILER_ID \"\"\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_compiler = \"INFO\" \":\" \"compiler[\" COMPILER_ID \"]\";\n#ifdef SIMULATE_ID\nchar const* info_simulate = \"INFO\" \":\" \"simulate[\" SIMULATE_ID \"]\";\n#endif\n\n#ifdef __QNXNTO__\nchar const* qnxnto = \"INFO\" \":\" \"qnxnto[]\";\n#endif\n\n/* Identify known platforms by name.  */\n#if defined(__linux) || defined(__linux__) || defined(linux)\n# define PLATFORM_ID \"Linux\"\n\n#elif defined(__CYGWIN__)\n# define PLATFORM_ID \"Cygwin\"\n\n#elif defined(__MINGW32__)\n# define PLATFORM_ID \"MinGW\"\n\n#elif defined(__APPLE__)\n# define PLATFORM_ID \"Darwin\"\n\n#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)\n# define PLATFORM_ID \"Windows\"\n\n#elif defined(__FreeBSD__) || defined(__FreeBSD)\n# define PLATFORM_ID \"FreeBSD\"\n\n#elif defined(__NetBSD__) || defined(__NetBSD)\n# define PLATFORM_ID \"NetBSD\"\n\n#elif defined(__OpenBSD__) || defined(__OPENBSD)\n# define PLATFORM_ID \"OpenBSD\"\n\n#elif defined(__sun) || defined(sun)\n# define PLATFORM_ID \"SunOS\"\n\n#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)\n# define PLATFORM_ID \"AIX\"\n\n#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)\n# define PLATFORM_ID \"IRIX\"\n\n#elif defined(__hpux) || defined(__hpux__)\n# define PLATFORM_ID \"HP-UX\"\n\n#elif defined(__HAIKU__)\n# define PLATFORM_ID \"Haiku\"\n\n#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)\n# define PLATFORM_ID \"BeOS\"\n\n#elif defined(__QNX__) || defined(__QNXNTO__)\n# define PLATFORM_ID \"QNX\"\n\n#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)\n# define PLATFORM_ID \"Tru64\"\n\n#elif defined(__riscos) || defined(__riscos__)\n# define PLATFORM_ID \"RISCos\"\n\n#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)\n# define PLATFORM_ID \"SINIX\"\n\n#elif defined(__UNIX_SV__)\n# define PLATFORM_ID \"UNIX_SV\"\n\n#elif defined(__bsdos__)\n# define PLATFORM_ID \"BSDOS\"\n\n#elif defined(_MPRAS) || defined(MPRAS)\n# define PLATFORM_ID \"MP-RAS\"\n\n#elif defined(__osf) || defined(__osf__)\n# define PLATFORM_ID \"OSF1\"\n\n#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)\n# define PLATFORM_ID \"SCO_SV\"\n\n#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)\n# define PLATFORM_ID \"ULTRIX\"\n\n#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)\n# define PLATFORM_ID \"Xenix\"\n\n#elif defined(__WATCOMC__)\n# if defined(__LINUX__)\n#  define PLATFORM_ID \"Linux\"\n\n# elif defined(__DOS__)\n#  define PLATFORM_ID \"DOS\"\n\n# elif defined(__OS2__)\n#  define PLATFORM_ID \"OS2\"\n\n# elif defined(__WINDOWS__)\n#  define PLATFORM_ID \"Windows3x\"\n\n# else /* unknown platform */\n#  define PLATFORM_ID \"\"\n# endif\n\n#else /* unknown platform */\n# define PLATFORM_ID \"\"\n\n#endif\n\n/* For windows compilers MSVC and Intel we can determine\n   the architecture of the compiler being used.  This is because\n   the compilers do not have flags that can change the architecture,\n   but rather depend on which compiler is being used\n*/\n#if defined(_WIN32) && defined(_MSC_VER)\n# if defined(_M_IA64)\n#  define ARCHITECTURE_ID \"IA64\"\n\n# elif defined(_M_X64) || defined(_M_AMD64)\n#  define ARCHITECTURE_ID \"x64\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# elif defined(_M_ARM)\n#  define ARCHITECTURE_ID \"ARM\"\n\n# elif defined(_M_MIPS)\n#  define ARCHITECTURE_ID \"MIPS\"\n\n# elif defined(_M_SH)\n#  define ARCHITECTURE_ID \"SHx\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#elif defined(__WATCOMC__)\n# if defined(_M_I86)\n#  define ARCHITECTURE_ID \"I86\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#else\n#  define ARCHITECTURE_ID \"\"\n#endif\n\n/* Convert integer to decimal digit literals.  */\n#define DEC(n)                   \\\n  ('0' + (((n) / 10000000)%10)), \\\n  ('0' + (((n) / 1000000)%10)),  \\\n  ('0' + (((n) / 100000)%10)),   \\\n  ('0' + (((n) / 10000)%10)),    \\\n  ('0' + (((n) / 1000)%10)),     \\\n  ('0' + (((n) / 100)%10)),      \\\n  ('0' + (((n) / 10)%10)),       \\\n  ('0' +  ((n) % 10))\n\n/* Convert integer to hex digit literals.  */\n#define HEX(n)             \\\n  ('0' + ((n)>>28 & 0xF)), \\\n  ('0' + ((n)>>24 & 0xF)), \\\n  ('0' + ((n)>>20 & 0xF)), \\\n  ('0' + ((n)>>16 & 0xF)), \\\n  ('0' + ((n)>>12 & 0xF)), \\\n  ('0' + ((n)>>8  & 0xF)), \\\n  ('0' + ((n)>>4  & 0xF)), \\\n  ('0' + ((n)     & 0xF))\n\n/* Construct a string literal encoding the version number components. */\n#ifdef COMPILER_VERSION_MAJOR\nchar const info_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',\n  COMPILER_VERSION_MAJOR,\n# ifdef COMPILER_VERSION_MINOR\n  '.', COMPILER_VERSION_MINOR,\n#  ifdef COMPILER_VERSION_PATCH\n   '.', COMPILER_VERSION_PATCH,\n#   ifdef COMPILER_VERSION_TWEAK\n    '.', COMPILER_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct a string literal encoding the version number components. */\n#ifdef SIMULATE_VERSION_MAJOR\nchar const info_simulate_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',\n  SIMULATE_VERSION_MAJOR,\n# ifdef SIMULATE_VERSION_MINOR\n  '.', SIMULATE_VERSION_MINOR,\n#  ifdef SIMULATE_VERSION_PATCH\n   '.', SIMULATE_VERSION_PATCH,\n#   ifdef SIMULATE_VERSION_TWEAK\n    '.', SIMULATE_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_platform = \"INFO\" \":\" \"platform[\" PLATFORM_ID \"]\";\nchar const* info_arch = \"INFO\" \":\" \"arch[\" ARCHITECTURE_ID \"]\";\n\n\n\n\n/*--------------------------------------------------------------------------*/\n\n#ifdef ID_VOID_MAIN\nvoid main() {}\n#else\nint main(int argc, char* argv[])\n{\n  int require = 0;\n  require += info_compiler[argc];\n  require += info_platform[argc];\n  require += info_arch[argc];\n#ifdef COMPILER_VERSION_MAJOR\n  require += info_version[argc];\n#endif\n#ifdef SIMULATE_ID\n  require += info_simulate[argc];\n#endif\n#ifdef SIMULATE_VERSION_MAJOR\n  require += info_simulate_version[argc];\n#endif\n  (void)argv;\n  return require;\n}\n#endif\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/3.2.3/CompilerIdCXX/CMakeCXXCompilerId.cpp",
    "content": "/* This source file must have a .cpp extension so that all C++ compilers\n   recognize the extension without flags.  Borland does not know .cxx for\n   example.  */\n#ifndef __cplusplus\n# error \"A C compiler has been selected for C++.\"\n#endif\n\n\n/* Version number components: V=Version, R=Revision, P=Patch\n   Version date components:   YYYY=Year, MM=Month,   DD=Day  */\n\n#if defined(__COMO__)\n# define COMPILER_ID \"Comeau\"\n  /* __COMO_VERSION__ = VRR */\n# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)\n# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)\n\n#elif defined(__INTEL_COMPILER) || defined(__ICC)\n# define COMPILER_ID \"Intel\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n  /* __INTEL_COMPILER = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)\n# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)\n# if defined(__INTEL_COMPILER_UPDATE)\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)\n# else\n#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)\n# endif\n# if defined(__INTEL_COMPILER_BUILD_DATE)\n  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */\n#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)\n# endif\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__PATHCC__)\n# define COMPILER_ID \"PathScale\"\n# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)\n# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)\n# if defined(__PATHCC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)\n# endif\n\n#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)\n# define COMPILER_ID \"Embarcadero\"\n# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)\n# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)\n# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__     & 0xFFFF)\n\n#elif defined(__BORLANDC__)\n# define COMPILER_ID \"Borland\"\n  /* __BORLANDC__ = 0xVRR */\n# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)\n# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)\n\n#elif defined(__WATCOMC__) && __WATCOMC__ < 1200\n# define COMPILER_ID \"Watcom\"\n   /* __WATCOMC__ = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__WATCOMC__)\n# define COMPILER_ID \"OpenWatcom\"\n   /* __WATCOMC__ = VVRP + 1100 */\n# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)\n# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)\n# if (__WATCOMC__ % 10) > 0\n#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)\n# endif\n\n#elif defined(__SUNPRO_CC)\n# define COMPILER_ID \"SunPro\"\n# if __SUNPRO_CC >= 0x5100\n   /* __SUNPRO_CC = 0xVRRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)\n# else\n   /* __SUNPRO_CC = 0xVRP */\n#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)\n#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)\n#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)\n# endif\n\n#elif defined(__HP_aCC)\n# define COMPILER_ID \"HP\"\n  /* __HP_aCC = VVRRPP */\n# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)\n# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)\n# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)\n\n#elif defined(__DECCXX)\n# define COMPILER_ID \"Compaq\"\n  /* __DECCXX_VER = VVRRTPPPP */\n# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)\n# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)\n# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)\n\n#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)\n# define COMPILER_ID \"zOS\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800\n# define COMPILER_ID \"XL\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800\n# define COMPILER_ID \"VisualAge\"\n  /* __IBMCPP__ = VRP */\n# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)\n# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)\n# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)\n\n#elif defined(__PGI)\n# define COMPILER_ID \"PGI\"\n# define COMPILER_VERSION_MAJOR DEC(__PGIC__)\n# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)\n# if defined(__PGIC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)\n# endif\n\n#elif defined(_CRAYC)\n# define COMPILER_ID \"Cray\"\n# define COMPILER_VERSION_MAJOR DEC(_RELEASE)\n# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)\n\n#elif defined(__TI_COMPILER_VERSION__)\n# define COMPILER_ID \"TI\"\n  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */\n# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)\n# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)\n# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)\n\n#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)\n# define COMPILER_ID \"Fujitsu\"\n\n#elif defined(__SCO_VERSION__)\n# define COMPILER_ID \"SCO\"\n\n#elif defined(__clang__) && defined(__apple_build_version__)\n# define COMPILER_ID \"AppleClang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)\n\n#elif defined(__clang__)\n# define COMPILER_ID \"Clang\"\n# if defined(_MSC_VER)\n#  define SIMULATE_ID \"MSVC\"\n# endif\n# define COMPILER_VERSION_MAJOR DEC(__clang_major__)\n# define COMPILER_VERSION_MINOR DEC(__clang_minor__)\n# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)\n# if defined(_MSC_VER)\n   /* _MSC_VER = VVRR */\n#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)\n#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)\n# endif\n\n#elif defined(__GNUC__)\n# define COMPILER_ID \"GNU\"\n# define COMPILER_VERSION_MAJOR DEC(__GNUC__)\n# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)\n# if defined(__GNUC_PATCHLEVEL__)\n#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)\n# endif\n\n#elif defined(_MSC_VER)\n# define COMPILER_ID \"MSVC\"\n  /* _MSC_VER = VVRR */\n# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)\n# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)\n# if defined(_MSC_FULL_VER)\n#  if _MSC_VER >= 1400\n    /* _MSC_FULL_VER = VVRRPPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)\n#  else\n    /* _MSC_FULL_VER = VVRRPPPP */\n#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)\n#  endif\n# endif\n# if defined(_MSC_BUILD)\n#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)\n# endif\n\n#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)\n# define COMPILER_ID \"ADSP\"\n#if defined(__VISUALDSPVERSION__)\n  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */\n# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)\n# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)\n# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)\n#endif\n\n#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)\n# define COMPILER_ID \"IAR\"\n\n#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)\n# define COMPILER_ID \"MIPSpro\"\n# if defined(_SGI_COMPILER_VERSION)\n  /* _SGI_COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)\n# else\n  /* _COMPILER_VERSION = VRP */\n#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)\n#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)\n#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)\n# endif\n\n\n/* These compilers are either not known or too old to define an\n  identification macro.  Try to identify the platform and guess that\n  it is the native compiler.  */\n#elif defined(__sgi)\n# define COMPILER_ID \"MIPSpro\"\n\n#elif defined(__hpux) || defined(__hpua)\n# define COMPILER_ID \"HP\"\n\n#else /* unknown compiler */\n# define COMPILER_ID \"\"\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_compiler = \"INFO\" \":\" \"compiler[\" COMPILER_ID \"]\";\n#ifdef SIMULATE_ID\nchar const* info_simulate = \"INFO\" \":\" \"simulate[\" SIMULATE_ID \"]\";\n#endif\n\n#ifdef __QNXNTO__\nchar const* qnxnto = \"INFO\" \":\" \"qnxnto[]\";\n#endif\n\n/* Identify known platforms by name.  */\n#if defined(__linux) || defined(__linux__) || defined(linux)\n# define PLATFORM_ID \"Linux\"\n\n#elif defined(__CYGWIN__)\n# define PLATFORM_ID \"Cygwin\"\n\n#elif defined(__MINGW32__)\n# define PLATFORM_ID \"MinGW\"\n\n#elif defined(__APPLE__)\n# define PLATFORM_ID \"Darwin\"\n\n#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)\n# define PLATFORM_ID \"Windows\"\n\n#elif defined(__FreeBSD__) || defined(__FreeBSD)\n# define PLATFORM_ID \"FreeBSD\"\n\n#elif defined(__NetBSD__) || defined(__NetBSD)\n# define PLATFORM_ID \"NetBSD\"\n\n#elif defined(__OpenBSD__) || defined(__OPENBSD)\n# define PLATFORM_ID \"OpenBSD\"\n\n#elif defined(__sun) || defined(sun)\n# define PLATFORM_ID \"SunOS\"\n\n#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)\n# define PLATFORM_ID \"AIX\"\n\n#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)\n# define PLATFORM_ID \"IRIX\"\n\n#elif defined(__hpux) || defined(__hpux__)\n# define PLATFORM_ID \"HP-UX\"\n\n#elif defined(__HAIKU__)\n# define PLATFORM_ID \"Haiku\"\n\n#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)\n# define PLATFORM_ID \"BeOS\"\n\n#elif defined(__QNX__) || defined(__QNXNTO__)\n# define PLATFORM_ID \"QNX\"\n\n#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)\n# define PLATFORM_ID \"Tru64\"\n\n#elif defined(__riscos) || defined(__riscos__)\n# define PLATFORM_ID \"RISCos\"\n\n#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)\n# define PLATFORM_ID \"SINIX\"\n\n#elif defined(__UNIX_SV__)\n# define PLATFORM_ID \"UNIX_SV\"\n\n#elif defined(__bsdos__)\n# define PLATFORM_ID \"BSDOS\"\n\n#elif defined(_MPRAS) || defined(MPRAS)\n# define PLATFORM_ID \"MP-RAS\"\n\n#elif defined(__osf) || defined(__osf__)\n# define PLATFORM_ID \"OSF1\"\n\n#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)\n# define PLATFORM_ID \"SCO_SV\"\n\n#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)\n# define PLATFORM_ID \"ULTRIX\"\n\n#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)\n# define PLATFORM_ID \"Xenix\"\n\n#elif defined(__WATCOMC__)\n# if defined(__LINUX__)\n#  define PLATFORM_ID \"Linux\"\n\n# elif defined(__DOS__)\n#  define PLATFORM_ID \"DOS\"\n\n# elif defined(__OS2__)\n#  define PLATFORM_ID \"OS2\"\n\n# elif defined(__WINDOWS__)\n#  define PLATFORM_ID \"Windows3x\"\n\n# else /* unknown platform */\n#  define PLATFORM_ID \"\"\n# endif\n\n#else /* unknown platform */\n# define PLATFORM_ID \"\"\n\n#endif\n\n/* For windows compilers MSVC and Intel we can determine\n   the architecture of the compiler being used.  This is because\n   the compilers do not have flags that can change the architecture,\n   but rather depend on which compiler is being used\n*/\n#if defined(_WIN32) && defined(_MSC_VER)\n# if defined(_M_IA64)\n#  define ARCHITECTURE_ID \"IA64\"\n\n# elif defined(_M_X64) || defined(_M_AMD64)\n#  define ARCHITECTURE_ID \"x64\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# elif defined(_M_ARM)\n#  define ARCHITECTURE_ID \"ARM\"\n\n# elif defined(_M_MIPS)\n#  define ARCHITECTURE_ID \"MIPS\"\n\n# elif defined(_M_SH)\n#  define ARCHITECTURE_ID \"SHx\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#elif defined(__WATCOMC__)\n# if defined(_M_I86)\n#  define ARCHITECTURE_ID \"I86\"\n\n# elif defined(_M_IX86)\n#  define ARCHITECTURE_ID \"X86\"\n\n# else /* unknown architecture */\n#  define ARCHITECTURE_ID \"\"\n# endif\n\n#else\n#  define ARCHITECTURE_ID \"\"\n#endif\n\n/* Convert integer to decimal digit literals.  */\n#define DEC(n)                   \\\n  ('0' + (((n) / 10000000)%10)), \\\n  ('0' + (((n) / 1000000)%10)),  \\\n  ('0' + (((n) / 100000)%10)),   \\\n  ('0' + (((n) / 10000)%10)),    \\\n  ('0' + (((n) / 1000)%10)),     \\\n  ('0' + (((n) / 100)%10)),      \\\n  ('0' + (((n) / 10)%10)),       \\\n  ('0' +  ((n) % 10))\n\n/* Convert integer to hex digit literals.  */\n#define HEX(n)             \\\n  ('0' + ((n)>>28 & 0xF)), \\\n  ('0' + ((n)>>24 & 0xF)), \\\n  ('0' + ((n)>>20 & 0xF)), \\\n  ('0' + ((n)>>16 & 0xF)), \\\n  ('0' + ((n)>>12 & 0xF)), \\\n  ('0' + ((n)>>8  & 0xF)), \\\n  ('0' + ((n)>>4  & 0xF)), \\\n  ('0' + ((n)     & 0xF))\n\n/* Construct a string literal encoding the version number components. */\n#ifdef COMPILER_VERSION_MAJOR\nchar const info_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',\n  COMPILER_VERSION_MAJOR,\n# ifdef COMPILER_VERSION_MINOR\n  '.', COMPILER_VERSION_MINOR,\n#  ifdef COMPILER_VERSION_PATCH\n   '.', COMPILER_VERSION_PATCH,\n#   ifdef COMPILER_VERSION_TWEAK\n    '.', COMPILER_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct a string literal encoding the version number components. */\n#ifdef SIMULATE_VERSION_MAJOR\nchar const info_simulate_version[] = {\n  'I', 'N', 'F', 'O', ':',\n  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',\n  SIMULATE_VERSION_MAJOR,\n# ifdef SIMULATE_VERSION_MINOR\n  '.', SIMULATE_VERSION_MINOR,\n#  ifdef SIMULATE_VERSION_PATCH\n   '.', SIMULATE_VERSION_PATCH,\n#   ifdef SIMULATE_VERSION_TWEAK\n    '.', SIMULATE_VERSION_TWEAK,\n#   endif\n#  endif\n# endif\n  ']','\\0'};\n#endif\n\n/* Construct the string literal in pieces to prevent the source from\n   getting matched.  Store it in a pointer rather than an array\n   because some compilers will just produce instructions to fill the\n   array rather than assigning a pointer to a static array.  */\nchar const* info_platform = \"INFO\" \":\" \"platform[\" PLATFORM_ID \"]\";\nchar const* info_arch = \"INFO\" \":\" \"arch[\" ARCHITECTURE_ID \"]\";\n\n\n\n\n/*--------------------------------------------------------------------------*/\n\nint main(int argc, char* argv[])\n{\n  int require = 0;\n  require += info_compiler[argc];\n  require += info_platform[argc];\n#ifdef COMPILER_VERSION_MAJOR\n  require += info_version[argc];\n#endif\n#ifdef SIMULATE_ID\n  require += info_simulate[argc];\n#endif\n#ifdef SIMULATE_VERSION_MAJOR\n  require += info_simulate_version[argc];\n#endif\n  (void)argv;\n  return require;\n}\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/CMakeOutput.log",
    "content": "The system is: Linux - 2.6.32-573.12.1.el6.x86_64 - x86_64\nCompiling the C compiler identification source file \"CMakeCCompilerId.c\" succeeded.\nCompiler: /opt/rh/devtoolset-2/root/usr/bin/cc \nBuild flags: \nId flags: \n\nThe output was:\n0\n\n\nCompilation of the C compiler identification source \"CMakeCCompilerId.c\" produced \"a.out\"\n\nThe C compiler identification is GNU, found in \"/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/3.2.3/CompilerIdC/a.out\"\n\nCompiling the CXX compiler identification source file \"CMakeCXXCompilerId.cpp\" succeeded.\nCompiler: /opt/rh/devtoolset-2/root/usr/bin/c++ \nBuild flags: \nId flags: \n\nThe output was:\n0\n\n\nCompilation of the CXX compiler identification source \"CMakeCXXCompilerId.cpp\" produced \"a.out\"\n\nThe CXX compiler identification is GNU, found in \"/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/3.2.3/CompilerIdCXX/a.out\"\n\nDetermining if the C compiler works passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec891083984/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec891083984.dir/build.make CMakeFiles/cmTryCompileExec891083984.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec891083984.dir/testCCompiler.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec891083984.dir/testCCompiler.c.o   -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/testCCompiler.c\nLinking C executable cmTryCompileExec891083984\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec891083984.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec891083984.dir/testCCompiler.c.o  -o cmTryCompileExec891083984 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\nDetecting C compiler ABI info compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1523518069/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1523518069.dir/build.make CMakeFiles/cmTryCompileExec1523518069.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCCompilerABI.c\nLinking C executable cmTryCompileExec1523518069\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1523518069.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc      -v CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec1523518069 -rdynamic  \nUsing built-in specs.\nCOLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/cc\nCOLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper\nTarget: x86_64-redhat-linux\nConfigured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux\nThread model: posix\ngcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) \nCOMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/\nLIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/\nCOLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1523518069' '-rdynamic' '-mtune=generic' '-march=x86-64'\n /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1523518069 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\nParsed C implicit link information from above output:\n  link line regex: [^( *|.*[/\\])(ld|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]\n  ignore line: [Change Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp]\n  ignore line: []\n  ignore line: [Run Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1523518069/fast\"]\n  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1523518069.dir/build.make CMakeFiles/cmTryCompileExec1523518069.dir/build]\n  ignore line: [gmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp']\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1]\n  ignore line: [Building C object CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/cc    -o CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o   -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCCompilerABI.c]\n  ignore line: [Linking C executable cmTryCompileExec1523518069]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1523518069.dir/link.txt --verbose=1]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/cc      -v CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec1523518069 -rdynamic  ]\n  ignore line: [Using built-in specs.]\n  ignore line: [COLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/cc]\n  ignore line: [COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper]\n  ignore line: [Target: x86_64-redhat-linux]\n  ignore line: [Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux]\n  ignore line: [Thread model: posix]\n  ignore line: [gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) ]\n  ignore line: [COMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/]\n  ignore line: [LIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/]\n  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1523518069' '-rdynamic' '-mtune=generic' '-march=x86-64']\n  link line: [ /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1523518069 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o]\n    arg [/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2] ==> ignore\n    arg [--build-id] ==> ignore\n    arg [--no-add-needed] ==> ignore\n    arg [--eh-frame-hdr] ==> ignore\n    arg [--hash-style=gnu] ==> ignore\n    arg [-m] ==> ignore\n    arg [elf_x86_64] ==> ignore\n    arg [-export-dynamic] ==> ignore\n    arg [-dynamic-linker] ==> ignore\n    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore\n    arg [-o] ==> ignore\n    arg [cmTryCompileExec1523518069] ==> ignore\n    arg [/usr/lib/../lib64/crt1.o] ==> ignore\n    arg [/usr/lib/../lib64/crti.o] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o] ==> ignore\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64]\n    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]\n    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..]\n    arg [CMakeFiles/cmTryCompileExec1523518069.dir/CMakeCCompilerABI.c.o] ==> ignore\n    arg [-lgcc] ==> lib [gcc]\n    arg [--as-needed] ==> ignore\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [--no-as-needed] ==> ignore\n    arg [-lc] ==> lib [c]\n    arg [-lgcc] ==> lib [gcc]\n    arg [--as-needed] ==> ignore\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [--no-as-needed] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o] ==> ignore\n    arg [/usr/lib/../lib64/crtn.o] ==> ignore\n  remove lib [gcc]\n  remove lib [gcc_s]\n  remove lib [gcc]\n  remove lib [gcc_s]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> [/opt/rh/devtoolset-2/root/usr/lib64]\n  collapse library dir [/lib/../lib64] ==> [/lib64]\n  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> [/opt/rh/devtoolset-2/root/usr/lib]\n  implicit libs: [c]\n  implicit dirs: [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib]\n  implicit fwks: []\n\n\n\n\nDetecting C [-std=c11] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1158439235/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1158439235.dir/build.make CMakeFiles/cmTryCompileExec1158439235.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec1158439235.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c11 -o CMakeFiles/cmTryCompileExec1158439235.dir/feature_tests.c.o   -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec1158439235\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1158439235.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec1158439235.dir/feature_tests.c.o  -o cmTryCompileExec1158439235 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:1c_restrict\n    Feature record: C_FEATURE:1c_static_assert\n    Feature record: C_FEATURE:1c_variadic_macros\n\n\nDetecting C [-std=c99] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3806924121/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3806924121.dir/build.make CMakeFiles/cmTryCompileExec3806924121.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3806924121.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c99 -o CMakeFiles/cmTryCompileExec3806924121.dir/feature_tests.c.o   -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec3806924121\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3806924121.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec3806924121.dir/feature_tests.c.o  -o cmTryCompileExec3806924121 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:1c_restrict\n    Feature record: C_FEATURE:0c_static_assert\n    Feature record: C_FEATURE:1c_variadic_macros\n\n\nDetecting C [-std=c90] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3132589720/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3132589720.dir/build.make CMakeFiles/cmTryCompileExec3132589720.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding C object CMakeFiles/cmTryCompileExec3132589720.dir/feature_tests.c.o\n/opt/rh/devtoolset-2/root/usr/bin/cc   -std=c90 -o CMakeFiles/cmTryCompileExec3132589720.dir/feature_tests.c.o   -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.c\nLinking C executable cmTryCompileExec3132589720\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3132589720.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/cc       CMakeFiles/cmTryCompileExec3132589720.dir/feature_tests.c.o  -o cmTryCompileExec3132589720 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: C_FEATURE:1c_function_prototypes\n    Feature record: C_FEATURE:0c_restrict\n    Feature record: C_FEATURE:0c_static_assert\n    Feature record: C_FEATURE:0c_variadic_macros\nDetermining if the CXX compiler works passed with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1431250930/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1431250930.dir/build.make CMakeFiles/cmTryCompileExec1431250930.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec1431250930.dir/testCXXCompiler.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec1431250930.dir/testCXXCompiler.cxx.o -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx\nLinking CXX executable cmTryCompileExec1431250930\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1431250930.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec1431250930.dir/testCXXCompiler.cxx.o  -o cmTryCompileExec1431250930 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\nDetecting CXX compiler ABI info compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3855026241/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3855026241.dir/build.make CMakeFiles/cmTryCompileExec3855026241.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o\n/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXCompilerABI.cpp\nLinking CXX executable cmTryCompileExec3855026241\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3855026241.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++       -v CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec3855026241 -rdynamic  \nUsing built-in specs.\nCOLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/c++\nCOLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper\nTarget: x86_64-redhat-linux\nConfigured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux\nThread model: posix\ngcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) \nCOMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/\nLIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/\nCOLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3855026241' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'\n /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec3855026241 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o\ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\nParsed CXX implicit link information from above output:\n  link line regex: [^( *|.*[/\\])(ld|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]\n  ignore line: [Change Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp]\n  ignore line: []\n  ignore line: [Run Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec3855026241/fast\"]\n  ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3855026241.dir/build.make CMakeFiles/cmTryCompileExec3855026241.dir/build]\n  ignore line: [gmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp']\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1]\n  ignore line: [Building CXX object CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/c++     -o CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o -c /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXCompilerABI.cpp]\n  ignore line: [Linking CXX executable cmTryCompileExec3855026241]\n  ignore line: [/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3855026241.dir/link.txt --verbose=1]\n  ignore line: [/opt/rh/devtoolset-2/root/usr/bin/c++       -v CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec3855026241 -rdynamic  ]\n  ignore line: [Using built-in specs.]\n  ignore line: [COLLECT_GCC=/opt/rh/devtoolset-2/root/usr/bin/c++]\n  ignore line: [COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper]\n  ignore line: [Target: x86_64-redhat-linux]\n  ignore line: [Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux]\n  ignore line: [Thread model: posix]\n  ignore line: [gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC) ]\n  ignore line: [COMPILER_PATH=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/]\n  ignore line: [LIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../:/lib/:/usr/lib/]\n  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3855026241' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']\n  link line: [ /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec3855026241 /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.. CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o /usr/lib/../lib64/crtn.o]\n    arg [/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/collect2] ==> ignore\n    arg [--build-id] ==> ignore\n    arg [--no-add-needed] ==> ignore\n    arg [--eh-frame-hdr] ==> ignore\n    arg [--hash-style=gnu] ==> ignore\n    arg [-m] ==> ignore\n    arg [elf_x86_64] ==> ignore\n    arg [-export-dynamic] ==> ignore\n    arg [-dynamic-linker] ==> ignore\n    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore\n    arg [-o] ==> ignore\n    arg [cmTryCompileExec3855026241] ==> ignore\n    arg [/usr/lib/../lib64/crt1.o] ==> ignore\n    arg [/usr/lib/../lib64/crti.o] ==> ignore\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbegin.o] ==> ignore\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64]\n    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]\n    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]\n    arg [-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..]\n    arg [CMakeFiles/cmTryCompileExec3855026241.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore\n    arg [-lstdc++] ==> lib [stdc++]\n    arg [-lm] ==> lib [m]\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [-lgcc] ==> lib [gcc]\n    arg [-lc] ==> lib [c]\n    arg [-lgcc_s] ==> lib [gcc_s]\n    arg [-lgcc] ==> lib [gcc]\n    arg [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtend.o] ==> ignore\n    arg [/usr/lib/../lib64/crtn.o] ==> ignore\n  remove lib [gcc_s]\n  remove lib [gcc]\n  remove lib [gcc_s]\n  remove lib [gcc]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2] ==> [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64] ==> [/opt/rh/devtoolset-2/root/usr/lib64]\n  collapse library dir [/lib/../lib64] ==> [/lib64]\n  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]\n  collapse library dir [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../..] ==> [/opt/rh/devtoolset-2/root/usr/lib]\n  implicit libs: [stdc++;m;c]\n  implicit dirs: [/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2;/opt/rh/devtoolset-2/root/usr/lib64;/lib64;/usr/lib64;/opt/rh/devtoolset-2/root/usr/lib]\n  implicit fwks: []\n\n\n\n\nDetecting CXX [-std=c++1y] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec2137709042/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2137709042.dir/build.make CMakeFiles/cmTryCompileExec2137709042.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec2137709042.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++1y -o CMakeFiles/cmTryCompileExec2137709042.dir/feature_tests.cxx.o -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec2137709042\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2137709042.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec2137709042.dir/feature_tests.cxx.o  -o cmTryCompileExec2137709042 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:1cxx_alias_templates\n    Feature record: CXX_FEATURE:1cxx_alignas\n    Feature record: CXX_FEATURE:1cxx_alignof\n    Feature record: CXX_FEATURE:1cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:1cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:1cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:1cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:1cxx_default_function_template_args\n    Feature record: CXX_FEATURE:1cxx_defaulted_functions\n    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:1cxx_delegating_constructors\n    Feature record: CXX_FEATURE:1cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:1cxx_explicit_conversions\n    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:1cxx_extern_templates\n    Feature record: CXX_FEATURE:1cxx_final\n    Feature record: CXX_FEATURE:1cxx_func_identifier\n    Feature record: CXX_FEATURE:1cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:1cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:1cxx_inline_namespaces\n    Feature record: CXX_FEATURE:1cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:1cxx_local_type_template_args\n    Feature record: CXX_FEATURE:1cxx_long_long_type\n    Feature record: CXX_FEATURE:1cxx_noexcept\n    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:1cxx_nullptr\n    Feature record: CXX_FEATURE:1cxx_override\n    Feature record: CXX_FEATURE:1cxx_range_for\n    Feature record: CXX_FEATURE:1cxx_raw_string_literals\n    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:1cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:1cxx_rvalue_references\n    Feature record: CXX_FEATURE:1cxx_sizeof_member\n    Feature record: CXX_FEATURE:1cxx_static_assert\n    Feature record: CXX_FEATURE:1cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:1cxx_thread_local\n    Feature record: CXX_FEATURE:1cxx_trailing_return_types\n    Feature record: CXX_FEATURE:1cxx_unicode_literals\n    Feature record: CXX_FEATURE:1cxx_uniform_initialization\n    Feature record: CXX_FEATURE:1cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:1cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:1cxx_variadic_macros\n    Feature record: CXX_FEATURE:1cxx_variadic_templates\n\n\nDetecting CXX [-std=c++11] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec4289469676/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec4289469676.dir/build.make CMakeFiles/cmTryCompileExec4289469676.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec4289469676.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++11 -o CMakeFiles/cmTryCompileExec4289469676.dir/feature_tests.cxx.o -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec4289469676\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4289469676.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec4289469676.dir/feature_tests.cxx.o  -o cmTryCompileExec4289469676 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:1cxx_alias_templates\n    Feature record: CXX_FEATURE:1cxx_alignas\n    Feature record: CXX_FEATURE:1cxx_alignof\n    Feature record: CXX_FEATURE:1cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:1cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:1cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:1cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:1cxx_default_function_template_args\n    Feature record: CXX_FEATURE:1cxx_defaulted_functions\n    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:1cxx_delegating_constructors\n    Feature record: CXX_FEATURE:1cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:1cxx_explicit_conversions\n    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:1cxx_extern_templates\n    Feature record: CXX_FEATURE:1cxx_final\n    Feature record: CXX_FEATURE:1cxx_func_identifier\n    Feature record: CXX_FEATURE:1cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:1cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:1cxx_inline_namespaces\n    Feature record: CXX_FEATURE:1cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:1cxx_local_type_template_args\n    Feature record: CXX_FEATURE:1cxx_long_long_type\n    Feature record: CXX_FEATURE:1cxx_noexcept\n    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:1cxx_nullptr\n    Feature record: CXX_FEATURE:1cxx_override\n    Feature record: CXX_FEATURE:1cxx_range_for\n    Feature record: CXX_FEATURE:1cxx_raw_string_literals\n    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:1cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:1cxx_rvalue_references\n    Feature record: CXX_FEATURE:1cxx_sizeof_member\n    Feature record: CXX_FEATURE:1cxx_static_assert\n    Feature record: CXX_FEATURE:1cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:1cxx_thread_local\n    Feature record: CXX_FEATURE:1cxx_trailing_return_types\n    Feature record: CXX_FEATURE:1cxx_unicode_literals\n    Feature record: CXX_FEATURE:1cxx_uniform_initialization\n    Feature record: CXX_FEATURE:1cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:1cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:1cxx_variadic_macros\n    Feature record: CXX_FEATURE:1cxx_variadic_templates\n\n\nDetecting CXX [-std=c++98] compiler features compiled with the following output:\nChange Dir: /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp\n\nRun Build Command:\"/usr/bin/gmake\" \"cmTryCompileExec1708934615/fast\"\n/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1708934615.dir/build.make CMakeFiles/cmTryCompileExec1708934615.dir/build\ngmake[1]: Entering directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp/CMakeFiles 1\nBuilding CXX object CMakeFiles/cmTryCompileExec1708934615.dir/feature_tests.cxx.o\n/opt/rh/devtoolset-2/root/usr/bin/c++    -std=c++98 -o CMakeFiles/cmTryCompileExec1708934615.dir/feature_tests.cxx.o -c /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/feature_tests.cxx\nLinking CXX executable cmTryCompileExec1708934615\n/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1708934615.dir/link.txt --verbose=1\n/opt/rh/devtoolset-2/root/usr/bin/c++        CMakeFiles/cmTryCompileExec1708934615.dir/feature_tests.cxx.o  -o cmTryCompileExec1708934615 -rdynamic \ngmake[1]: Leaving directory `/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/CMakeTmp'\n\n\n    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers\n    Feature record: CXX_FEATURE:0cxx_alias_templates\n    Feature record: CXX_FEATURE:0cxx_alignas\n    Feature record: CXX_FEATURE:0cxx_alignof\n    Feature record: CXX_FEATURE:0cxx_attributes\n    Feature record: CXX_FEATURE:0cxx_attribute_deprecated\n    Feature record: CXX_FEATURE:0cxx_auto_type\n    Feature record: CXX_FEATURE:0cxx_binary_literals\n    Feature record: CXX_FEATURE:0cxx_constexpr\n    Feature record: CXX_FEATURE:0cxx_contextual_conversions\n    Feature record: CXX_FEATURE:0cxx_decltype\n    Feature record: CXX_FEATURE:0cxx_decltype_auto\n    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types\n    Feature record: CXX_FEATURE:0cxx_default_function_template_args\n    Feature record: CXX_FEATURE:0cxx_defaulted_functions\n    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers\n    Feature record: CXX_FEATURE:0cxx_delegating_constructors\n    Feature record: CXX_FEATURE:0cxx_deleted_functions\n    Feature record: CXX_FEATURE:0cxx_digit_separators\n    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations\n    Feature record: CXX_FEATURE:0cxx_explicit_conversions\n    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations\n    Feature record: CXX_FEATURE:0cxx_extern_templates\n    Feature record: CXX_FEATURE:0cxx_final\n    Feature record: CXX_FEATURE:0cxx_func_identifier\n    Feature record: CXX_FEATURE:0cxx_generalized_initializers\n    Feature record: CXX_FEATURE:0cxx_generic_lambdas\n    Feature record: CXX_FEATURE:0cxx_inheriting_constructors\n    Feature record: CXX_FEATURE:0cxx_inline_namespaces\n    Feature record: CXX_FEATURE:0cxx_lambdas\n    Feature record: CXX_FEATURE:0cxx_lambda_init_captures\n    Feature record: CXX_FEATURE:0cxx_local_type_template_args\n    Feature record: CXX_FEATURE:0cxx_long_long_type\n    Feature record: CXX_FEATURE:0cxx_noexcept\n    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init\n    Feature record: CXX_FEATURE:0cxx_nullptr\n    Feature record: CXX_FEATURE:0cxx_override\n    Feature record: CXX_FEATURE:0cxx_range_for\n    Feature record: CXX_FEATURE:0cxx_raw_string_literals\n    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions\n    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr\n    Feature record: CXX_FEATURE:0cxx_return_type_deduction\n    Feature record: CXX_FEATURE:0cxx_right_angle_brackets\n    Feature record: CXX_FEATURE:0cxx_rvalue_references\n    Feature record: CXX_FEATURE:0cxx_sizeof_member\n    Feature record: CXX_FEATURE:0cxx_static_assert\n    Feature record: CXX_FEATURE:0cxx_strong_enums\n    Feature record: CXX_FEATURE:1cxx_template_template_parameters\n    Feature record: CXX_FEATURE:0cxx_thread_local\n    Feature record: CXX_FEATURE:0cxx_trailing_return_types\n    Feature record: CXX_FEATURE:0cxx_unicode_literals\n    Feature record: CXX_FEATURE:0cxx_uniform_initialization\n    Feature record: CXX_FEATURE:0cxx_unrestricted_unions\n    Feature record: CXX_FEATURE:0cxx_user_literals\n    Feature record: CXX_FEATURE:0cxx_variable_templates\n    Feature record: CXX_FEATURE:0cxx_variadic_macros\n    Feature record: CXX_FEATURE:0cxx_variadic_templates\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/CMakeRuleHashes.txt",
    "content": "# Hashes of file build rules.\nf945aedb6b1928be7b40a3f3fa39c1e9 ../doc/manual.pdf\n62607b39da52555f2d501135584e7d90 CMakeFiles/uninstall\ndbaa745d5338c587ffd8112a9c89a745 doc/CMakeFiles/auxclean\n4028a1055cd7b4a4ffc8dc3791bc0424 doc/CMakeFiles/doc\n4028a1055cd7b4a4ffc8dc3791bc0424 doc/CMakeFiles/dvi\n4028a1055cd7b4a4ffc8dc3791bc0424 doc/CMakeFiles/pdf\n4028a1055cd7b4a4ffc8dc3791bc0424 doc/CMakeFiles/ps\n0568671019c804bfe68be686b2c820da doc/CMakeFiles/safepdf\n28b041783d1e1e0315942d7a2f9b4968 doc/images/cmake-gui.eps\naebf5435883b465ae20afb20e6d7ad91 doc/images/cmake-gui.png\n3e9202a142103306863601c32268279d doc/manual.dvi\n723836b415b74553095bff38b2cbc5c6 doc/manual.pdf\n9737be59ceaccaf6fc1f7426c0b3716a doc/manual.ps\nca333bb236e2eb8005e16f8e49198bb1 doc/manual.tex\n19253c170a71b30044c71e0de6eace6b doc/references.bib\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/Makefile.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# The generator used is:\nset(CMAKE_DEPENDS_GENERATOR \"Unix Makefiles\")\n\n# The top level Makefile was generated from the following files:\nset(CMAKE_MAKEFILE_DEPENDS\n  \"CMakeCache.txt\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCXXInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeCommonLanguageInclude.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeGenericSystem.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeParseArguments.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeSystemSpecificInformation.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CMakeSystemSpecificInitialize.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CPack.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/CPackComponent.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU-C.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU-CXX.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Compiler/GNU.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindGTest.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindHDF5.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindLATEX.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindPackageMessage.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/FindPythonInterp.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/InstallRequiredSystemLibraries.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU-C.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU-CXX.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux-GNU.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/Linux.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/Platform/UnixPaths.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Modules/SelectLibraryConfigurations.cmake\"\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPackConfig.cmake.in\"\n  \"../CMakeLists.txt\"\n  \"CMakeFiles/3.2.3/CMakeCCompiler.cmake\"\n  \"CMakeFiles/3.2.3/CMakeCXXCompiler.cmake\"\n  \"CMakeFiles/3.2.3/CMakeSystem.cmake\"\n  \"../cmake/CMakeLists.txt\"\n  \"../cmake/UseLATEX.cmake\"\n  \"../cmake/flann.pc.in\"\n  \"../cmake/flann_utils.cmake\"\n  \"../cmake/uninstall_target.cmake.in\"\n  \"../doc/CMakeLists.txt\"\n  \"../doc/references.bib\"\n  \"../examples/CMakeLists.txt\"\n  \"../src/CMakeLists.txt\"\n  \"../src/cpp/CMakeLists.txt\"\n  \"../src/cpp/flann/config.h.in\"\n  \"../src/matlab/CMakeLists.txt\"\n  \"../src/python/CMakeLists.txt\"\n  \"../src/python/setup.py.tpl\"\n  )\n\n# The corresponding makefile is:\nset(CMAKE_MAKEFILE_OUTPUTS\n  \"Makefile\"\n  \"CMakeFiles/cmake.check_cache\"\n  )\n\n# Byproducts of CMake generate step:\nset(CMAKE_MAKEFILE_PRODUCTS\n  \"uninstall_target.cmake\"\n  \"CPackConfig.cmake\"\n  \"CPackSourceConfig.cmake\"\n  \"CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"cmake/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"src/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"src/cpp/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"src/matlab/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"src/python/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"examples/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  \"doc/CMakeFiles/CMakeDirectoryInformation.cmake\"\n  )\n\n# Dependency information for all targets:\nset(CMAKE_DEPEND_INFO_FILES\n  \"CMakeFiles/uninstall.dir/DependInfo.cmake\"\n  \"src/cpp/CMakeFiles/flann_cpp.dir/DependInfo.cmake\"\n  \"src/cpp/CMakeFiles/flann_s.dir/DependInfo.cmake\"\n  \"src/cpp/CMakeFiles/flann.dir/DependInfo.cmake\"\n  \"src/cpp/CMakeFiles/flann_cpp_s.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/build_auto.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/linear.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/search_hkmeans.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/search_auto.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/build_kdtree.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/examples.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/build_hkmeans.dir/DependInfo.cmake\"\n  \"examples/CMakeFiles/search_kdtree.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/safepdf.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/doc.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/ps.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/dvi.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/pdf.dir/DependInfo.cmake\"\n  \"doc/CMakeFiles/auxclean.dir/DependInfo.cmake\"\n  )\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/Makefile2",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# The main recursive all target\nall:\n.PHONY : all\n\n# The main recursive preinstall target\npreinstall:\n.PHONY : preinstall\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Target rules for target CMakeFiles/uninstall.dir\n\n# All Build rule for target.\nCMakeFiles/uninstall.dir/all:\n\t$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/depend\n\t$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target uninstall\"\n.PHONY : CMakeFiles/uninstall.dir/all\n\n# Build rule for subdir invocation for target.\nCMakeFiles/uninstall.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n\t$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/uninstall.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : CMakeFiles/uninstall.dir/rule\n\n# Convenience name for target.\nuninstall: CMakeFiles/uninstall.dir/rule\n.PHONY : uninstall\n\n# clean rule for target.\nCMakeFiles/uninstall.dir/clean:\n\t$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/clean\n.PHONY : CMakeFiles/uninstall.dir/clean\n\n# clean rule for target.\nclean: CMakeFiles/uninstall.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Directory level rules for directory cmake\n\n# Convenience name for \"all\" pass in the directory.\ncmake/all:\n.PHONY : cmake/all\n\n# Convenience name for \"clean\" pass in the directory.\ncmake/clean:\n.PHONY : cmake/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\ncmake/preinstall:\n.PHONY : cmake/preinstall\n\n#=============================================================================\n# Directory level rules for directory src\n\n# Convenience name for \"all\" pass in the directory.\nsrc/all: src/cpp/all\nsrc/all: src/matlab/all\nsrc/all: src/python/all\n.PHONY : src/all\n\n# Convenience name for \"clean\" pass in the directory.\nsrc/clean: src/cpp/clean\nsrc/clean: src/matlab/clean\nsrc/clean: src/python/clean\n.PHONY : src/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nsrc/preinstall: src/cpp/preinstall\nsrc/preinstall: src/matlab/preinstall\nsrc/preinstall: src/python/preinstall\n.PHONY : src/preinstall\n\n#=============================================================================\n# Directory level rules for directory src/cpp\n\n# Convenience name for \"all\" pass in the directory.\nsrc/cpp/all: src/cpp/CMakeFiles/flann.dir/all\nsrc/cpp/all: src/cpp/CMakeFiles/flann_cpp.dir/all\nsrc/cpp/all: src/cpp/CMakeFiles/flann_cpp_s.dir/all\nsrc/cpp/all: src/cpp/CMakeFiles/flann_s.dir/all\n.PHONY : src/cpp/all\n\n# Convenience name for \"clean\" pass in the directory.\nsrc/cpp/clean: src/cpp/CMakeFiles/flann.dir/clean\nsrc/cpp/clean: src/cpp/CMakeFiles/flann_cpp.dir/clean\nsrc/cpp/clean: src/cpp/CMakeFiles/flann_cpp_s.dir/clean\nsrc/cpp/clean: src/cpp/CMakeFiles/flann_s.dir/clean\n.PHONY : src/cpp/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nsrc/cpp/preinstall:\n.PHONY : src/cpp/preinstall\n\n#=============================================================================\n# Target rules for target src/cpp/CMakeFiles/flann.dir\n\n# All Build rule for target.\nsrc/cpp/CMakeFiles/flann.dir/all: src/cpp/CMakeFiles/flann_s.dir/all\n\t$(MAKE) -f src/cpp/CMakeFiles/flann.dir/build.make src/cpp/CMakeFiles/flann.dir/depend\n\t$(MAKE) -f src/cpp/CMakeFiles/flann.dir/build.make src/cpp/CMakeFiles/flann.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target flann\"\n.PHONY : src/cpp/CMakeFiles/flann.dir/all\n\n# Include target in all.\nall: src/cpp/CMakeFiles/flann.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/cpp/CMakeFiles/flann.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : src/cpp/CMakeFiles/flann.dir/rule\n\n# Convenience name for target.\nflann: src/cpp/CMakeFiles/flann.dir/rule\n.PHONY : flann\n\n# clean rule for target.\nsrc/cpp/CMakeFiles/flann.dir/clean:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann.dir/build.make src/cpp/CMakeFiles/flann.dir/clean\n.PHONY : src/cpp/CMakeFiles/flann.dir/clean\n\n# clean rule for target.\nclean: src/cpp/CMakeFiles/flann.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/cpp/CMakeFiles/flann_cpp.dir\n\n# All Build rule for target.\nsrc/cpp/CMakeFiles/flann_cpp.dir/all: src/cpp/CMakeFiles/flann_cpp_s.dir/all\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp.dir/build.make src/cpp/CMakeFiles/flann_cpp.dir/depend\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp.dir/build.make src/cpp/CMakeFiles/flann_cpp.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target flann_cpp\"\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/all\n\n# Include target in all.\nall: src/cpp/CMakeFiles/flann_cpp.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/cpp/CMakeFiles/flann_cpp.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_cpp.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/rule\n\n# Convenience name for target.\nflann_cpp: src/cpp/CMakeFiles/flann_cpp.dir/rule\n.PHONY : flann_cpp\n\n# clean rule for target.\nsrc/cpp/CMakeFiles/flann_cpp.dir/clean:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp.dir/build.make src/cpp/CMakeFiles/flann_cpp.dir/clean\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/clean\n\n# clean rule for target.\nclean: src/cpp/CMakeFiles/flann_cpp.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/cpp/CMakeFiles/flann_cpp_s.dir\n\n# All Build rule for target.\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/all:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/depend\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  13\n\t@echo \"Built target flann_cpp_s\"\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/all\n\n# Include target in all.\nall: src/cpp/CMakeFiles/flann_cpp_s.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_cpp_s.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/rule\n\n# Convenience name for target.\nflann_cpp_s: src/cpp/CMakeFiles/flann_cpp_s.dir/rule\n.PHONY : flann_cpp_s\n\n# clean rule for target.\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/clean:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/clean\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/clean\n\n# clean rule for target.\nclean: src/cpp/CMakeFiles/flann_cpp_s.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target src/cpp/CMakeFiles/flann_s.dir\n\n# All Build rule for target.\nsrc/cpp/CMakeFiles/flann_s.dir/all:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/depend\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  14\n\t@echo \"Built target flann_s\"\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/all\n\n# Include target in all.\nall: src/cpp/CMakeFiles/flann_s.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nsrc/cpp/CMakeFiles/flann_s.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_s.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/rule\n\n# Convenience name for target.\nflann_s: src/cpp/CMakeFiles/flann_s.dir/rule\n.PHONY : flann_s\n\n# clean rule for target.\nsrc/cpp/CMakeFiles/flann_s.dir/clean:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/clean\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/clean\n\n# clean rule for target.\nclean: src/cpp/CMakeFiles/flann_s.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Directory level rules for directory src/matlab\n\n# Convenience name for \"all\" pass in the directory.\nsrc/matlab/all:\n.PHONY : src/matlab/all\n\n# Convenience name for \"clean\" pass in the directory.\nsrc/matlab/clean:\n.PHONY : src/matlab/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nsrc/matlab/preinstall:\n.PHONY : src/matlab/preinstall\n\n#=============================================================================\n# Directory level rules for directory src/python\n\n# Convenience name for \"all\" pass in the directory.\nsrc/python/all:\n.PHONY : src/python/all\n\n# Convenience name for \"clean\" pass in the directory.\nsrc/python/clean:\n.PHONY : src/python/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nsrc/python/preinstall:\n.PHONY : src/python/preinstall\n\n#=============================================================================\n# Directory level rules for directory examples\n\n# Convenience name for \"all\" pass in the directory.\nexamples/all: examples/CMakeFiles/build_auto.dir/all\nexamples/all: examples/CMakeFiles/build_hkmeans.dir/all\nexamples/all: examples/CMakeFiles/build_kdtree.dir/all\nexamples/all: examples/CMakeFiles/examples.dir/all\nexamples/all: examples/CMakeFiles/linear.dir/all\nexamples/all: examples/CMakeFiles/search_auto.dir/all\nexamples/all: examples/CMakeFiles/search_hkmeans.dir/all\nexamples/all: examples/CMakeFiles/search_kdtree.dir/all\n.PHONY : examples/all\n\n# Convenience name for \"clean\" pass in the directory.\nexamples/clean: examples/CMakeFiles/build_auto.dir/clean\nexamples/clean: examples/CMakeFiles/build_hkmeans.dir/clean\nexamples/clean: examples/CMakeFiles/build_kdtree.dir/clean\nexamples/clean: examples/CMakeFiles/examples.dir/clean\nexamples/clean: examples/CMakeFiles/linear.dir/clean\nexamples/clean: examples/CMakeFiles/search_auto.dir/clean\nexamples/clean: examples/CMakeFiles/search_hkmeans.dir/clean\nexamples/clean: examples/CMakeFiles/search_kdtree.dir/clean\n.PHONY : examples/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\nexamples/preinstall:\n.PHONY : examples/preinstall\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/build_auto.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/build_auto.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  1\n\t@echo \"Built target build_auto\"\n.PHONY : examples/CMakeFiles/build_auto.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/build_auto.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/build_auto.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_auto.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/build_auto.dir/rule\n\n# Convenience name for target.\nbuild_auto: examples/CMakeFiles/build_auto.dir/rule\n.PHONY : build_auto\n\n# clean rule for target.\nexamples/CMakeFiles/build_auto.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/clean\n.PHONY : examples/CMakeFiles/build_auto.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/build_auto.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/build_hkmeans.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/build_hkmeans.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  2\n\t@echo \"Built target build_hkmeans\"\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/build_hkmeans.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/build_hkmeans.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_hkmeans.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/rule\n\n# Convenience name for target.\nbuild_hkmeans: examples/CMakeFiles/build_hkmeans.dir/rule\n.PHONY : build_hkmeans\n\n# clean rule for target.\nexamples/CMakeFiles/build_hkmeans.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/clean\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/build_hkmeans.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/build_kdtree.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/build_kdtree.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  3\n\t@echo \"Built target build_kdtree\"\n.PHONY : examples/CMakeFiles/build_kdtree.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/build_kdtree.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/build_kdtree.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_kdtree.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/build_kdtree.dir/rule\n\n# Convenience name for target.\nbuild_kdtree: examples/CMakeFiles/build_kdtree.dir/rule\n.PHONY : build_kdtree\n\n# clean rule for target.\nexamples/CMakeFiles/build_kdtree.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/clean\n.PHONY : examples/CMakeFiles/build_kdtree.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/build_kdtree.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/examples.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/build_kdtree.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/build_hkmeans.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/search_hkmeans.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/search_kdtree.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/build_auto.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/search_auto.dir/all\nexamples/CMakeFiles/examples.dir/all: examples/CMakeFiles/linear.dir/all\n\t$(MAKE) -f examples/CMakeFiles/examples.dir/build.make examples/CMakeFiles/examples.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/examples.dir/build.make examples/CMakeFiles/examples.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target examples\"\n.PHONY : examples/CMakeFiles/examples.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/examples.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/examples.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 7\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/examples.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/examples.dir/rule\n\n# Convenience name for target.\nexamples: examples/CMakeFiles/examples.dir/rule\n.PHONY : examples\n\n# clean rule for target.\nexamples/CMakeFiles/examples.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/examples.dir/build.make examples/CMakeFiles/examples.dir/clean\n.PHONY : examples/CMakeFiles/examples.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/examples.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/linear.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/linear.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  15\n\t@echo \"Built target linear\"\n.PHONY : examples/CMakeFiles/linear.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/linear.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/linear.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/linear.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/linear.dir/rule\n\n# Convenience name for target.\nlinear: examples/CMakeFiles/linear.dir/rule\n.PHONY : linear\n\n# clean rule for target.\nexamples/CMakeFiles/linear.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/clean\n.PHONY : examples/CMakeFiles/linear.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/linear.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/search_auto.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/search_auto.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  25\n\t@echo \"Built target search_auto\"\n.PHONY : examples/CMakeFiles/search_auto.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/search_auto.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/search_auto.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_auto.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/search_auto.dir/rule\n\n# Convenience name for target.\nsearch_auto: examples/CMakeFiles/search_auto.dir/rule\n.PHONY : search_auto\n\n# clean rule for target.\nexamples/CMakeFiles/search_auto.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/clean\n.PHONY : examples/CMakeFiles/search_auto.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/search_auto.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/search_hkmeans.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/search_hkmeans.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  26\n\t@echo \"Built target search_hkmeans\"\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/search_hkmeans.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/search_hkmeans.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_hkmeans.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/rule\n\n# Convenience name for target.\nsearch_hkmeans: examples/CMakeFiles/search_hkmeans.dir/rule\n.PHONY : search_hkmeans\n\n# clean rule for target.\nexamples/CMakeFiles/search_hkmeans.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/clean\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/search_hkmeans.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target examples/CMakeFiles/search_kdtree.dir\n\n# All Build rule for target.\nexamples/CMakeFiles/search_kdtree.dir/all:\n\t$(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/depend\n\t$(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  27\n\t@echo \"Built target search_kdtree\"\n.PHONY : examples/CMakeFiles/search_kdtree.dir/all\n\n# Include target in all.\nall: examples/CMakeFiles/search_kdtree.dir/all\n.PHONY : all\n\n# Build rule for subdir invocation for target.\nexamples/CMakeFiles/search_kdtree.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 1\n\t$(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_kdtree.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : examples/CMakeFiles/search_kdtree.dir/rule\n\n# Convenience name for target.\nsearch_kdtree: examples/CMakeFiles/search_kdtree.dir/rule\n.PHONY : search_kdtree\n\n# clean rule for target.\nexamples/CMakeFiles/search_kdtree.dir/clean:\n\t$(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/clean\n.PHONY : examples/CMakeFiles/search_kdtree.dir/clean\n\n# clean rule for target.\nclean: examples/CMakeFiles/search_kdtree.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Directory level rules for directory doc\n\n# Convenience name for \"all\" pass in the directory.\ndoc/all:\n.PHONY : doc/all\n\n# Convenience name for \"clean\" pass in the directory.\ndoc/clean: doc/CMakeFiles/auxclean.dir/clean\ndoc/clean: doc/CMakeFiles/doc.dir/clean\ndoc/clean: doc/CMakeFiles/dvi.dir/clean\ndoc/clean: doc/CMakeFiles/pdf.dir/clean\ndoc/clean: doc/CMakeFiles/ps.dir/clean\ndoc/clean: doc/CMakeFiles/safepdf.dir/clean\n.PHONY : doc/clean\n\n# Convenience name for \"preinstall\" pass in the directory.\ndoc/preinstall:\n.PHONY : doc/preinstall\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/auxclean.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/auxclean.dir/all:\n\t$(MAKE) -f doc/CMakeFiles/auxclean.dir/build.make doc/CMakeFiles/auxclean.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/auxclean.dir/build.make doc/CMakeFiles/auxclean.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target auxclean\"\n.PHONY : doc/CMakeFiles/auxclean.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/auxclean.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/auxclean.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/auxclean.dir/rule\n\n# Convenience name for target.\nauxclean: doc/CMakeFiles/auxclean.dir/rule\n.PHONY : auxclean\n\n# clean rule for target.\ndoc/CMakeFiles/auxclean.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/auxclean.dir/build.make doc/CMakeFiles/auxclean.dir/clean\n.PHONY : doc/CMakeFiles/auxclean.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/auxclean.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/doc.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/doc.dir/all:\n\t$(MAKE) -f doc/CMakeFiles/doc.dir/build.make doc/CMakeFiles/doc.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/doc.dir/build.make doc/CMakeFiles/doc.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  4 5 6 7 8\n\t@echo \"Built target doc\"\n.PHONY : doc/CMakeFiles/doc.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/doc.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 5\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/doc.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/doc.dir/rule\n\n# Convenience name for target.\ndoc: doc/CMakeFiles/doc.dir/rule\n.PHONY : doc\n\n# clean rule for target.\ndoc/CMakeFiles/doc.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/doc.dir/build.make doc/CMakeFiles/doc.dir/clean\n.PHONY : doc/CMakeFiles/doc.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/doc.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/dvi.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/dvi.dir/all:\n\t$(MAKE) -f doc/CMakeFiles/dvi.dir/build.make doc/CMakeFiles/dvi.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/dvi.dir/build.make doc/CMakeFiles/dvi.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  9 10 11 12\n\t@echo \"Built target dvi\"\n.PHONY : doc/CMakeFiles/dvi.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/dvi.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 4\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/dvi.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/dvi.dir/rule\n\n# Convenience name for target.\ndvi: doc/CMakeFiles/dvi.dir/rule\n.PHONY : dvi\n\n# clean rule for target.\ndoc/CMakeFiles/dvi.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/dvi.dir/build.make doc/CMakeFiles/dvi.dir/clean\n.PHONY : doc/CMakeFiles/dvi.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/dvi.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/pdf.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/pdf.dir/all:\n\t$(MAKE) -f doc/CMakeFiles/pdf.dir/build.make doc/CMakeFiles/pdf.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/pdf.dir/build.make doc/CMakeFiles/pdf.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  16 17 18 19\n\t@echo \"Built target pdf\"\n.PHONY : doc/CMakeFiles/pdf.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/pdf.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 4\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/pdf.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/pdf.dir/rule\n\n# Convenience name for target.\npdf: doc/CMakeFiles/pdf.dir/rule\n.PHONY : pdf\n\n# clean rule for target.\ndoc/CMakeFiles/pdf.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/pdf.dir/build.make doc/CMakeFiles/pdf.dir/clean\n.PHONY : doc/CMakeFiles/pdf.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/pdf.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/ps.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/ps.dir/all:\n\t$(MAKE) -f doc/CMakeFiles/ps.dir/build.make doc/CMakeFiles/ps.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/ps.dir/build.make doc/CMakeFiles/ps.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles  20 21 22 23 24\n\t@echo \"Built target ps\"\n.PHONY : doc/CMakeFiles/ps.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/ps.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 5\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/ps.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/ps.dir/rule\n\n# Convenience name for target.\nps: doc/CMakeFiles/ps.dir/rule\n.PHONY : ps\n\n# clean rule for target.\ndoc/CMakeFiles/ps.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/ps.dir/build.make doc/CMakeFiles/ps.dir/clean\n.PHONY : doc/CMakeFiles/ps.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/ps.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Target rules for target doc/CMakeFiles/safepdf.dir\n\n# All Build rule for target.\ndoc/CMakeFiles/safepdf.dir/all: doc/CMakeFiles/ps.dir/all\n\t$(MAKE) -f doc/CMakeFiles/safepdf.dir/build.make doc/CMakeFiles/safepdf.dir/depend\n\t$(MAKE) -f doc/CMakeFiles/safepdf.dir/build.make doc/CMakeFiles/safepdf.dir/build\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles \n\t@echo \"Built target safepdf\"\n.PHONY : doc/CMakeFiles/safepdf.dir/all\n\n# Build rule for subdir invocation for target.\ndoc/CMakeFiles/safepdf.dir/rule: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 5\n\t$(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/safepdf.dir/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : doc/CMakeFiles/safepdf.dir/rule\n\n# Convenience name for target.\nsafepdf: doc/CMakeFiles/safepdf.dir/rule\n.PHONY : safepdf\n\n# clean rule for target.\ndoc/CMakeFiles/safepdf.dir/clean:\n\t$(MAKE) -f doc/CMakeFiles/safepdf.dir/build.make doc/CMakeFiles/safepdf.dir/clean\n.PHONY : doc/CMakeFiles/safepdf.dir/clean\n\n# clean rule for target.\nclean: doc/CMakeFiles/safepdf.dir/clean\n.PHONY : clean\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/TargetDirectories.txt",
    "content": "/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/uninstall.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/linear.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/doc.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/examples.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/ps.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/dvi.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/pdf.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir\n/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/cmake.check_cache",
    "content": "# This file is generated by cmake for dependency checking of the CMakeCache.txt file\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/feature_tests.c",
    "content": "\n  const char features[] = {\"\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404\n\"1\"\n#else\n\"0\"\n#endif\n\"c_function_prototypes\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_restrict\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_static_assert\\n\"\n\"C_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n\"1\"\n#else\n\"0\"\n#endif\n\"c_variadic_macros\\n\"\n\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/feature_tests.cxx",
    "content": "\n  const char features[] = {\"\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_aggregate_default_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alias_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alignas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_alignof\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_attributes\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_attribute_deprecated\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_auto_type\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_binary_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_constexpr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_contextual_conversions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype_auto\\n\"\n\"CXX_FEATURE:\"\n#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_decltype_incomplete_return_types\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_default_function_template_args\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_defaulted_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_defaulted_move_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_delegating_constructors\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_deleted_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_digit_separators\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_enum_forward_declarations\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_explicit_conversions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_extended_friend_declarations\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_extern_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_final\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_func_identifier\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_generalized_initializers\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_generic_lambdas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_inheriting_constructors\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_inline_namespaces\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_lambdas\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_lambda_init_captures\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_local_type_template_args\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_long_long_type\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_noexcept\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_nonstatic_member_init\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_nullptr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_override\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_range_for\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_raw_string_literals\\n\"\n\"CXX_FEATURE:\"\n#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_reference_qualified_functions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_relaxed_constexpr\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_return_type_deduction\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_right_angle_brackets\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_rvalue_references\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_sizeof_member\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_static_assert\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_strong_enums\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_template_template_parameters\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_thread_local\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_trailing_return_types\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_unicode_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_uniform_initialization\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_unrestricted_unions\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_user_literals\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variable_templates\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variadic_macros\\n\"\n\"CXX_FEATURE:\"\n#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))\n\"1\"\n#else\n\"0\"\n#endif\n\"cxx_variadic_templates\\n\"\n\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/progress.marks",
    "content": "9\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/uninstall.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/uninstall.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for uninstall.\n\n# Include the progress variables for this target.\ninclude CMakeFiles/uninstall.dir/progress.make\n\nCMakeFiles/uninstall:\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P /home/yzhang4/HD/release/algorithms/flann/code/build/uninstall_target.cmake\n\nuninstall: CMakeFiles/uninstall\nuninstall: CMakeFiles/uninstall.dir/build.make\n.PHONY : uninstall\n\n# Rule to build all files generated by this target.\nCMakeFiles/uninstall.dir/build: uninstall\n.PHONY : CMakeFiles/uninstall.dir/build\n\nCMakeFiles/uninstall.dir/clean:\n\t$(CMAKE_COMMAND) -P CMakeFiles/uninstall.dir/cmake_clean.cmake\n.PHONY : CMakeFiles/uninstall.dir/clean\n\nCMakeFiles/uninstall.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/uninstall.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : CMakeFiles/uninstall.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/uninstall.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/uninstall\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/uninstall.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/CMakeFiles/uninstall.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/CPackConfig.cmake",
    "content": "# This file will be configured to contain variables for CPack. These variables\n# should be set in the CMake list file of the project before CPack module is\n# included. The list of available CPACK_xxx variables and their associated\n# documentation may be obtained using\n#  cpack --help-variable-list\n#\n# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)\n# and some are specific to a generator\n# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables\n# usually begin with CPACK_<GENNAME>_xxxx.\n\n\nSET(CPACK_BINARY_7Z \"\")\nSET(CPACK_BINARY_BUNDLE \"\")\nSET(CPACK_BINARY_CYGWIN \"\")\nSET(CPACK_BINARY_DEB \"\")\nSET(CPACK_BINARY_DRAGNDROP \"\")\nSET(CPACK_BINARY_IFW \"\")\nSET(CPACK_BINARY_NSIS \"\")\nSET(CPACK_BINARY_OSXX11 \"\")\nSET(CPACK_BINARY_PACKAGEMAKER \"\")\nSET(CPACK_BINARY_RPM \"\")\nSET(CPACK_BINARY_STGZ \"\")\nSET(CPACK_BINARY_TBZ2 \"\")\nSET(CPACK_BINARY_TGZ \"\")\nSET(CPACK_BINARY_TXZ \"\")\nSET(CPACK_BINARY_TZ \"\")\nSET(CPACK_BINARY_WIX \"\")\nSET(CPACK_BINARY_ZIP \"\")\nSET(CPACK_CMAKE_GENERATOR \"Unix Makefiles\")\nSET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN \"TRUE\")\nSET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED \"TRUE\")\nSET(CPACK_GENERATOR \"RPM\")\nSET(CPACK_INSTALL_CMAKE_PROJECTS \"/home/yzhang4/HD/release/algorithms/flann/code/build;flann;ALL;/\")\nSET(CPACK_INSTALL_PREFIX \"/usr/local\")\nSET(CPACK_MODULE_PATH \"/home/yzhang4/HD/release/algorithms/flann/code/cmake\")\nSET(CPACK_MONOLITHIC_INSTALL \"1\")\nSET(CPACK_NSIS_DISPLAY_NAME \"flann 1.8.4\")\nSET(CPACK_NSIS_INSTALLER_ICON_CODE \"\")\nSET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE \"\")\nSET(CPACK_NSIS_INSTALL_ROOT \"$PROGRAMFILES\")\nSET(CPACK_NSIS_PACKAGE_NAME \"flann 1.8.4\")\nSET(CPACK_OUTPUT_CONFIG_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackConfig.cmake\")\nSET(CPACK_PACKAGE_CONTACT \"Marius Muja\")\nSET(CPACK_PACKAGE_DEFAULT_LOCATION \"/\")\nSET(CPACK_PACKAGE_DESCRIPTION_FILE \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericDescription.txt\")\nSET(CPACK_PACKAGE_DESCRIPTION_SUMMARY \"flann built using CMake\")\nSET(CPACK_PACKAGE_FILE_NAME \"flann-1.8.4-Linux\")\nSET(CPACK_PACKAGE_INSTALL_DIRECTORY \"flann 1.8.4\")\nSET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY \"flann 1.8.4\")\nSET(CPACK_PACKAGE_NAME \"flann\")\nSET(CPACK_PACKAGE_RELOCATABLE \"true\")\nSET(CPACK_PACKAGE_VENDOR \"Humanity\")\nSET(CPACK_PACKAGE_VERSION \"1.8.4\")\nSET(CPACK_PACKAGE_VERSION_MAJOR \"1\")\nSET(CPACK_PACKAGE_VERSION_MINOR \"8\")\nSET(CPACK_PACKAGE_VERSION_PATCH \"4\")\nSET(CPACK_PACKAGING_INSTALL_PREFIX \"/usr/local\")\nSET(CPACK_RESOURCE_FILE_LICENSE \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericLicense.txt\")\nSET(CPACK_RESOURCE_FILE_README \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericDescription.txt\")\nSET(CPACK_RESOURCE_FILE_WELCOME \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericWelcome.txt\")\nSET(CPACK_SET_DESTDIR \"ON\")\nSET(CPACK_SOURCE_7Z \"\")\nSET(CPACK_SOURCE_CYGWIN \"\")\nSET(CPACK_SOURCE_GENERATOR \"TBZ2;TGZ;TXZ;TZ\")\nSET(CPACK_SOURCE_OUTPUT_CONFIG_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\")\nSET(CPACK_SOURCE_TBZ2 \"ON\")\nSET(CPACK_SOURCE_TGZ \"ON\")\nSET(CPACK_SOURCE_TXZ \"ON\")\nSET(CPACK_SOURCE_TZ \"ON\")\nSET(CPACK_SOURCE_ZIP \"OFF\")\nSET(CPACK_SYSTEM_NAME \"Linux\")\nSET(CPACK_TOPLEVEL_TAG \"Linux\")\nSET(CPACK_WIX_SIZEOF_VOID_P \"8\")\n\nif(NOT CPACK_PROPERTIES_FILE)\n  set(CPACK_PROPERTIES_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackProperties.cmake\")\nendif()\n\nif(EXISTS ${CPACK_PROPERTIES_FILE})\n  include(${CPACK_PROPERTIES_FILE})\nendif()\n"
  },
  {
    "path": "algorithms/flann/code/build/CPackSourceConfig.cmake",
    "content": "# This file will be configured to contain variables for CPack. These variables\n# should be set in the CMake list file of the project before CPack module is\n# included. The list of available CPACK_xxx variables and their associated\n# documentation may be obtained using\n#  cpack --help-variable-list\n#\n# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)\n# and some are specific to a generator\n# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables\n# usually begin with CPACK_<GENNAME>_xxxx.\n\n\nSET(CPACK_BINARY_7Z \"\")\nSET(CPACK_BINARY_BUNDLE \"\")\nSET(CPACK_BINARY_CYGWIN \"\")\nSET(CPACK_BINARY_DEB \"\")\nSET(CPACK_BINARY_DRAGNDROP \"\")\nSET(CPACK_BINARY_IFW \"\")\nSET(CPACK_BINARY_NSIS \"\")\nSET(CPACK_BINARY_OSXX11 \"\")\nSET(CPACK_BINARY_PACKAGEMAKER \"\")\nSET(CPACK_BINARY_RPM \"\")\nSET(CPACK_BINARY_STGZ \"\")\nSET(CPACK_BINARY_TBZ2 \"\")\nSET(CPACK_BINARY_TGZ \"\")\nSET(CPACK_BINARY_TXZ \"\")\nSET(CPACK_BINARY_TZ \"\")\nSET(CPACK_BINARY_WIX \"\")\nSET(CPACK_BINARY_ZIP \"\")\nSET(CPACK_CMAKE_GENERATOR \"Unix Makefiles\")\nSET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN \"TRUE\")\nSET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED \"TRUE\")\nSET(CPACK_GENERATOR \"TBZ2;TGZ;TXZ;TZ\")\nSET(CPACK_IGNORE_FILES \"/CVS/;/\\\\.svn/;/\\\\.bzr/;/\\\\.hg/;/\\\\.git/;\\\\.swp$;\\\\.#;/#\")\nSET(CPACK_INSTALLED_DIRECTORIES \"/home/yzhang4/HD/release/algorithms/flann/code;/\")\nSET(CPACK_INSTALL_CMAKE_PROJECTS \"\")\nSET(CPACK_INSTALL_PREFIX \"/usr/local\")\nSET(CPACK_MODULE_PATH \"/home/yzhang4/HD/release/algorithms/flann/code/cmake\")\nSET(CPACK_MONOLITHIC_INSTALL \"1\")\nSET(CPACK_NSIS_DISPLAY_NAME \"flann 1.8.4\")\nSET(CPACK_NSIS_INSTALLER_ICON_CODE \"\")\nSET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE \"\")\nSET(CPACK_NSIS_INSTALL_ROOT \"$PROGRAMFILES\")\nSET(CPACK_NSIS_PACKAGE_NAME \"flann 1.8.4\")\nSET(CPACK_OUTPUT_CONFIG_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackConfig.cmake\")\nSET(CPACK_PACKAGE_CONTACT \"Marius Muja\")\nSET(CPACK_PACKAGE_DEFAULT_LOCATION \"/\")\nSET(CPACK_PACKAGE_DESCRIPTION_FILE \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericDescription.txt\")\nSET(CPACK_PACKAGE_DESCRIPTION_SUMMARY \"flann built using CMake\")\nSET(CPACK_PACKAGE_FILE_NAME \"flann-1.8.4-Source\")\nSET(CPACK_PACKAGE_INSTALL_DIRECTORY \"flann 1.8.4\")\nSET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY \"flann 1.8.4\")\nSET(CPACK_PACKAGE_NAME \"flann\")\nSET(CPACK_PACKAGE_RELOCATABLE \"true\")\nSET(CPACK_PACKAGE_VENDOR \"Humanity\")\nSET(CPACK_PACKAGE_VERSION \"1.8.4\")\nSET(CPACK_PACKAGE_VERSION_MAJOR \"1\")\nSET(CPACK_PACKAGE_VERSION_MINOR \"8\")\nSET(CPACK_PACKAGE_VERSION_PATCH \"4\")\nSET(CPACK_PACKAGING_INSTALL_PREFIX \"/usr/local\")\nSET(CPACK_RESOURCE_FILE_LICENSE \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericLicense.txt\")\nSET(CPACK_RESOURCE_FILE_README \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericDescription.txt\")\nSET(CPACK_RESOURCE_FILE_WELCOME \"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/share/cmake-3.2/Templates/CPack.GenericWelcome.txt\")\nSET(CPACK_SET_DESTDIR \"ON\")\nSET(CPACK_SOURCE_7Z \"\")\nSET(CPACK_SOURCE_CYGWIN \"\")\nSET(CPACK_SOURCE_GENERATOR \"TBZ2;TGZ;TXZ;TZ\")\nSET(CPACK_SOURCE_IGNORE_FILES \"/CVS/;/\\\\.svn/;/\\\\.bzr/;/\\\\.hg/;/\\\\.git/;\\\\.swp$;\\\\.#;/#\")\nSET(CPACK_SOURCE_INSTALLED_DIRECTORIES \"/home/yzhang4/HD/release/algorithms/flann/code;/\")\nSET(CPACK_SOURCE_OUTPUT_CONFIG_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\")\nSET(CPACK_SOURCE_PACKAGE_FILE_NAME \"flann-1.8.4-Source\")\nSET(CPACK_SOURCE_TBZ2 \"ON\")\nSET(CPACK_SOURCE_TGZ \"ON\")\nSET(CPACK_SOURCE_TOPLEVEL_TAG \"Linux-Source\")\nSET(CPACK_SOURCE_TXZ \"ON\")\nSET(CPACK_SOURCE_TZ \"ON\")\nSET(CPACK_SOURCE_ZIP \"OFF\")\nSET(CPACK_STRIP_FILES \"\")\nSET(CPACK_SYSTEM_NAME \"Linux\")\nSET(CPACK_TOPLEVEL_TAG \"Linux-Source\")\nSET(CPACK_WIX_SIZEOF_VOID_P \"8\")\n\nif(NOT CPACK_PROPERTIES_FILE)\n  set(CPACK_PROPERTIES_FILE \"/home/yzhang4/HD/release/algorithms/flann/code/build/CPackProperties.cmake\")\nendif()\n\nif(EXISTS ${CPACK_PROPERTIES_FILE})\n  include(${CPACK_PROPERTIES_FILE})\nendif()\n"
  },
  {
    "path": "algorithms/flann/code/build/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = cmake \n\n# The command to remove a file.\nRM = cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = \"../code\"\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\nCMAKE_BINARY_DIR = \"../code/build\" \n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles/progress.marks\n\t$(MAKE) -f CMakeFiles/Makefile2 all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\t$(MAKE) -f CMakeFiles/Makefile2 clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\t$(MAKE) -f CMakeFiles/Makefile2 preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\t$(MAKE) -f CMakeFiles/Makefile2 preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n#=============================================================================\n# Target rules for targets named uninstall\n\n# Build rule for target.\nuninstall: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 uninstall\n.PHONY : uninstall\n\n# fast build rule for target.\nuninstall/fast:\n\t$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build\n.PHONY : uninstall/fast\n\n#=============================================================================\n# Target rules for targets named flann\n\n# Build rule for target.\nflann: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 flann\n.PHONY : flann\n\n# fast build rule for target.\nflann/fast:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann.dir/build.make src/cpp/CMakeFiles/flann.dir/build\n.PHONY : flann/fast\n\n#=============================================================================\n# Target rules for targets named flann_cpp\n\n# Build rule for target.\nflann_cpp: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 flann_cpp\n.PHONY : flann_cpp\n\n# fast build rule for target.\nflann_cpp/fast:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp.dir/build.make src/cpp/CMakeFiles/flann_cpp.dir/build\n.PHONY : flann_cpp/fast\n\n#=============================================================================\n# Target rules for targets named flann_cpp_s\n\n# Build rule for target.\nflann_cpp_s: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 flann_cpp_s\n.PHONY : flann_cpp_s\n\n# fast build rule for target.\nflann_cpp_s/fast:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/build\n.PHONY : flann_cpp_s/fast\n\n#=============================================================================\n# Target rules for targets named flann_s\n\n# Build rule for target.\nflann_s: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 flann_s\n.PHONY : flann_s\n\n# fast build rule for target.\nflann_s/fast:\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/build\n.PHONY : flann_s/fast\n\n#=============================================================================\n# Target rules for targets named build_auto\n\n# Build rule for target.\nbuild_auto: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 build_auto\n.PHONY : build_auto\n\n# fast build rule for target.\nbuild_auto/fast:\n\t$(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build\n.PHONY : build_auto/fast\n\n#=============================================================================\n# Target rules for targets named build_hkmeans\n\n# Build rule for target.\nbuild_hkmeans: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 build_hkmeans\n.PHONY : build_hkmeans\n\n# fast build rule for target.\nbuild_hkmeans/fast:\n\t$(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build\n.PHONY : build_hkmeans/fast\n\n#=============================================================================\n# Target rules for targets named build_kdtree\n\n# Build rule for target.\nbuild_kdtree: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 build_kdtree\n.PHONY : build_kdtree\n\n# fast build rule for target.\nbuild_kdtree/fast:\n\t$(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build\n.PHONY : build_kdtree/fast\n\n#=============================================================================\n# Target rules for targets named examples\n\n# Build rule for target.\nexamples: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 examples\n.PHONY : examples\n\n# fast build rule for target.\nexamples/fast:\n\t$(MAKE) -f examples/CMakeFiles/examples.dir/build.make examples/CMakeFiles/examples.dir/build\n.PHONY : examples/fast\n\n#=============================================================================\n# Target rules for targets named linear\n\n# Build rule for target.\nlinear: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 linear\n.PHONY : linear\n\n# fast build rule for target.\nlinear/fast:\n\t$(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/build\n.PHONY : linear/fast\n\n#=============================================================================\n# Target rules for targets named search_auto\n\n# Build rule for target.\nsearch_auto: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 search_auto\n.PHONY : search_auto\n\n# fast build rule for target.\nsearch_auto/fast:\n\t$(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/build\n.PHONY : search_auto/fast\n\n#=============================================================================\n# Target rules for targets named search_hkmeans\n\n# Build rule for target.\nsearch_hkmeans: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 search_hkmeans\n.PHONY : search_hkmeans\n\n# fast build rule for target.\nsearch_hkmeans/fast:\n\t$(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/build\n.PHONY : search_hkmeans/fast\n\n#=============================================================================\n# Target rules for targets named search_kdtree\n\n# Build rule for target.\nsearch_kdtree: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 search_kdtree\n.PHONY : search_kdtree\n\n# fast build rule for target.\nsearch_kdtree/fast:\n\t$(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/build\n.PHONY : search_kdtree/fast\n\n#=============================================================================\n# Target rules for targets named auxclean\n\n# Build rule for target.\nauxclean: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 auxclean\n.PHONY : auxclean\n\n# fast build rule for target.\nauxclean/fast:\n\t$(MAKE) -f doc/CMakeFiles/auxclean.dir/build.make doc/CMakeFiles/auxclean.dir/build\n.PHONY : auxclean/fast\n\n#=============================================================================\n# Target rules for targets named doc\n\n# Build rule for target.\ndoc: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 doc\n.PHONY : doc\n\n# fast build rule for target.\ndoc/fast:\n\t$(MAKE) -f doc/CMakeFiles/doc.dir/build.make doc/CMakeFiles/doc.dir/build\n.PHONY : doc/fast\n\n#=============================================================================\n# Target rules for targets named dvi\n\n# Build rule for target.\ndvi: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 dvi\n.PHONY : dvi\n\n# fast build rule for target.\ndvi/fast:\n\t$(MAKE) -f doc/CMakeFiles/dvi.dir/build.make doc/CMakeFiles/dvi.dir/build\n.PHONY : dvi/fast\n\n#=============================================================================\n# Target rules for targets named pdf\n\n# Build rule for target.\npdf: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 pdf\n.PHONY : pdf\n\n# fast build rule for target.\npdf/fast:\n\t$(MAKE) -f doc/CMakeFiles/pdf.dir/build.make doc/CMakeFiles/pdf.dir/build\n.PHONY : pdf/fast\n\n#=============================================================================\n# Target rules for targets named ps\n\n# Build rule for target.\nps: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 ps\n.PHONY : ps\n\n# fast build rule for target.\nps/fast:\n\t$(MAKE) -f doc/CMakeFiles/ps.dir/build.make doc/CMakeFiles/ps.dir/build\n.PHONY : ps/fast\n\n#=============================================================================\n# Target rules for targets named safepdf\n\n# Build rule for target.\nsafepdf: cmake_check_build_system\n\t$(MAKE) -f CMakeFiles/Makefile2 safepdf\n.PHONY : safepdf\n\n# fast build rule for target.\nsafepdf/fast:\n\t$(MAKE) -f doc/CMakeFiles/safepdf.dir/build.make doc/CMakeFiles/safepdf.dir/build\n.PHONY : safepdf/fast\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... uninstall\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n\t@echo \"... flann_cpp\"\n\t@echo \"... flann_s\"\n\t@echo \"... flann\"\n\t@echo \"... flann_cpp_s\"\n\t@echo \"... build_auto\"\n\t@echo \"... linear\"\n\t@echo \"... search_hkmeans\"\n\t@echo \"... search_auto\"\n\t@echo \"... build_kdtree\"\n\t@echo \"... examples\"\n\t@echo \"... build_hkmeans\"\n\t@echo \"... search_kdtree\"\n\t@echo \"... safepdf\"\n\t@echo \"... doc\"\n\t@echo \"... ps\"\n\t@echo \"... dvi\"\n\t@echo \"... pdf\"\n\t@echo \"... auxclean\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\t$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake/CMakeFiles/progress.marks",
    "content": "0\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/cmake/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 cmake/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 cmake/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 cmake/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 cmake/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/cmake\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"pkgconfig\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib/pkgconfig\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/cmake/flann.pc\")\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake/flann.pc",
    "content": "# This file was generated by CMake for flann\nprefix=/usr/local\nexec_prefix=${prefix}\nlibdir=${prefix}/lib\nincludedir=${prefix}/include\n\nName: flann\nDescription: Fast Library for Approximate Nearest Neighbors\nVersion: 1.8.4\nRequires: \nLibs: -L${libdir} -lflann_cpp\nCflags: -I${includedir}\n\n"
  },
  {
    "path": "algorithms/flann/code/build/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_LOCAL_ONLY)\n  # Include the install script for each subdirectory.\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/cmake/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/doc/cmake_install.cmake\")\n\nendif()\n\nif(CMAKE_INSTALL_COMPONENT)\n  set(CMAKE_INSTALL_MANIFEST \"install_manifest_${CMAKE_INSTALL_COMPONENT}.txt\")\nelse()\n  set(CMAKE_INSTALL_MANIFEST \"install_manifest.txt\")\nendif()\n\nstring(REPLACE \";\" \"\\n\" CMAKE_INSTALL_MANIFEST_CONTENT\n       \"${CMAKE_INSTALL_MANIFEST_FILES}\")\nfile(WRITE \"/home/yzhang4/HD/release/algorithms/flann/code/build/${CMAKE_INSTALL_MANIFEST}\"\n     \"${CMAKE_INSTALL_MANIFEST_CONTENT}\")\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for auxclean.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/auxclean.dir/progress.make\n\ndoc/CMakeFiles/auxclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.aux /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.idx /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.ind\n\nauxclean: doc/CMakeFiles/auxclean\nauxclean: doc/CMakeFiles/auxclean.dir/build.make\n.PHONY : auxclean\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/auxclean.dir/build: auxclean\n.PHONY : doc/CMakeFiles/auxclean.dir/build\n\ndoc/CMakeFiles/auxclean.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/auxclean.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/auxclean.dir/clean\n\ndoc/CMakeFiles/auxclean.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/auxclean.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/auxclean\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/auxclean.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/auxclean.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/doc.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/doc.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for doc.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/doc.dir/progress.make\n\ndoc/CMakeFiles/doc: ../doc/manual.pdf\n\n../doc/manual.pdf: doc/manual.pdf\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating ../../doc/manual.pdf\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.pdf /home/yzhang4/HD/release/algorithms/flann/code/doc/manual.pdf\n\ndoc/manual.pdf: doc/images/cmake-gui.png\ndoc/manual.pdf: doc/manual.tex\ndoc/manual.pdf: doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.pdf\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/bibtex manual\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\ndoc/images/cmake-gui.png: ../doc/images/cmake-gui.png\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating images/cmake-gui.png\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/images/cmake-gui.png /home/yzhang4/HD/release/algorithms/flann/code/build/doc/images/cmake-gui.png\n\ndoc/manual.tex: ../doc/manual.tex\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.tex\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/manual.tex /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.tex\n\ndoc/references.bib: ../doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_5)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating references.bib\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/references.bib /home/yzhang4/HD/release/algorithms/flann/code/build/doc/references.bib\n\ndoc: doc/CMakeFiles/doc\ndoc: ../doc/manual.pdf\ndoc: doc/manual.pdf\ndoc: doc/images/cmake-gui.png\ndoc: doc/manual.tex\ndoc: doc/references.bib\ndoc: doc/CMakeFiles/doc.dir/build.make\n.PHONY : doc\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/doc.dir/build: doc\n.PHONY : doc/CMakeFiles/doc.dir/build\n\ndoc/CMakeFiles/doc.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/doc.dir/clean\n\ndoc/CMakeFiles/doc.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/doc.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/doc.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/doc.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/doc\"\n  \"../../doc/manual.pdf\"\n  \"manual.pdf\"\n  \"images/cmake-gui.png\"\n  \"manual.tex\"\n  \"references.bib\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/doc.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/doc.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 4\nCMAKE_PROGRESS_2 = 5\nCMAKE_PROGRESS_3 = 6\nCMAKE_PROGRESS_4 = 7\nCMAKE_PROGRESS_5 = 8\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/dvi.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/dvi.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for dvi.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/dvi.dir/progress.make\n\ndoc/CMakeFiles/dvi: doc/manual.dvi\n\ndoc/manual.dvi: doc/images/cmake-gui.eps\ndoc/manual.dvi: doc/manual.tex\ndoc/manual.dvi: doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.dvi\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/bibtex manual\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\ndoc/images/cmake-gui.eps: ../doc/images/cmake-gui.png\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating images/cmake-gui.eps\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /usr/bin/convert /home/yzhang4/HD/release/algorithms/flann/code/doc/images/cmake-gui.png /home/yzhang4/HD/release/algorithms/flann/code/build/doc/images/cmake-gui.eps\n\ndoc/manual.tex: ../doc/manual.tex\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.tex\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/manual.tex /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.tex\n\ndoc/references.bib: ../doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating references.bib\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/references.bib /home/yzhang4/HD/release/algorithms/flann/code/build/doc/references.bib\n\ndvi: doc/CMakeFiles/dvi\ndvi: doc/manual.dvi\ndvi: doc/images/cmake-gui.eps\ndvi: doc/manual.tex\ndvi: doc/references.bib\ndvi: doc/CMakeFiles/dvi.dir/build.make\n.PHONY : dvi\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/dvi.dir/build: dvi\n.PHONY : doc/CMakeFiles/dvi.dir/build\n\ndoc/CMakeFiles/dvi.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/dvi.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/dvi.dir/clean\n\ndoc/CMakeFiles/dvi.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/dvi.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/dvi.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/dvi.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/dvi\"\n  \"manual.dvi\"\n  \"images/cmake-gui.eps\"\n  \"manual.tex\"\n  \"references.bib\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/dvi.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/dvi.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 9\nCMAKE_PROGRESS_2 = 10\nCMAKE_PROGRESS_3 = 11\nCMAKE_PROGRESS_4 = 12\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/pdf.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/pdf.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for pdf.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/pdf.dir/progress.make\n\ndoc/CMakeFiles/pdf: doc/manual.pdf\n\ndoc/manual.pdf: doc/images/cmake-gui.png\ndoc/manual.pdf: doc/manual.tex\ndoc/manual.pdf: doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.pdf\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/bibtex manual\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/pdflatex -interaction=batchmode manual.tex\n\ndoc/images/cmake-gui.png: ../doc/images/cmake-gui.png\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating images/cmake-gui.png\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/images/cmake-gui.png /home/yzhang4/HD/release/algorithms/flann/code/build/doc/images/cmake-gui.png\n\ndoc/manual.tex: ../doc/manual.tex\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.tex\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/manual.tex /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.tex\n\ndoc/references.bib: ../doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating references.bib\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/references.bib /home/yzhang4/HD/release/algorithms/flann/code/build/doc/references.bib\n\npdf: doc/CMakeFiles/pdf\npdf: doc/manual.pdf\npdf: doc/images/cmake-gui.png\npdf: doc/manual.tex\npdf: doc/references.bib\npdf: doc/CMakeFiles/pdf.dir/build.make\n.PHONY : pdf\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/pdf.dir/build: pdf\n.PHONY : doc/CMakeFiles/pdf.dir/build\n\ndoc/CMakeFiles/pdf.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/pdf.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/pdf.dir/clean\n\ndoc/CMakeFiles/pdf.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/pdf.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/pdf.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/pdf.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/pdf\"\n  \"manual.pdf\"\n  \"images/cmake-gui.png\"\n  \"manual.tex\"\n  \"references.bib\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/pdf.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/pdf.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 16\nCMAKE_PROGRESS_2 = 17\nCMAKE_PROGRESS_3 = 18\nCMAKE_PROGRESS_4 = 19\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/progress.marks",
    "content": "0\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/ps.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/ps.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for ps.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/ps.dir/progress.make\n\ndoc/CMakeFiles/ps: doc/manual.ps\n\ndoc/manual.ps: doc/manual.dvi\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.ps\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/dvips -Ppdf -G0 -t letter -o manual.ps manual.dvi\n\ndoc/manual.dvi: doc/images/cmake-gui.eps\ndoc/manual.dvi: doc/manual.tex\ndoc/manual.dvi: doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_2)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.dvi\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/bibtex manual\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/latex -interaction=batchmode manual.tex\n\ndoc/images/cmake-gui.eps: ../doc/images/cmake-gui.png\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_3)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating images/cmake-gui.eps\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /usr/bin/convert /home/yzhang4/HD/release/algorithms/flann/code/doc/images/cmake-gui.png /home/yzhang4/HD/release/algorithms/flann/code/build/doc/images/cmake-gui.eps\n\ndoc/manual.tex: ../doc/manual.tex\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_4)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating manual.tex\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/manual.tex /home/yzhang4/HD/release/algorithms/flann/code/build/doc/manual.tex\n\ndoc/references.bib: ../doc/references.bib\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_5)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold \"Generating references.bib\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E copy /home/yzhang4/HD/release/algorithms/flann/code/doc/references.bib /home/yzhang4/HD/release/algorithms/flann/code/build/doc/references.bib\n\nps: doc/CMakeFiles/ps\nps: doc/manual.ps\nps: doc/manual.dvi\nps: doc/images/cmake-gui.eps\nps: doc/manual.tex\nps: doc/references.bib\nps: doc/CMakeFiles/ps.dir/build.make\n.PHONY : ps\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/ps.dir/build: ps\n.PHONY : doc/CMakeFiles/ps.dir/build\n\ndoc/CMakeFiles/ps.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/ps.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/ps.dir/clean\n\ndoc/CMakeFiles/ps.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/ps.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/ps.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/ps.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/ps\"\n  \"manual.ps\"\n  \"manual.dvi\"\n  \"images/cmake-gui.eps\"\n  \"manual.tex\"\n  \"references.bib\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/ps.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/ps.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 20\nCMAKE_PROGRESS_2 = 21\nCMAKE_PROGRESS_3 = 22\nCMAKE_PROGRESS_4 = 23\nCMAKE_PROGRESS_5 = 24\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for safepdf.\n\n# Include the progress variables for this target.\ninclude doc/CMakeFiles/safepdf.dir/progress.make\n\ndoc/CMakeFiles/safepdf:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E chdir /home/yzhang4/HD/release/algorithms/flann/code/build/doc /usr/bin/ps2pdf14 -dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode manual.ps manual.pdf\n\nsafepdf: doc/CMakeFiles/safepdf\nsafepdf: doc/CMakeFiles/safepdf.dir/build.make\n.PHONY : safepdf\n\n# Rule to build all files generated by this target.\ndoc/CMakeFiles/safepdf.dir/build: safepdf\n.PHONY : doc/CMakeFiles/safepdf.dir/build\n\ndoc/CMakeFiles/safepdf.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/doc && $(CMAKE_COMMAND) -P CMakeFiles/safepdf.dir/cmake_clean.cmake\n.PHONY : doc/CMakeFiles/safepdf.dir/clean\n\ndoc/CMakeFiles/safepdf.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/doc /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/doc /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : doc/CMakeFiles/safepdf.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/safepdf\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/safepdf.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/CMakeFiles/safepdf.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/doc/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\ndoc/CMakeFiles/auxclean.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/auxclean.dir/rule\n.PHONY : doc/CMakeFiles/auxclean.dir/rule\n\n# Convenience name for target.\nauxclean: doc/CMakeFiles/auxclean.dir/rule\n.PHONY : auxclean\n\n# fast build rule for target.\nauxclean/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/auxclean.dir/build.make doc/CMakeFiles/auxclean.dir/build\n.PHONY : auxclean/fast\n\n# Convenience name for target.\ndoc/CMakeFiles/doc.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/doc.dir/rule\n.PHONY : doc/CMakeFiles/doc.dir/rule\n\n# Convenience name for target.\ndoc: doc/CMakeFiles/doc.dir/rule\n.PHONY : doc\n\n# fast build rule for target.\ndoc/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/doc.dir/build.make doc/CMakeFiles/doc.dir/build\n.PHONY : doc/fast\n\n# Convenience name for target.\ndoc/CMakeFiles/dvi.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/dvi.dir/rule\n.PHONY : doc/CMakeFiles/dvi.dir/rule\n\n# Convenience name for target.\ndvi: doc/CMakeFiles/dvi.dir/rule\n.PHONY : dvi\n\n# fast build rule for target.\ndvi/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/dvi.dir/build.make doc/CMakeFiles/dvi.dir/build\n.PHONY : dvi/fast\n\n# Convenience name for target.\ndoc/CMakeFiles/pdf.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/pdf.dir/rule\n.PHONY : doc/CMakeFiles/pdf.dir/rule\n\n# Convenience name for target.\npdf: doc/CMakeFiles/pdf.dir/rule\n.PHONY : pdf\n\n# fast build rule for target.\npdf/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/pdf.dir/build.make doc/CMakeFiles/pdf.dir/build\n.PHONY : pdf/fast\n\n# Convenience name for target.\ndoc/CMakeFiles/ps.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/ps.dir/rule\n.PHONY : doc/CMakeFiles/ps.dir/rule\n\n# Convenience name for target.\nps: doc/CMakeFiles/ps.dir/rule\n.PHONY : ps\n\n# fast build rule for target.\nps/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/ps.dir/build.make doc/CMakeFiles/ps.dir/build\n.PHONY : ps/fast\n\n# Convenience name for target.\ndoc/CMakeFiles/safepdf.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 doc/CMakeFiles/safepdf.dir/rule\n.PHONY : doc/CMakeFiles/safepdf.dir/rule\n\n# Convenience name for target.\nsafepdf: doc/CMakeFiles/safepdf.dir/rule\n.PHONY : safepdf\n\n# fast build rule for target.\nsafepdf/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f doc/CMakeFiles/safepdf.dir/build.make doc/CMakeFiles/safepdf.dir/build\n.PHONY : safepdf/fast\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... safepdf\"\n\t@echo \"... install\"\n\t@echo \"... doc\"\n\t@echo \"... ps\"\n\t@echo \"... list_install_components\"\n\t@echo \"... dvi\"\n\t@echo \"... package\"\n\t@echo \"... pdf\"\n\t@echo \"... auxclean\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/doc\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/share/doc/flann\" TYPE FILE OPTIONAL FILES \"/home/yzhang4/HD/release/algorithms/flann/code/doc/manual.pdf\")\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/doc/references.bib",
    "content": "@inproceedings{arthur_kmeanspp_2007,\n    title = {k-means++: the advantages of careful seeding},\n    booktitle = {Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms},\n    publisher = {Society for Industrial and Applied Mathematics Philadelphia, PA, USA},\n    author = {D. Arthur and S. Vassilvitskii},\n    year = {2007},\n    pages = {1027--1035}\n},\n\n\n\n@inproceedings{winder_learning_2007,\n\ttitle = {Learning Local Image Descriptors},\n\tdoi = {10.1109/CVPR.2007.382971},\n\tabstract = {In this paper we study interest point descriptors for image matching and 3D reconstruction. We examine the building blocks of descriptor algorithms and evaluate numerous combinations of components. Various published descriptors such as SIFT, GLOH, and Spin images can be cast into our framework. For each candidate algorithm we learn good choices for parameters using a training set consisting of patches from a multi-image 3D reconstruction where accurate ground-truth matches are known. The best descriptors were those with log polar histogramming regions and feature vectors constructed from rectified outputs of steerable quadrature filters. At a 95\\% detection rate these gave one third of the incorrect matches produced by SIFT.},\n\tbooktitle = {CVPR},\n\tauthor = {S.A.J. Winder and M. Brown},\n\tyear = {2007},\n\tkeywords = {3D image reconstruction,feature vectors,GLOH images,image reconstruction,local image descriptors,log polar histogramming,SIFT images,Spin images,steerable quadrature filters,vectors},\n\tpages = {1-8}\n},\n\n@article{arya_optimal_1998,\n\ttitle = {An optimal algorithm for approximate nearest neighbor searching in fixed dimensions},\n\tvolume = {45},\n\turl = {citeseer.ist.psu.edu/article/arya94optimal.html},\n\tjournal = {Journal of the ACM},\n\tauthor = {Sunil Arya and David M. Mount and Nathan S. Netanyahu and Ruth Silverman and Angela Y. Wu},\n\tyear = {1998},\n\tpages = {891-923}\n},\n\n@article{lowe_sift_2004,\n\ttitle = {Distinctive image features from scale-invariant keypoints},\n\tvolume = {60},\n\tjournal = {Int. Journal of Computer Vision},\n\tauthor = {David G. Lowe},\n\tyear = {2004},\n\tpages = {91-110}\n},\n\n@inproceedings{liu_efficient_2003,\n\ttitle = {Efficient Exact k-NN and Nonparametric Classification in High Dimensions},\n\tbooktitle = {Neural Information Processing Systems},\n\tauthor = {T. Liu and A. W. Moore and A. Gray},\n\tyear = {2003}\n},\n\n@inproceedings{nister_scalable_2006,\n\ttitle = {Scalable Recognition with a Vocabulary Tree},\n\tisbn = {0-7695-2597-0},\n\tdoi = {http://dx.doi.org/10.1109/CVPR.2006.264},\n\tbooktitle = {CVPR},\n\tauthor = {David Nister and Henrik Stewenius},\n\tyear = {2006},\n\tpages = {2161-2168}\n},\n\n@inproceedings{beis_shape_1997,\n\ttitle = {Shape indexing using approximate nearest-neighbor search in high dimensional spaces},\n\turl = {citeseer.ist.psu.edu/beis97shape.html},\n\tbooktitle = {CVPR},\n\tauthor = {Jeffrey S. Beis and David G. Lowe},\n\tyear = {1997},\n\tpages = {1000-1006}\n},\n\n@inproceedings{leibe_efficient_2006,\n\ttitle = {Efficient Clustering and Matching for Object Class Recognition},\n\turl = {http://www.mis.informatik.tu-darmstadt.de/Publications/leibe-efficientclustering-bmvc06.pdf},\n\tabstract = {In this paper we address the problem of building object class representations based on local features and fast matching in a large database. We propose an efficient algorithm for hierarchical agglomerative clustering. We examine different agglomerative and partitional clustering strategies and compare the quality of obtained clusters. Our combination of partitional-agglomerative clustering gives significant improvement in terms of efficiency while maintaining the same quality of clusters. We also propose a method for building data structures for fast matching in high dimensional feature spaces. These improvements allow to deal with large sets of training data typically used in recognition of multiple object classes.},\n    booktitle = {BMVC},\n\tauthor = {B. Leibe and K. Mikolajczyk and B. Schiele},\n\tyear = {2006}\n},\n\n@inproceedings{schindler_city-scale_2007,\n\ttitle = {City-Scale Location Recognition},\n\tdoi = {10.1109/CVPR.2007.383150},\n\tabstract = {We look at the problem of location recognition in a large image dataset using a vocabulary tree. This entails finding the location of a query image in a large dataset containing 3times104 streetside images of a city. We investigate how the traditional invariant feature matching approach falls down as the size of the database grows. In particular we show that by carefully selecting the vocabulary using the most informative features, retrieval performance is significantly improved, allowing us to increase the number of database images by a factor of 10. We also introduce a generalization of the traditional vocabulary tree search algorithm which improves performance by effectively increasing the branching factor of a fixed vocabulary tree.},\n    booktitle = {CVPR},\n\tjournal = {Computer Vision and Pattern Recognition, 2007. CVPR '07. IEEE Conference on},\n\tauthor = {G. Schindler and M. Brown and R. Szeliski},\n\tyear = {2007},\n    keywords = {feature matching,image matching,image retrieval,query image,trees (mathematics)city-scale location recognition,vocabulary tree},\n\tpages = {1-7}\n},\n\n@article{freidman_algorithm_1977,\n\ttitle = {An Algorithm for Finding Best Matches in Logarithmic Expected Time},\n\tvolume = {3},\n\tissn = {0098-3500},\n\tdoi = {http://doi.acm.org/10.1145/355744.355745},\n\tjournal = {ACM Trans. Math. Softw.},\n\tauthor = {Jerome H. Freidman and Jon Louis Bentley and Raphael Ari Finkel},\n\tyear = {1977},\n\tpages = {209--226}\n},\n\n@inproceedings{brin_near_1995,\n\ttitle = {Near Neighbor Search in Large Metric Spaces},\n\tisbn = {1-55860-379-4},\n\tbooktitle = {VLDB},\n\tauthor = {Sergey Brin},\n\tyear = {1995},\n\tpages = {574-584}\n},\n\n@inproceedings{liu_investigation_2004,\n\ttitle = {An investigation of practical approximate nearest neighbor algorithms},\n\turl = {citeseer.ist.psu.edu/753047.html},\n\tbooktitle = {Neural Information Processing Systems},\n\tauthor = {T. Liu and A. Moore and A. Gray and K. Yang},\n\tyear = {2004}\n},\n\n@article{snavely_photo_2006,\n\ttitle = {Photo tourism: Exploring photo collections in 3{D}},\n\tvolume = {25},\n\tjournal = {ACM Transactions on Graphics (TOG)},\n\tauthor = {N. Snavely and S. M. Seitz and R. Szeliski},\n\tyear = {2006},\n\tpages = {835-846}\n},\n\n@inproceedings{silpa-anan_localization_2004,\n\ttitle = {Localization using an imagemap},\n\tbooktitle = {Australasian Conference on Robotics and Automation},\n\tauthor = {C. Silpa-Anan and R. Hartley},\n\tyear = {2004}\n},\n\n@inproceedings{sivic_videogoogle_2003,\n\ttitle = {Video {G}oogle: A Text Retrieval Approach to Object Matching in Videos},\n\tbooktitle = {ICCV},\n\tauthor = {J. Sivic and A. Zisserman},\n\tyear = {2003}\n},\n\n@techreport{torralba_tiny_2007,\n        Author = {A. Torralba and R. Fergus and W. T. Freeman},\n        Title = {Tiny Images},\n        Institution = {CSAIL, Massachusetts Institute of Technology},\n        Year = {2007},\n        URL = {http://dspace.mit.edu/handle/1721.1/37291},\n        Number = {MIT-CSAIL-TR-2007-024}\n},\n\n\n@article{torralba_80_million_2008,\n    author = {Antonio Torralba and Rob Fergus and William T. Freeman},\n    title = {80 Million Tiny Images: A Large Data Set for Nonparametric Object and Scene Recognition},\n    journal ={IEEE Transactions on Pattern Analysis and Machine Intelligence},\n    volume = {30},\n    number = {11},\n    issn = {0162-8828},\n    year = {2008},\n    pages = {1958-1970},\n    doi = {http://doi.ieeecomputersociety.org/10.1109/TPAMI.2008.128},\n    publisher = {IEEE Computer Society},\n    address = {Los Alamitos, CA, USA},\n}\n\n@inproceedings{philbin_oxford_2007,\n\ttitle = {Object retrieval with large vocabularies and fast spatial matching},\n\tbooktitle = {CVPR},\n\tauthor = {J. Philbin and O. Chum and M. Isard and J. Sivic and A. Zisserman},\n\tyear = {2007}\n}\n\n@article{andoni_near-optimal_2006,\n    title = {Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions},\n    journal = {Proceedings of the 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS'06)},\n    author = {A. Andoni},\n    year = {2006},\n    pages = {459-468}\n}\n\n@article{fukunaga_branch_1975,\n    title = {A Branch and Bound Algorithm for Computing k-Nearest Neighbors},\n    volume = {24},\n    url = {http://portal.acm.org/citation.cfm?id=1311063.1311121\\&coll=GUIDE\\&dl=\\&CFID=5674080\\&CFTOKEN=11648065},\n    abstract = {Computation of the k-nearest neighbors generally requires a large number of expensive distance computations. The method of branch and bound is implemented in the present algorithm to facilitate rapid calculation of the k-nearest neighbors, by eliminating the necesssity of calculating many distances. Experimental results demonstrate the efficiency of the algorithm. Typically, an average of only 61 distance computations were made to find the nearest neighbor of a test sample among 1000 design samples.},\n    journal = {IEEE Trans. Comput.},\n    author = {K. Fukunaga and P. M. Narendra},\n    year = {1975},\n    keywords = {branch and bound,distance computation,hierarchical decomposition,k-nearest neighbors,tree-search algorithm.},\n    pages = {750-753}\n}\n\n\n@inproceedings{mikolajczyk_improving_2007,\n    title = {Improving Descriptors for Fast Tree Matching by Optimal Linear Projection},\n    isbn = {1550-5499},\n    doi = {10.1109/ICCV.2007.4408871},\n    abstract = {In this paper we propose to transform an image descriptor so that nearest neighbor (NN) search for correspondences becomes the optimal matching strategy under the assumption that inter-image deviations of corresponding descriptors have Gaussian distribution. The Euclidean NN in the transformed domain corresponds to the NN according to a truncated Mahalanobis metric in the original descriptor space. We provide theoretical justification for the proposed approach and show experimentally that the transformation allows a significant dimensionality reduction and improves matching performance of a state-of-the art SIFT descriptor. We observe consistent improvement in precision-recall and speed of fast matching in tree structures at the expense of little overhead for projecting the descriptors into transformed space. In the context of SIFT vs. transformed M-SIFT comparison, tree search structures are evaluated according to different criteria and query types. All search tree experiments confirm that transformed M-SIFT performs better than the original SIFT.},\n    booktitle = {Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on},\n    journal = {Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on},\n    author = {Krystian Mikolajczyk and Jiri Matas},\n    year = {2007},\n    pages = {1-8}\n}\n\n@inproceedings{silpa-anan_optimized_2008,\n     author = {Silpa-Anan, C. and Hartley, R.} ,\n     title = \"Optimised {KD}-trees for fast image descriptor matching\" ,\n     booktitle = {CVPR} ,\n     year = 2008 ,\n     url = \"../Papers/PDF/SilpaAnan:CVPR08.pdf\" ,\n};"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\nsys/time.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/build_auto.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/build_auto.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/build_auto.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/build_auto.dir/flags.make\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: examples/CMakeFiles/build_auto.dir/flags.make\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../examples/build_auto.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/build_auto.dir/build_auto.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/build_auto.dir/build_auto.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/build_auto.dir/build_auto.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp > CMakeFiles/build_auto.dir/build_auto.cpp.i\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/build_auto.dir/build_auto.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp -o CMakeFiles/build_auto.dir/build_auto.cpp.s\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o.requires:\n.PHONY : examples/CMakeFiles/build_auto.dir/build_auto.cpp.o.requires\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o.provides: examples/CMakeFiles/build_auto.dir/build_auto.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build_auto.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/build_auto.dir/build_auto.cpp.o.provides\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o.provides.build: examples/CMakeFiles/build_auto.dir/build_auto.cpp.o\n\n# Object files for target build_auto\nbuild_auto_OBJECTS = \\\n\"CMakeFiles/build_auto.dir/build_auto.cpp.o\"\n\n# External object files for target build_auto\nbuild_auto_EXTERNAL_OBJECTS =\n\nbin/build_auto: examples/CMakeFiles/build_auto.dir/build_auto.cpp.o\nbin/build_auto: examples/CMakeFiles/build_auto.dir/build.make\nbin/build_auto: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/build_auto: /usr/lib64/libz.so\nbin/build_auto: /usr/lib64/libm.so\nbin/build_auto: examples/CMakeFiles/build_auto.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/build_auto\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/build_auto.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/build_auto.dir/build: bin/build_auto\n.PHONY : examples/CMakeFiles/build_auto.dir/build\n\nexamples/CMakeFiles/build_auto.dir/requires: examples/CMakeFiles/build_auto.dir/build_auto.cpp.o.requires\n.PHONY : examples/CMakeFiles/build_auto.dir/requires\n\nexamples/CMakeFiles/build_auto.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/build_auto.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/build_auto.dir/clean\n\nexamples/CMakeFiles/build_auto.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/build_auto.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/build_auto.dir/build_auto.cpp.o\"\n  \"../bin/build_auto.pdb\"\n  \"../bin/build_auto\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/build_auto.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/build_auto.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/build_auto.dir/build_auto.cpp.o: ../examples/build_auto.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/build_auto.dir/build_auto.cpp.o  -o ../bin/build_auto -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_auto.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 1\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\ntime.h\n-\nfstream\n-\nstdio.h\n-\nsys/time.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/build_hkmeans.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/build_hkmeans.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/build_hkmeans.dir/flags.make\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: examples/CMakeFiles/build_hkmeans.dir/flags.make\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../examples/build_hkmeans.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp > CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.i\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp -o CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.s\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.requires:\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.requires\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.provides: examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.provides\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.provides.build: examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\n\n# Object files for target build_hkmeans\nbuild_hkmeans_OBJECTS = \\\n\"CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\"\n\n# External object files for target build_hkmeans\nbuild_hkmeans_EXTERNAL_OBJECTS =\n\nbin/build_hkmeans: examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\nbin/build_hkmeans: examples/CMakeFiles/build_hkmeans.dir/build.make\nbin/build_hkmeans: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/build_hkmeans: /usr/lib64/libz.so\nbin/build_hkmeans: /usr/lib64/libm.so\nbin/build_hkmeans: examples/CMakeFiles/build_hkmeans.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/build_hkmeans\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/build_hkmeans.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/build_hkmeans.dir/build: bin/build_hkmeans\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/build\n\nexamples/CMakeFiles/build_hkmeans.dir/requires: examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o.requires\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/requires\n\nexamples/CMakeFiles/build_hkmeans.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/build_hkmeans.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/clean\n\nexamples/CMakeFiles/build_hkmeans.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\"\n  \"../bin/build_hkmeans.pdb\"\n  \"../bin/build_hkmeans\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/build_hkmeans.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/build_hkmeans.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o: ../examples/build_hkmeans.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o  -o ../bin/build_hkmeans -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_hkmeans.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\nsys/time.h\n-\ngetopt.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/build_kdtree.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/build_kdtree.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/build_kdtree.dir/flags.make\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: examples/CMakeFiles/build_kdtree.dir/flags.make\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../examples/build_kdtree.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/build_kdtree.dir/build_kdtree.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp > CMakeFiles/build_kdtree.dir/build_kdtree.cpp.i\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/build_kdtree.dir/build_kdtree.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp -o CMakeFiles/build_kdtree.dir/build_kdtree.cpp.s\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.requires:\n.PHONY : examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.requires\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.provides: examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.provides\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.provides.build: examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\n\n# Object files for target build_kdtree\nbuild_kdtree_OBJECTS = \\\n\"CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\"\n\n# External object files for target build_kdtree\nbuild_kdtree_EXTERNAL_OBJECTS =\n\nbin/build_kdtree: examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\nbin/build_kdtree: examples/CMakeFiles/build_kdtree.dir/build.make\nbin/build_kdtree: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/build_kdtree: /usr/lib64/libz.so\nbin/build_kdtree: /usr/lib64/libm.so\nbin/build_kdtree: examples/CMakeFiles/build_kdtree.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/build_kdtree\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/build_kdtree.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/build_kdtree.dir/build: bin/build_kdtree\n.PHONY : examples/CMakeFiles/build_kdtree.dir/build\n\nexamples/CMakeFiles/build_kdtree.dir/requires: examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o.requires\n.PHONY : examples/CMakeFiles/build_kdtree.dir/requires\n\nexamples/CMakeFiles/build_kdtree.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/build_kdtree.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/build_kdtree.dir/clean\n\nexamples/CMakeFiles/build_kdtree.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/build_kdtree.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\"\n  \"../bin/build_kdtree.pdb\"\n  \"../bin/build_kdtree\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/build_kdtree.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/build_kdtree.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o: ../examples/build_kdtree.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o  -o ../bin/build_kdtree -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/build_kdtree.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 3\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Utility rule file for examples.\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/examples.dir/progress.make\n\nexamples: examples/CMakeFiles/examples.dir/build.make\n.PHONY : examples\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/examples.dir/build: examples\n.PHONY : examples/CMakeFiles/examples.dir/build\n\nexamples/CMakeFiles/examples.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/examples.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/examples.dir/clean\n\nexamples/CMakeFiles/examples.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/examples.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/examples.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/cmake_clean.cmake",
    "content": "\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/examples.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/examples.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\ntime.h\n-\nfstream\n-\nstdio.h\n-\nsys/time.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flags.make\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flags.make\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../examples/flann_h_kmeans_example.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp > CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.i\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp -o CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.s\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.requires:\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.requires\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.provides: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/build.make examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.provides\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.provides.build: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\n\n# Object files for target flann_h_kmeans_tunning_cpp\nflann_h_kmeans_tunning_cpp_OBJECTS = \\\n\"CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\"\n\n# External object files for target flann_h_kmeans_tunning_cpp\nflann_h_kmeans_tunning_cpp_EXTERNAL_OBJECTS =\n\nbin/flann_h_kmeans_tunning_cpp: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\nbin/flann_h_kmeans_tunning_cpp: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/build.make\nbin/flann_h_kmeans_tunning_cpp: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/flann_h_kmeans_tunning_cpp: /usr/lib64/libz.so\nbin/flann_h_kmeans_tunning_cpp: /usr/lib64/libm.so\nbin/flann_h_kmeans_tunning_cpp: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/flann_h_kmeans_tunning_cpp\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_h_kmeans_tunning_cpp.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/build: bin/flann_h_kmeans_tunning_cpp\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/build\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/requires: examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o.requires\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/requires\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/flann_h_kmeans_tunning_cpp.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/clean\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\"\n  \"../bin/flann_h_kmeans_tunning_cpp.pdb\"\n  \"../bin/flann_h_kmeans_tunning_cpp\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/flann_h_kmeans_tunning_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_h_kmeans_example.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o: ../examples/flann_h_kmeans_example.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/flann_h_kmeans_tunning_cpp.dir/flann_h_kmeans_example.cpp.o  -o ../bin/flann_h_kmeans_tunning_cpp -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_h_kmeans_tunning_cpp.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 12\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\nsys/time.h\n-\ngetopt.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flags.make\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flags.make\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../examples/flann_kdtree_tunning.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp > CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.i\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp -o CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.s\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.requires:\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.requires\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.provides: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/build.make examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.provides\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.provides.build: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\n\n# Object files for target flann_kdtree_tunning_cpp\nflann_kdtree_tunning_cpp_OBJECTS = \\\n\"CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\"\n\n# External object files for target flann_kdtree_tunning_cpp\nflann_kdtree_tunning_cpp_EXTERNAL_OBJECTS =\n\nbin/flann_kdtree_tunning_cpp: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\nbin/flann_kdtree_tunning_cpp: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/build.make\nbin/flann_kdtree_tunning_cpp: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/flann_kdtree_tunning_cpp: /usr/lib64/libz.so\nbin/flann_kdtree_tunning_cpp: /usr/lib64/libm.so\nbin/flann_kdtree_tunning_cpp: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/flann_kdtree_tunning_cpp\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_kdtree_tunning_cpp.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/build: bin/flann_kdtree_tunning_cpp\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/build\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/requires: examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o.requires\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/requires\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/flann_kdtree_tunning_cpp.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/clean\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\"\n  \"../bin/flann_kdtree_tunning_cpp.pdb\"\n  \"../bin/flann_kdtree_tunning_cpp\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/flann_kdtree_tunning_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_kdtree_tunning.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o: ../examples/flann_kdtree_tunning.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/flann_kdtree_tunning_cpp.dir/flann_kdtree_tunning.cpp.o  -o ../bin/flann_kdtree_tunning_cpp -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_kdtree_tunning_cpp.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 13\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\nsys/time.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/flann_linear_example_cpp.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/flann_linear_example_cpp.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/flann_linear_example_cpp.dir/flags.make\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: examples/CMakeFiles/flann_linear_example_cpp.dir/flags.make\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../examples/flann_linear_example.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp > CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.i\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp -o CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.s\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.requires:\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.requires\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.provides: examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/flann_linear_example_cpp.dir/build.make examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.provides\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.provides.build: examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\n\n# Object files for target flann_linear_example_cpp\nflann_linear_example_cpp_OBJECTS = \\\n\"CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\"\n\n# External object files for target flann_linear_example_cpp\nflann_linear_example_cpp_EXTERNAL_OBJECTS =\n\nbin/flann_linear_example_cpp: examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\nbin/flann_linear_example_cpp: examples/CMakeFiles/flann_linear_example_cpp.dir/build.make\nbin/flann_linear_example_cpp: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/flann_linear_example_cpp: /usr/lib64/libz.so\nbin/flann_linear_example_cpp: /usr/lib64/libm.so\nbin/flann_linear_example_cpp: examples/CMakeFiles/flann_linear_example_cpp.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/flann_linear_example_cpp\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_linear_example_cpp.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/flann_linear_example_cpp.dir/build: bin/flann_linear_example_cpp\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/build\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/requires: examples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o.requires\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/requires\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/flann_linear_example_cpp.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/clean\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/flann_linear_example_cpp.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\"\n  \"../bin/flann_linear_example_cpp.pdb\"\n  \"../bin/flann_linear_example_cpp\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/flann_linear_example_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/flann_linear_example.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o: ../examples/flann_linear_example.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/flann_linear_example_cpp.dir/flann_linear_example.cpp.o  -o ../bin/flann_linear_example_cpp -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/flann_linear_example_cpp.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 14\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\nsys/time.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/linear.dir/linear.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/linear.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/linear.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/linear.dir/flags.make\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o: examples/CMakeFiles/linear.dir/flags.make\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../examples/linear.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/linear.dir/linear.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/linear.dir/linear.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp\n\nexamples/CMakeFiles/linear.dir/linear.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/linear.dir/linear.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp > CMakeFiles/linear.dir/linear.cpp.i\n\nexamples/CMakeFiles/linear.dir/linear.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/linear.dir/linear.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp -o CMakeFiles/linear.dir/linear.cpp.s\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o.requires:\n.PHONY : examples/CMakeFiles/linear.dir/linear.cpp.o.requires\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o.provides: examples/CMakeFiles/linear.dir/linear.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/linear.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/linear.dir/linear.cpp.o.provides\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o.provides.build: examples/CMakeFiles/linear.dir/linear.cpp.o\n\n# Object files for target linear\nlinear_OBJECTS = \\\n\"CMakeFiles/linear.dir/linear.cpp.o\"\n\n# External object files for target linear\nlinear_EXTERNAL_OBJECTS =\n\nbin/linear: examples/CMakeFiles/linear.dir/linear.cpp.o\nbin/linear: examples/CMakeFiles/linear.dir/build.make\nbin/linear: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/linear: /usr/lib64/libz.so\nbin/linear: /usr/lib64/libm.so\nbin/linear: examples/CMakeFiles/linear.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/linear\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/linear.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/linear.dir/build: bin/linear\n.PHONY : examples/CMakeFiles/linear.dir/build\n\nexamples/CMakeFiles/linear.dir/requires: examples/CMakeFiles/linear.dir/linear.cpp.o.requires\n.PHONY : examples/CMakeFiles/linear.dir/requires\n\nexamples/CMakeFiles/linear.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/linear.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/linear.dir/clean\n\nexamples/CMakeFiles/linear.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/linear.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/linear.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/linear.dir/linear.cpp.o\"\n  \"../bin/linear.pdb\"\n  \"../bin/linear\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/linear.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/linear.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/linear.dir/linear.cpp.o: ../examples/linear.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/linear.dir/linear.cpp.o  -o ../bin/linear -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/linear.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 15\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/progress.marks",
    "content": "7\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\nsys/time.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/search_auto.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/search_auto.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/search_auto.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/search_auto.dir/flags.make\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: examples/CMakeFiles/search_auto.dir/flags.make\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../examples/search_auto.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/search_auto.dir/search_auto.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/search_auto.dir/search_auto.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/search_auto.dir/search_auto.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp > CMakeFiles/search_auto.dir/search_auto.cpp.i\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/search_auto.dir/search_auto.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp -o CMakeFiles/search_auto.dir/search_auto.cpp.s\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o.requires:\n.PHONY : examples/CMakeFiles/search_auto.dir/search_auto.cpp.o.requires\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o.provides: examples/CMakeFiles/search_auto.dir/search_auto.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/search_auto.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/search_auto.dir/search_auto.cpp.o.provides\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o.provides.build: examples/CMakeFiles/search_auto.dir/search_auto.cpp.o\n\n# Object files for target search_auto\nsearch_auto_OBJECTS = \\\n\"CMakeFiles/search_auto.dir/search_auto.cpp.o\"\n\n# External object files for target search_auto\nsearch_auto_EXTERNAL_OBJECTS =\n\nbin/search_auto: examples/CMakeFiles/search_auto.dir/search_auto.cpp.o\nbin/search_auto: examples/CMakeFiles/search_auto.dir/build.make\nbin/search_auto: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/search_auto: /usr/lib64/libz.so\nbin/search_auto: /usr/lib64/libm.so\nbin/search_auto: examples/CMakeFiles/search_auto.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/search_auto\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/search_auto.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/search_auto.dir/build: bin/search_auto\n.PHONY : examples/CMakeFiles/search_auto.dir/build\n\nexamples/CMakeFiles/search_auto.dir/requires: examples/CMakeFiles/search_auto.dir/search_auto.cpp.o.requires\n.PHONY : examples/CMakeFiles/search_auto.dir/requires\n\nexamples/CMakeFiles/search_auto.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/search_auto.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/search_auto.dir/clean\n\nexamples/CMakeFiles/search_auto.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/search_auto.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/search_auto.dir/search_auto.cpp.o\"\n  \"../bin/search_auto.pdb\"\n  \"../bin/search_auto\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/search_auto.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/search_auto.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/search_auto.dir/search_auto.cpp.o: ../examples/search_auto.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/search_auto.dir/search_auto.cpp.o  -o ../bin/search_auto -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_auto.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 25\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\ngetopt.h\n-\ntime.h\n-\nfstream\n-\nstdio.h\n-\nsys/time.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/search_hkmeans.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/search_hkmeans.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/search_hkmeans.dir/flags.make\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: examples/CMakeFiles/search_hkmeans.dir/flags.make\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../examples/search_hkmeans.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp > CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.i\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp -o CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.s\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.requires:\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.requires\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.provides: examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.provides\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.provides.build: examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\n\n# Object files for target search_hkmeans\nsearch_hkmeans_OBJECTS = \\\n\"CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\"\n\n# External object files for target search_hkmeans\nsearch_hkmeans_EXTERNAL_OBJECTS =\n\nbin/search_hkmeans: examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\nbin/search_hkmeans: examples/CMakeFiles/search_hkmeans.dir/build.make\nbin/search_hkmeans: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/search_hkmeans: /usr/lib64/libz.so\nbin/search_hkmeans: /usr/lib64/libm.so\nbin/search_hkmeans: examples/CMakeFiles/search_hkmeans.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/search_hkmeans\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/search_hkmeans.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/search_hkmeans.dir/build: bin/search_hkmeans\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/build\n\nexamples/CMakeFiles/search_hkmeans.dir/requires: examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o.requires\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/requires\n\nexamples/CMakeFiles/search_hkmeans.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/search_hkmeans.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/clean\n\nexamples/CMakeFiles/search_hkmeans.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\"\n  \"../bin/search_hkmeans.pdb\"\n  \"../bin/search_hkmeans\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/search_hkmeans.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/search_hkmeans.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o: ../examples/search_hkmeans.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o  -o ../bin/search_hkmeans -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_hkmeans.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 26\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/io/hdf5.h\nhdf5.h\n-\nflann/util/matrix.h\n../src/cpp/flann/io/flann/util/matrix.h\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Cpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nstdio.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Epubgen.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmpio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nsys/types.h\n-\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5pubconf.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nH5version.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nfeatures.h\n-\nsys/types.h\n-\nlimits.h\n-\nstdint.h\n-\nstdint.h\n-\ninttypes.h\n-\nstddef.h\n-\nmpi.h\n-\nmpio.h\n-\nH5api_adpt.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nH5public.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nH5Apublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nH5ACpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nH5Dpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nH5Epublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nH5Fpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nH5FDpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nH5Gpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nH5Ipublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nH5Lpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nH5MMpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nH5Opublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nH5Ppublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nH5PLpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nH5Rpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nH5Spublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nH5Tpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nH5Zpublic.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nH5FDcore.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nH5FDfamily.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nH5FDlog.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nH5FDmpi.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nH5FDmulti.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nH5FDsec2.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nH5FDstdio.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nH5FDwindows.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDwindows.h\nH5FDdirect.h\n/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp\nflann/flann.hpp\n-\nflann/io/hdf5.h\n-\nsys/time.h\n-\ngetopt.h\n-\nfstream\n-\nstdio.h\n-\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude examples/CMakeFiles/search_kdtree.dir/depend.make\n\n# Include the progress variables for this target.\ninclude examples/CMakeFiles/search_kdtree.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude examples/CMakeFiles/search_kdtree.dir/flags.make\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: examples/CMakeFiles/search_kdtree.dir/flags.make\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../examples/search_kdtree.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/search_kdtree.dir/search_kdtree.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp > CMakeFiles/search_kdtree.dir/search_kdtree.cpp.i\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/search_kdtree.dir/search_kdtree.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp -o CMakeFiles/search_kdtree.dir/search_kdtree.cpp.s\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.requires:\n.PHONY : examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.requires\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.provides: examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.requires\n\t$(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.provides.build\n.PHONY : examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.provides\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.provides.build: examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\n\n# Object files for target search_kdtree\nsearch_kdtree_OBJECTS = \\\n\"CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\"\n\n# External object files for target search_kdtree\nsearch_kdtree_EXTERNAL_OBJECTS =\n\nbin/search_kdtree: examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\nbin/search_kdtree: examples/CMakeFiles/search_kdtree.dir/build.make\nbin/search_kdtree: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so\nbin/search_kdtree: /usr/lib64/libz.so\nbin/search_kdtree: /usr/lib64/libm.so\nbin/search_kdtree: examples/CMakeFiles/search_kdtree.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX executable ../bin/search_kdtree\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/search_kdtree.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nexamples/CMakeFiles/search_kdtree.dir/build: bin/search_kdtree\n.PHONY : examples/CMakeFiles/search_kdtree.dir/build\n\nexamples/CMakeFiles/search_kdtree.dir/requires: examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o.requires\n.PHONY : examples/CMakeFiles/search_kdtree.dir/requires\n\nexamples/CMakeFiles/search_kdtree.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/search_kdtree.dir/cmake_clean.cmake\n.PHONY : examples/CMakeFiles/search_kdtree.dir/clean\n\nexamples/CMakeFiles/search_kdtree.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/examples /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/examples /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : examples/CMakeFiles/search_kdtree.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\"\n  \"../bin/search_kdtree.pdb\"\n  \"../bin/search_kdtree\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/search_kdtree.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/io/hdf5.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\n /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\n /home/yzhang4/HD/release/algorithms/flann/code/examples/search_kdtree.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/dist.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/config.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/defines.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/flann.hpp\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/general.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/io/hdf5.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/nn/index_testing.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/allocator.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/any.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/heap.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/logger.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/lsh_table.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/matrix.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/params.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/random.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/result_set.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/sampling.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/saving.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/serialization.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../src/cpp/flann/util/timer.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5ACpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Apublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Cpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Dpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epubgen.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Epublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDcore.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDdirect.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDfamily.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDlog.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpi.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmpio.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDmulti.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDsec2.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5FDstdio.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Fpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Gpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ipublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Lpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5MMpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Opublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5PLpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Ppublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Rpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Spublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Tpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5Zpublic.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5api_adpt.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5pubconf.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5public.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/H5version.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include/hdf5.h\nexamples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o: ../examples/search_kdtree.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function\n\nCXX_DEFINES = \n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++   -O2 -g -DNDEBUG   CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o  -o ../bin/search_kdtree -rdynamic /home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib/libhdf5.so -lz -lm -Wl,-rpath,/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/lib: \n"
  },
  {
    "path": "algorithms/flann/code/build/examples/CMakeFiles/search_kdtree.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 27\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/examples/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\nexamples/CMakeFiles/build_auto.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_auto.dir/rule\n.PHONY : examples/CMakeFiles/build_auto.dir/rule\n\n# Convenience name for target.\nbuild_auto: examples/CMakeFiles/build_auto.dir/rule\n.PHONY : build_auto\n\n# fast build rule for target.\nbuild_auto/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build\n.PHONY : build_auto/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/build_hkmeans.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_hkmeans.dir/rule\n.PHONY : examples/CMakeFiles/build_hkmeans.dir/rule\n\n# Convenience name for target.\nbuild_hkmeans: examples/CMakeFiles/build_hkmeans.dir/rule\n.PHONY : build_hkmeans\n\n# fast build rule for target.\nbuild_hkmeans/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build\n.PHONY : build_hkmeans/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/build_kdtree.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/build_kdtree.dir/rule\n.PHONY : examples/CMakeFiles/build_kdtree.dir/rule\n\n# Convenience name for target.\nbuild_kdtree: examples/CMakeFiles/build_kdtree.dir/rule\n.PHONY : build_kdtree\n\n# fast build rule for target.\nbuild_kdtree/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build\n.PHONY : build_kdtree/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/examples.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/examples.dir/rule\n.PHONY : examples/CMakeFiles/examples.dir/rule\n\n# Convenience name for target.\nexamples: examples/CMakeFiles/examples.dir/rule\n.PHONY : examples\n\n# fast build rule for target.\nexamples/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/examples.dir/build.make examples/CMakeFiles/examples.dir/build\n.PHONY : examples/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/linear.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/linear.dir/rule\n.PHONY : examples/CMakeFiles/linear.dir/rule\n\n# Convenience name for target.\nlinear: examples/CMakeFiles/linear.dir/rule\n.PHONY : linear\n\n# fast build rule for target.\nlinear/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/build\n.PHONY : linear/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/search_auto.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_auto.dir/rule\n.PHONY : examples/CMakeFiles/search_auto.dir/rule\n\n# Convenience name for target.\nsearch_auto: examples/CMakeFiles/search_auto.dir/rule\n.PHONY : search_auto\n\n# fast build rule for target.\nsearch_auto/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/build\n.PHONY : search_auto/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/search_hkmeans.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_hkmeans.dir/rule\n.PHONY : examples/CMakeFiles/search_hkmeans.dir/rule\n\n# Convenience name for target.\nsearch_hkmeans: examples/CMakeFiles/search_hkmeans.dir/rule\n.PHONY : search_hkmeans\n\n# fast build rule for target.\nsearch_hkmeans/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/build\n.PHONY : search_hkmeans/fast\n\n# Convenience name for target.\nexamples/CMakeFiles/search_kdtree.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 examples/CMakeFiles/search_kdtree.dir/rule\n.PHONY : examples/CMakeFiles/search_kdtree.dir/rule\n\n# Convenience name for target.\nsearch_kdtree: examples/CMakeFiles/search_kdtree.dir/rule\n.PHONY : search_kdtree\n\n# fast build rule for target.\nsearch_kdtree/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/build\n.PHONY : search_kdtree/fast\n\nbuild_auto.o: build_auto.cpp.o\n.PHONY : build_auto.o\n\n# target to build an object file\nbuild_auto.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build_auto.cpp.o\n.PHONY : build_auto.cpp.o\n\nbuild_auto.i: build_auto.cpp.i\n.PHONY : build_auto.i\n\n# target to preprocess a source file\nbuild_auto.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build_auto.cpp.i\n.PHONY : build_auto.cpp.i\n\nbuild_auto.s: build_auto.cpp.s\n.PHONY : build_auto.s\n\n# target to generate assembly for a file\nbuild_auto.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_auto.dir/build.make examples/CMakeFiles/build_auto.dir/build_auto.cpp.s\n.PHONY : build_auto.cpp.s\n\nbuild_hkmeans.o: build_hkmeans.cpp.o\n.PHONY : build_hkmeans.o\n\n# target to build an object file\nbuild_hkmeans.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.o\n.PHONY : build_hkmeans.cpp.o\n\nbuild_hkmeans.i: build_hkmeans.cpp.i\n.PHONY : build_hkmeans.i\n\n# target to preprocess a source file\nbuild_hkmeans.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.i\n.PHONY : build_hkmeans.cpp.i\n\nbuild_hkmeans.s: build_hkmeans.cpp.s\n.PHONY : build_hkmeans.s\n\n# target to generate assembly for a file\nbuild_hkmeans.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_hkmeans.dir/build.make examples/CMakeFiles/build_hkmeans.dir/build_hkmeans.cpp.s\n.PHONY : build_hkmeans.cpp.s\n\nbuild_kdtree.o: build_kdtree.cpp.o\n.PHONY : build_kdtree.o\n\n# target to build an object file\nbuild_kdtree.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.o\n.PHONY : build_kdtree.cpp.o\n\nbuild_kdtree.i: build_kdtree.cpp.i\n.PHONY : build_kdtree.i\n\n# target to preprocess a source file\nbuild_kdtree.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.i\n.PHONY : build_kdtree.cpp.i\n\nbuild_kdtree.s: build_kdtree.cpp.s\n.PHONY : build_kdtree.s\n\n# target to generate assembly for a file\nbuild_kdtree.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/build_kdtree.dir/build.make examples/CMakeFiles/build_kdtree.dir/build_kdtree.cpp.s\n.PHONY : build_kdtree.cpp.s\n\nlinear.o: linear.cpp.o\n.PHONY : linear.o\n\n# target to build an object file\nlinear.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/linear.cpp.o\n.PHONY : linear.cpp.o\n\nlinear.i: linear.cpp.i\n.PHONY : linear.i\n\n# target to preprocess a source file\nlinear.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/linear.cpp.i\n.PHONY : linear.cpp.i\n\nlinear.s: linear.cpp.s\n.PHONY : linear.s\n\n# target to generate assembly for a file\nlinear.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/linear.dir/build.make examples/CMakeFiles/linear.dir/linear.cpp.s\n.PHONY : linear.cpp.s\n\nsearch_auto.o: search_auto.cpp.o\n.PHONY : search_auto.o\n\n# target to build an object file\nsearch_auto.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/search_auto.cpp.o\n.PHONY : search_auto.cpp.o\n\nsearch_auto.i: search_auto.cpp.i\n.PHONY : search_auto.i\n\n# target to preprocess a source file\nsearch_auto.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/search_auto.cpp.i\n.PHONY : search_auto.cpp.i\n\nsearch_auto.s: search_auto.cpp.s\n.PHONY : search_auto.s\n\n# target to generate assembly for a file\nsearch_auto.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_auto.dir/build.make examples/CMakeFiles/search_auto.dir/search_auto.cpp.s\n.PHONY : search_auto.cpp.s\n\nsearch_hkmeans.o: search_hkmeans.cpp.o\n.PHONY : search_hkmeans.o\n\n# target to build an object file\nsearch_hkmeans.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.o\n.PHONY : search_hkmeans.cpp.o\n\nsearch_hkmeans.i: search_hkmeans.cpp.i\n.PHONY : search_hkmeans.i\n\n# target to preprocess a source file\nsearch_hkmeans.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.i\n.PHONY : search_hkmeans.cpp.i\n\nsearch_hkmeans.s: search_hkmeans.cpp.s\n.PHONY : search_hkmeans.s\n\n# target to generate assembly for a file\nsearch_hkmeans.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_hkmeans.dir/build.make examples/CMakeFiles/search_hkmeans.dir/search_hkmeans.cpp.s\n.PHONY : search_hkmeans.cpp.s\n\nsearch_kdtree.o: search_kdtree.cpp.o\n.PHONY : search_kdtree.o\n\n# target to build an object file\nsearch_kdtree.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.o\n.PHONY : search_kdtree.cpp.o\n\nsearch_kdtree.i: search_kdtree.cpp.i\n.PHONY : search_kdtree.i\n\n# target to preprocess a source file\nsearch_kdtree.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.i\n.PHONY : search_kdtree.cpp.i\n\nsearch_kdtree.s: search_kdtree.cpp.s\n.PHONY : search_kdtree.s\n\n# target to generate assembly for a file\nsearch_kdtree.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f examples/CMakeFiles/search_kdtree.dir/build.make examples/CMakeFiles/search_kdtree.dir/search_kdtree.cpp.s\n.PHONY : search_kdtree.cpp.s\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... build_auto\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... linear\"\n\t@echo \"... install\"\n\t@echo \"... search_hkmeans\"\n\t@echo \"... search_auto\"\n\t@echo \"... build_kdtree\"\n\t@echo \"... examples\"\n\t@echo \"... list_install_components\"\n\t@echo \"... build_hkmeans\"\n\t@echo \"... package\"\n\t@echo \"... search_kdtree\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n\t@echo \"... build_auto.o\"\n\t@echo \"... build_auto.i\"\n\t@echo \"... build_auto.s\"\n\t@echo \"... build_hkmeans.o\"\n\t@echo \"... build_hkmeans.i\"\n\t@echo \"... build_hkmeans.s\"\n\t@echo \"... build_kdtree.o\"\n\t@echo \"... build_kdtree.i\"\n\t@echo \"... build_kdtree.s\"\n\t@echo \"... linear.o\"\n\t@echo \"... linear.i\"\n\t@echo \"... linear.s\"\n\t@echo \"... search_auto.o\"\n\t@echo \"... search_auto.i\"\n\t@echo \"... search_auto.s\"\n\t@echo \"... search_hkmeans.o\"\n\t@echo \"... search_hkmeans.i\"\n\t@echo \"... search_hkmeans.s\"\n\t@echo \"... search_kdtree.o\"\n\t@echo \"... search_kdtree.i\"\n\t@echo \"... search_kdtree.s\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/examples/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/examples\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/build_kdtree\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_kdtree\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/search_kdtree\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_kdtree\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/build_hkmeans\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_hkmeans\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/search_hkmeans\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_hkmeans\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/build_auto\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/build_auto\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/search_auto\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/search_auto\")\n    endif()\n  endif()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\")\n    file(RPATH_CHECK\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\"\n         RPATH \"\")\n  endif()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/bin\" TYPE EXECUTABLE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/bin/linear\")\n  if(EXISTS \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\" AND\n     NOT IS_SYMLINK \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\")\n    file(RPATH_REMOVE\n         FILE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\")\n    if(CMAKE_INSTALL_DO_STRIP)\n      execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/linear\")\n    endif()\n  endif()\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/CMakeFiles/progress.marks",
    "content": "2\n"
  },
  {
    "path": "algorithms/flann/code/build/src/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/src/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/src\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_LOCAL_ONLY)\n  # Include the install script for each subdirectory.\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/src/matlab/cmake_install.cmake\")\n  include(\"/home/yzhang4/HD/release/algorithms/flann/code/build/src/python/cmake_install.cmake\")\n\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Preprocessor definitions for this target.\nset(CMAKE_TARGET_DEFINITIONS\n  \"_FLANN_VERSION=1.8.4\"\n  )\n\n# Pairs of files generated by the same build rule.\nset(CMAKE_MULTIPLE_OUTPUT_PAIRS\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so.1.8.4\"\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so.1.8\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so.1.8.4\"\n  )\n\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude src/cpp/CMakeFiles/flann.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/cpp/CMakeFiles/flann.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/cpp/CMakeFiles/flann.dir/flags.make\n\n# Object files for target flann\nflann_OBJECTS =\n\n# External object files for target flann\nflann_EXTERNAL_OBJECTS =\n\nlib/libflann.so.1.8.4: src/cpp/CMakeFiles/flann.dir/build.make\nlib/libflann.so.1.8.4: lib/libflann_s.a\nlib/libflann.so.1.8.4: src/cpp/CMakeFiles/flann.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX shared library ../../lib/libflann.so\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann.dir/link.txt --verbose=$(VERBOSE)\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_symlink_library ../../lib/libflann.so.1.8.4 ../../lib/libflann.so.1.8 ../../lib/libflann.so\n\nlib/libflann.so.1.8: lib/libflann.so.1.8.4\n\t@$(CMAKE_COMMAND) -E touch_nocreate lib/libflann.so.1.8\n\nlib/libflann.so: lib/libflann.so.1.8.4\n\t@$(CMAKE_COMMAND) -E touch_nocreate lib/libflann.so\n\n# Rule to build all files generated by this target.\nsrc/cpp/CMakeFiles/flann.dir/build: lib/libflann.so\n.PHONY : src/cpp/CMakeFiles/flann.dir/build\n\nsrc/cpp/CMakeFiles/flann.dir/requires:\n.PHONY : src/cpp/CMakeFiles/flann.dir/requires\n\nsrc/cpp/CMakeFiles/flann.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann.dir/cmake_clean.cmake\n.PHONY : src/cpp/CMakeFiles/flann.dir/clean\n\nsrc/cpp/CMakeFiles/flann.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/cpp/CMakeFiles/flann.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../../lib/libflann.pdb\"\n  \"../../lib/libflann.so\"\n  \"../../lib/libflann.so.1.8.4\"\n  \"../../lib/libflann.so.1.8\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/flann.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++  -fPIC -O2 -g -DNDEBUG  -shared -Wl,-soname,libflann.so.1.8 -o ../../lib/libflann.so.1.8.4  -Wl,-whole-archive ../../lib/libflann_s.a -Wl,-no-whole-archive \n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  )\n# The set of files for implicit dependencies of each language:\n\n# Preprocessor definitions for this target.\nset(CMAKE_TARGET_DEFINITIONS\n  \"_FLANN_VERSION=1.8.4\"\n  )\n\n# Pairs of files generated by the same build rule.\nset(CMAKE_MULTIPLE_OUTPUT_PAIRS\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so.1.8.4\"\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so.1.8\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so.1.8.4\"\n  )\n\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  \"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/DependInfo.cmake\"\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude src/cpp/CMakeFiles/flann_cpp.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/cpp/CMakeFiles/flann_cpp.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/cpp/CMakeFiles/flann_cpp.dir/flags.make\n\n# Object files for target flann_cpp\nflann_cpp_OBJECTS =\n\n# External object files for target flann_cpp\nflann_cpp_EXTERNAL_OBJECTS =\n\nlib/libflann_cpp.so.1.8.4: src/cpp/CMakeFiles/flann_cpp.dir/build.make\nlib/libflann_cpp.so.1.8.4: lib/libflann_cpp_s.a\nlib/libflann_cpp.so.1.8.4: src/cpp/CMakeFiles/flann_cpp.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX shared library ../../lib/libflann_cpp.so\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_cpp.dir/link.txt --verbose=$(VERBOSE)\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_symlink_library ../../lib/libflann_cpp.so.1.8.4 ../../lib/libflann_cpp.so.1.8 ../../lib/libflann_cpp.so\n\nlib/libflann_cpp.so.1.8: lib/libflann_cpp.so.1.8.4\n\t@$(CMAKE_COMMAND) -E touch_nocreate lib/libflann_cpp.so.1.8\n\nlib/libflann_cpp.so: lib/libflann_cpp.so.1.8.4\n\t@$(CMAKE_COMMAND) -E touch_nocreate lib/libflann_cpp.so\n\n# Rule to build all files generated by this target.\nsrc/cpp/CMakeFiles/flann_cpp.dir/build: lib/libflann_cpp.so\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/build\n\nsrc/cpp/CMakeFiles/flann_cpp.dir/requires:\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/requires\n\nsrc/cpp/CMakeFiles/flann_cpp.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann_cpp.dir/cmake_clean.cmake\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/clean\n\nsrc/cpp/CMakeFiles/flann_cpp.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../../lib/libflann_cpp.pdb\"\n  \"../../lib/libflann_cpp.so\"\n  \"../../lib/libflann_cpp.so.1.8.4\"\n  \"../../lib/libflann_cpp.so.1.8\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang)\n  include(CMakeFiles/flann_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/c++  -fPIC -O2 -g -DNDEBUG  -shared -Wl,-soname,libflann_cpp.so.1.8 -o ../../lib/libflann_cpp.so.1.8.4  -Wl,-whole-archive ../../lib/libflann_cpp_s.a -Wl,-no-whole-archive \n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp.dir/progress.make",
    "content": "\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/config.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n../src/cpp/flann/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n../src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n../src/cpp/flann/flann/algorithms/all_indices.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp\nflann/flann.hpp\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/flann.hpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Preprocessor definitions for this target.\nset(CMAKE_TARGET_DEFINITIONS\n  \"FLANN_STATIC\"\n  \"FLANN_USE_CUDA\"\n  \"_FLANN_VERSION=1.8.4\"\n  )\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude src/cpp/CMakeFiles/flann_cpp_s.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/cpp/CMakeFiles/flann_cpp_s.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/cpp/CMakeFiles/flann_cpp_s.dir/flags.make\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: src/cpp/CMakeFiles/flann_cpp_s.dir/flags.make\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/flann_cpp.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp > CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.i\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp -o CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.s\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.requires:\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.requires\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.provides: src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.requires\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.provides.build\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.provides\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.provides.build: src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\n\n# Object files for target flann_cpp_s\nflann_cpp_s_OBJECTS = \\\n\"CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\"\n\n# External object files for target flann_cpp_s\nflann_cpp_s_EXTERNAL_OBJECTS =\n\nlib/libflann_cpp_s.a: src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\nlib/libflann_cpp_s.a: src/cpp/CMakeFiles/flann_cpp_s.dir/build.make\nlib/libflann_cpp_s.a: src/cpp/CMakeFiles/flann_cpp_s.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX static library ../../lib/libflann_cpp_s.a\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann_cpp_s.dir/cmake_clean_target.cmake\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_cpp_s.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/build: lib/libflann_cpp_s.a\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/build\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/requires: src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o.requires\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/requires\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann_cpp_s.dir/cmake_clean.cmake\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/clean\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\"\n  \"../../lib/libflann_cpp_s.pdb\"\n  \"../../lib/libflann_cpp_s.a\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/flann_cpp_s.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/cmake_clean_target.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../../lib/libflann_cpp_s.a\"\n)\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/config.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/flann.hpp\n ../src/cpp/flann/general.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann_cpp.cpp\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/dist.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/config.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/defines.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/flann.hpp\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/general.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/nn/index_testing.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/allocator.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/any.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/heap.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/logger.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/lsh_table.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/matrix.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/params.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/random.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/result_set.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/sampling.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/saving.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/serialization.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/util/timer.h\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o: ../src/cpp/flann/flann_cpp.cpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function -fPIC\n\nCXX_DEFINES = -DFLANN_STATIC -DFLANN_USE_CUDA -D_FLANN_VERSION=1.8.4\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/ar cq ../../lib/libflann_cpp_s.a  CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\n/opt/rh/devtoolset-2/root/usr/bin/ranlib ../../lib/libflann_cpp_s.a\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_cpp_s.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 13\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/CXX.includecache",
    "content": "#IncludeRegexLine: ^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])\n\n#IncludeRegexScan: ^.*$\n\n#IncludeRegexComplain: ^$\n\n#IncludeRegexTransform: \n\n../src/cpp/flann/algorithms/all_indices.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/algorithms/hierarchical_clustering_index.h\n../src/cpp/flann/algorithms/flann/algorithms/hierarchical_clustering_index.h\nflann/algorithms/lsh_index.h\n../src/cpp/flann/algorithms/flann/algorithms/lsh_index.h\nflann/algorithms/autotuned_index.h\n../src/cpp/flann/algorithms/flann/algorithms/autotuned_index.h\nflann/algorithms/kdtree_cuda_3d_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_cuda_3d_index.h\n\n../src/cpp/flann/algorithms/autotuned_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/nn/ground_truth.h\n../src/cpp/flann/algorithms/flann/nn/ground_truth.h\nflann/nn/index_testing.h\n../src/cpp/flann/algorithms/flann/nn/index_testing.h\nflann/util/sampling.h\n../src/cpp/flann/algorithms/flann/util/sampling.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kdtree_single_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_single_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\nflann/algorithms/composite_index.h\n../src/cpp/flann/algorithms/flann/algorithms/composite_index.h\nflann/algorithms/linear_index.h\n../src/cpp/flann/algorithms/flann/algorithms/linear_index.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\niostream\n-\n\n../src/cpp/flann/algorithms/center_chooser.h\nflann/util/matrix.h\n-\n\n../src/cpp/flann/algorithms/composite_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/kdtree_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kdtree_index.h\nflann/algorithms/kmeans_index.h\n../src/cpp/flann/algorithms/flann/algorithms/kmeans_index.h\n\n../src/cpp/flann/algorithms/dist.h\ncmath\n-\ncstdlib\n-\nstring.h\n-\nstdint.h\n-\nflann/defines.h\n../src/cpp/flann/algorithms/flann/defines.h\n\n../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/serialization.h\n../src/cpp/flann/algorithms/flann/util/serialization.h\n\n../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\n\n../src/cpp/flann/algorithms/kdtree_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nstdarg.h\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kdtree_single_index.h\nalgorithm\n-\nmap\n-\ncassert\n-\ncstring\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/kmeans_index.h\nalgorithm\n-\nstring\n-\nmap\n-\ncassert\n-\nlimits\n-\ncmath\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/algorithms/dist.h\n../src/cpp/flann/algorithms/flann/algorithms/dist.h\nflann/algorithms/center_chooser.h\n-\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\nflann/util/logger.h\n../src/cpp/flann/algorithms/flann/util/logger.h\n\n../src/cpp/flann/algorithms/linear_index.h\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\n\n../src/cpp/flann/algorithms/lsh_index.h\nalgorithm\n-\ncassert\n-\ncstring\n-\nmap\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/algorithms/flann/algorithms/nn_index.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/heap.h\n../src/cpp/flann/algorithms/flann/util/heap.h\nflann/util/lsh_table.h\n../src/cpp/flann/algorithms/flann/util/lsh_table.h\nflann/util/allocator.h\n../src/cpp/flann/algorithms/flann/util/allocator.h\nflann/util/random.h\n../src/cpp/flann/algorithms/flann/util/random.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/algorithms/nn_index.h\nvector\n-\nflann/general.h\n../src/cpp/flann/algorithms/flann/general.h\nflann/util/matrix.h\n../src/cpp/flann/algorithms/flann/util/matrix.h\nflann/util/params.h\n../src/cpp/flann/algorithms/flann/util/params.h\nflann/util/result_set.h\n../src/cpp/flann/algorithms/flann/util/result_set.h\nflann/util/dynamic_bitset.h\n../src/cpp/flann/algorithms/flann/util/dynamic_bitset.h\nflann/util/saving.h\n../src/cpp/flann/algorithms/flann/util/saving.h\n\n../src/cpp/flann/defines.h\nconfig.h\n../src/cpp/flann/config.h\n\n../src/cpp/flann/general.h\ndefines.h\n../src/cpp/flann/defines.h\nstdexcept\n-\ncassert\n-\nlimits.h\n-\n\n../src/cpp/flann/nn/ground_truth.h\nflann/algorithms/dist.h\n../src/cpp/flann/nn/flann/algorithms/dist.h\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\n\n../src/cpp/flann/nn/index_testing.h\ncstring\n-\ncassert\n-\ncmath\n-\nflann/util/matrix.h\n../src/cpp/flann/nn/flann/util/matrix.h\nflann/algorithms/nn_index.h\n../src/cpp/flann/nn/flann/algorithms/nn_index.h\nflann/util/result_set.h\n../src/cpp/flann/nn/flann/util/result_set.h\nflann/util/logger.h\n../src/cpp/flann/nn/flann/util/logger.h\nflann/util/timer.h\n../src/cpp/flann/nn/flann/util/timer.h\n\n../src/cpp/flann/util/allocator.h\nstdlib.h\n-\nstdio.h\n-\n\n../src/cpp/flann/util/any.h\nstdexcept\n-\nostream\n-\ntypeinfo\n-\n\n../src/cpp/flann/util/dynamic_bitset.h\nboost/dynamic_bitset.hpp\n-\nlimits.h\n-\n\n../src/cpp/flann/util/heap.h\nalgorithm\n-\nvector\n-\n\n../src/cpp/flann/util/logger.h\nstdio.h\n-\nstdarg.h\n-\nflann/defines.h\n../src/cpp/flann/util/flann/defines.h\n\n../src/cpp/flann/util/lsh_table.h\nalgorithm\n-\niostream\n-\niomanip\n-\nlimits.h\n-\nunordered_map\n-\nmap\n-\nmath.h\n-\nstddef.h\n-\nflann/util/dynamic_bitset.h\n../src/cpp/flann/util/flann/util/dynamic_bitset.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\n\n../src/cpp/flann/util/matrix.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\nstdio.h\n-\n\n../src/cpp/flann/util/params.h\nany.h\n../src/cpp/flann/util/any.h\nflann/general.h\n../src/cpp/flann/util/flann/general.h\niostream\n-\nmap\n-\n\n../src/cpp/flann/util/random.h\nalgorithm\n-\ncstdlib\n-\ncstddef\n-\nvector\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\n\n../src/cpp/flann/util/result_set.h\nalgorithm\n-\ncstring\n-\niostream\n-\nlimits\n-\nset\n-\nvector\n-\n\n../src/cpp/flann/util/sampling.h\nflann/util/matrix.h\n../src/cpp/flann/util/flann/util/matrix.h\nflann/util/random.h\n../src/cpp/flann/util/flann/util/random.h\n\n../src/cpp/flann/util/saving.h\ncstring\n-\nvector\n-\nstdio.h\n-\nflann/general.h\n../src/cpp/flann/util/flann/general.h\nflann/util/serialization.h\n../src/cpp/flann/util/flann/util/serialization.h\n\n../src/cpp/flann/util/serialization.h\nvector\n-\nmap\n-\nstdio.h\n-\n\n../src/cpp/flann/util/timer.h\ntime.h\n-\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/config.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/defines.h\nconfig.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/config.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp\nflann.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.h\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.h\ndefines.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/defines.h\nflann.hpp\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.hpp\n\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.hpp\nvector\n-\nstring\n-\ncassert\n-\ncstdio\n-\nflann/general.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/general.h\nflann/util/matrix.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/util/matrix.h\nflann/util/params.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/util/params.h\nflann/util/saving.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/util/saving.h\nflann/algorithms/all_indices.h\n/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann/algorithms/all_indices.h\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/DependInfo.cmake",
    "content": "# The set of languages for which implicit dependencies are needed:\nset(CMAKE_DEPENDS_LANGUAGES\n  \"CXX\"\n  )\n# The set of files for implicit dependencies of each language:\nset(CMAKE_DEPENDS_CHECK_CXX\n  \"/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp\" \"/home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\"\n  )\nset(CMAKE_CXX_COMPILER_ID \"GNU\")\n\n# Preprocessor definitions for this target.\nset(CMAKE_TARGET_DEFINITIONS\n  \"FLANN_STATIC\"\n  \"_FLANN_VERSION=1.8.4\"\n  )\n\n# Targets to which this target links.\nset(CMAKE_TARGET_LINKED_INFO_FILES\n  )\n\n# The include file search paths:\nset(CMAKE_C_TARGET_INCLUDE_PATH\n  \"/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include\"\n  \"../src/cpp\"\n  )\nset(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\nset(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/build.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n# Include any dependencies generated for this target.\ninclude src/cpp/CMakeFiles/flann_s.dir/depend.make\n\n# Include the progress variables for this target.\ninclude src/cpp/CMakeFiles/flann_s.dir/progress.make\n\n# Include the compile flags for this target's objects.\ninclude src/cpp/CMakeFiles/flann_s.dir/flags.make\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: src/cpp/CMakeFiles/flann_s.dir/flags.make\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/flann.cpp\n\t$(CMAKE_COMMAND) -E cmake_progress_report /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles $(CMAKE_PROGRESS_1)\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Building CXX object src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/flann_s.dir/flann/flann.cpp.o -c /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.i: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Preprocessing CXX source to CMakeFiles/flann_s.dir/flann/flann.cpp.i\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp > CMakeFiles/flann_s.dir/flann/flann.cpp.i\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.s: cmake_force\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green \"Compiling CXX source to assembly CMakeFiles/flann_s.dir/flann/flann.cpp.s\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && /opt/rh/devtoolset-2/root/usr/bin/c++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp -o CMakeFiles/flann_s.dir/flann/flann.cpp.s\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.requires:\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.requires\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.provides: src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.requires\n\t$(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.provides.build\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.provides\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.provides.build: src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\n\n# Object files for target flann_s\nflann_s_OBJECTS = \\\n\"CMakeFiles/flann_s.dir/flann/flann.cpp.o\"\n\n# External object files for target flann_s\nflann_s_EXTERNAL_OBJECTS =\n\nlib/libflann_s.a: src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\nlib/libflann_s.a: src/cpp/CMakeFiles/flann_s.dir/build.make\nlib/libflann_s.a: src/cpp/CMakeFiles/flann_s.dir/link.txt\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold \"Linking CXX static library ../../lib/libflann_s.a\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann_s.dir/cmake_clean_target.cmake\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/flann_s.dir/link.txt --verbose=$(VERBOSE)\n\n# Rule to build all files generated by this target.\nsrc/cpp/CMakeFiles/flann_s.dir/build: lib/libflann_s.a\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/build\n\nsrc/cpp/CMakeFiles/flann_s.dir/requires: src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o.requires\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/requires\n\nsrc/cpp/CMakeFiles/flann_s.dir/clean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp && $(CMAKE_COMMAND) -P CMakeFiles/flann_s.dir/cmake_clean.cmake\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/clean\n\nsrc/cpp/CMakeFiles/flann_s.dir/depend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_depends \"Unix Makefiles\" /home/yzhang4/HD/release/algorithms/flann/code /home/yzhang4/HD/release/algorithms/flann/code/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/DependInfo.cmake --color=$(COLOR)\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/depend\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/cmake_clean.cmake",
    "content": "file(REMOVE_RECURSE\n  \"CMakeFiles/flann_s.dir/flann/flann.cpp.o\"\n  \"../../lib/libflann_s.pdb\"\n  \"../../lib/libflann_s.a\"\n)\n\n# Per-language clean rules from dependency scanning.\nforeach(lang CXX)\n  include(CMakeFiles/flann_s.dir/cmake_clean_${lang}.cmake OPTIONAL)\nendforeach()\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/cmake_clean_target.cmake",
    "content": "file(REMOVE_RECURSE\n  \"../../lib/libflann_s.a\"\n)\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/depend.internal",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\n ../src/cpp/flann/algorithms/all_indices.h\n ../src/cpp/flann/algorithms/autotuned_index.h\n ../src/cpp/flann/algorithms/center_chooser.h\n ../src/cpp/flann/algorithms/composite_index.h\n ../src/cpp/flann/algorithms/dist.h\n ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\n ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\n ../src/cpp/flann/algorithms/kdtree_index.h\n ../src/cpp/flann/algorithms/kdtree_single_index.h\n ../src/cpp/flann/algorithms/kmeans_index.h\n ../src/cpp/flann/algorithms/linear_index.h\n ../src/cpp/flann/algorithms/lsh_index.h\n ../src/cpp/flann/algorithms/nn_index.h\n ../src/cpp/flann/defines.h\n ../src/cpp/flann/general.h\n ../src/cpp/flann/nn/ground_truth.h\n ../src/cpp/flann/nn/index_testing.h\n ../src/cpp/flann/util/allocator.h\n ../src/cpp/flann/util/any.h\n ../src/cpp/flann/util/dynamic_bitset.h\n ../src/cpp/flann/util/heap.h\n ../src/cpp/flann/util/logger.h\n ../src/cpp/flann/util/lsh_table.h\n ../src/cpp/flann/util/matrix.h\n ../src/cpp/flann/util/params.h\n ../src/cpp/flann/util/random.h\n ../src/cpp/flann/util/result_set.h\n ../src/cpp/flann/util/sampling.h\n ../src/cpp/flann/util/saving.h\n ../src/cpp/flann/util/serialization.h\n ../src/cpp/flann/util/timer.h\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/config.h\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/defines.h\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.cpp\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.h\n /home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann/flann.hpp\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/depend.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/all_indices.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/autotuned_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/center_chooser.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/composite_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/dist.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/hierarchical_clustering_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/kdtree_cuda_3d_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/kdtree_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/kdtree_single_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/kmeans_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/linear_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/lsh_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/algorithms/nn_index.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/defines.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/general.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/nn/ground_truth.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/nn/index_testing.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/allocator.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/any.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/dynamic_bitset.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/heap.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/logger.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/lsh_table.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/matrix.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/params.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/random.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/result_set.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/sampling.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/saving.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/serialization.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/util/timer.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/config.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/defines.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/flann.cpp\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/flann.h\nsrc/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o: ../src/cpp/flann/flann.hpp\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/flags.make",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# compile CXX with /opt/rh/devtoolset-2/root/usr/bin/c++\nCXX_FLAGS = -O2 -g -DNDEBUG -I/home/yzhang4/HD/home/liwen/Downloads/software/HDF5/include -I/home/yzhang4/HD/release/algorithms/flann/code/src/cpp    -Wall -Wno-unknown-pragmas -Wno-unused-function -fPIC\n\nCXX_DEFINES = -DFLANN_STATIC -D_FLANN_VERSION=1.8.4\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/link.txt",
    "content": "/opt/rh/devtoolset-2/root/usr/bin/ar cq ../../lib/libflann_s.a  CMakeFiles/flann_s.dir/flann/flann.cpp.o\n/opt/rh/devtoolset-2/root/usr/bin/ranlib ../../lib/libflann_s.a\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/flann_s.dir/progress.make",
    "content": "CMAKE_PROGRESS_1 = 14\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/CMakeFiles/progress.marks",
    "content": "2\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/src/cpp/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Convenience name for target.\nsrc/cpp/CMakeFiles/flann.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann.dir/rule\n.PHONY : src/cpp/CMakeFiles/flann.dir/rule\n\n# Convenience name for target.\nflann: src/cpp/CMakeFiles/flann.dir/rule\n.PHONY : flann\n\n# fast build rule for target.\nflann/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann.dir/build.make src/cpp/CMakeFiles/flann.dir/build\n.PHONY : flann/fast\n\n# Convenience name for target.\nsrc/cpp/CMakeFiles/flann_cpp.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_cpp.dir/rule\n.PHONY : src/cpp/CMakeFiles/flann_cpp.dir/rule\n\n# Convenience name for target.\nflann_cpp: src/cpp/CMakeFiles/flann_cpp.dir/rule\n.PHONY : flann_cpp\n\n# fast build rule for target.\nflann_cpp/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_cpp.dir/build.make src/cpp/CMakeFiles/flann_cpp.dir/build\n.PHONY : flann_cpp/fast\n\n# Convenience name for target.\nsrc/cpp/CMakeFiles/flann_cpp_s.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_cpp_s.dir/rule\n.PHONY : src/cpp/CMakeFiles/flann_cpp_s.dir/rule\n\n# Convenience name for target.\nflann_cpp_s: src/cpp/CMakeFiles/flann_cpp_s.dir/rule\n.PHONY : flann_cpp_s\n\n# fast build rule for target.\nflann_cpp_s/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/build\n.PHONY : flann_cpp_s/fast\n\n# Convenience name for target.\nsrc/cpp/CMakeFiles/flann_s.dir/rule:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/cpp/CMakeFiles/flann_s.dir/rule\n.PHONY : src/cpp/CMakeFiles/flann_s.dir/rule\n\n# Convenience name for target.\nflann_s: src/cpp/CMakeFiles/flann_s.dir/rule\n.PHONY : flann_s\n\n# fast build rule for target.\nflann_s/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/build\n.PHONY : flann_s/fast\n\nflann/flann.o: flann/flann.cpp.o\n.PHONY : flann/flann.o\n\n# target to build an object file\nflann/flann.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.o\n.PHONY : flann/flann.cpp.o\n\nflann/flann.i: flann/flann.cpp.i\n.PHONY : flann/flann.i\n\n# target to preprocess a source file\nflann/flann.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.i\n.PHONY : flann/flann.cpp.i\n\nflann/flann.s: flann/flann.cpp.s\n.PHONY : flann/flann.s\n\n# target to generate assembly for a file\nflann/flann.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_s.dir/build.make src/cpp/CMakeFiles/flann_s.dir/flann/flann.cpp.s\n.PHONY : flann/flann.cpp.s\n\nflann/flann_cpp.o: flann/flann_cpp.cpp.o\n.PHONY : flann/flann_cpp.o\n\n# target to build an object file\nflann/flann_cpp.cpp.o:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.o\n.PHONY : flann/flann_cpp.cpp.o\n\nflann/flann_cpp.i: flann/flann_cpp.cpp.i\n.PHONY : flann/flann_cpp.i\n\n# target to preprocess a source file\nflann/flann_cpp.cpp.i:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.i\n.PHONY : flann/flann_cpp.cpp.i\n\nflann/flann_cpp.s: flann/flann_cpp.cpp.s\n.PHONY : flann/flann_cpp.s\n\n# target to generate assembly for a file\nflann/flann_cpp.cpp.s:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f src/cpp/CMakeFiles/flann_cpp_s.dir/build.make src/cpp/CMakeFiles/flann_cpp_s.dir/flann/flann_cpp.cpp.s\n.PHONY : flann/flann_cpp.cpp.s\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... flann_cpp\"\n\t@echo \"... install/strip\"\n\t@echo \"... flann_s\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... flann\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n\t@echo \"... flann_cpp_s\"\n\t@echo \"... flann/flann.o\"\n\t@echo \"... flann/flann.i\"\n\t@echo \"... flann/flann.s\"\n\t@echo \"... flann/flann_cpp.o\"\n\t@echo \"... flann/flann_cpp.i\"\n\t@echo \"... flann/flann_cpp.s\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/cpp/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/src/cpp\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  foreach(file\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so.1.8.4\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so.1.8\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so\"\n      )\n    if(EXISTS \"${file}\" AND\n       NOT IS_SYMLINK \"${file}\")\n      file(RPATH_CHECK\n           FILE \"${file}\"\n           RPATH \"\")\n    endif()\n  endforeach()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE SHARED_LIBRARY FILES\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so.1.8.4\"\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so.1.8\"\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp.so\"\n    )\n  foreach(file\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so.1.8.4\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so.1.8\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann_cpp.so\"\n      )\n    if(EXISTS \"${file}\" AND\n       NOT IS_SYMLINK \"${file}\")\n      if(CMAKE_INSTALL_DO_STRIP)\n        execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"${file}\")\n      endif()\n    endif()\n  endforeach()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE STATIC_LIBRARY FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_cpp_s.a\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  foreach(file\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so.1.8.4\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so.1.8\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so\"\n      )\n    if(EXISTS \"${file}\" AND\n       NOT IS_SYMLINK \"${file}\")\n      file(RPATH_CHECK\n           FILE \"${file}\"\n           RPATH \"\")\n    endif()\n  endforeach()\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE SHARED_LIBRARY FILES\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so.1.8.4\"\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so.1.8\"\n    \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann.so\"\n    )\n  foreach(file\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so.1.8.4\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so.1.8\"\n      \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libflann.so\"\n      )\n    if(EXISTS \"${file}\" AND\n       NOT IS_SYMLINK \"${file}\")\n      if(CMAKE_INSTALL_DO_STRIP)\n        execute_process(COMMAND \"/opt/rh/devtoolset-2/root/usr/bin/strip\" \"${file}\")\n      endif()\n    endif()\n  endforeach()\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/lib\" TYPE STATIC_LIBRARY FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/lib/libflann_s.a\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/include\" TYPE DIRECTORY FILES \"/home/yzhang4/HD/release/algorithms/flann/code/src/cpp/flann\" FILES_MATCHING REGEX \"/[^/]*\\\\.h$\" REGEX \"/[^/]*\\\\.hpp$\")\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/matlab/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/matlab/CMakeFiles/progress.marks",
    "content": "0\n"
  },
  {
    "path": "algorithms/flann/code/build/src/matlab/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/src/matlab/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/matlab/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/matlab/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/matlab/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/matlab/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/matlab/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/src/matlab\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/python/CMakeFiles/CMakeDirectoryInformation.cmake",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Relative path conversion top directories.\nset(CMAKE_RELATIVE_PATH_TOP_SOURCE \"/home/yzhang4/HD/release/algorithms/flann/code\")\nset(CMAKE_RELATIVE_PATH_TOP_BINARY \"/home/yzhang4/HD/release/algorithms/flann/code/build\")\n\n# Force unix paths in dependencies.\nset(CMAKE_FORCE_UNIX_PATHS 1)\n\n\n# The C and CXX include file regular expressions for this directory.\nset(CMAKE_C_INCLUDE_REGEX_SCAN \"^.*$\")\nset(CMAKE_C_INCLUDE_REGEX_COMPLAIN \"^$\")\nset(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\nset(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n"
  },
  {
    "path": "algorithms/flann/code/build/src/python/CMakeFiles/progress.marks",
    "content": "0\n"
  },
  {
    "path": "algorithms/flann/code/build/src/python/Makefile",
    "content": "# CMAKE generated file: DO NOT EDIT!\n# Generated by \"Unix Makefiles\" Generator, CMake Version 3.2\n\n# Default target executed when no arguments are given to make.\ndefault_target: all\n.PHONY : default_target\n\n# Allow only one \"make -f Makefile2\" at a time, but pass parallelism.\n.NOTPARALLEL:\n\n#=============================================================================\n# Special targets provided by cmake.\n\n# Disable implicit rules so canonical targets will work.\n.SUFFIXES:\n\n# Remove some rules from gmake that .SUFFIXES does not remove.\nSUFFIXES =\n\n.SUFFIXES: .hpux_make_needs_suffix_list\n\n# Suppress display of executed commands.\n$(VERBOSE).SILENT:\n\n# A target that is always out of date.\ncmake_force:\n.PHONY : cmake_force\n\n#=============================================================================\n# Set environment variables for the build.\n\n# The shell in which to execute make rules.\nSHELL = /bin/sh\n\n# The CMake executable.\nCMAKE_COMMAND = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\n\n# The command to remove a file.\nRM = /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -E remove -f\n\n# Escaping for special characters.\nEQUALS = =\n\n# The top-level source directory on which CMake was run.\nCMAKE_SOURCE_DIR = /home/yzhang4/HD/release/algorithms/flann/code\n\n# The top-level build directory on which CMake was run.\nCMAKE_BINARY_DIR = /home/yzhang4/HD/release/algorithms/flann/code/build\n\n#=============================================================================\n# Targets provided globally by CMake.\n\n# Special rule for the target install/strip\ninstall/strip: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing the project stripped...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake\n.PHONY : install/strip\n\n# Special rule for the target install/strip\ninstall/strip/fast: install/strip\n.PHONY : install/strip/fast\n\n# Special rule for the target edit_cache\nedit_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake cache editor...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : edit_cache\n\n# Special rule for the target edit_cache\nedit_cache/fast: edit_cache\n.PHONY : edit_cache/fast\n\n# Special rule for the target rebuild_cache\nrebuild_cache:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Running CMake to regenerate build system...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)\n.PHONY : rebuild_cache\n\n# Special rule for the target rebuild_cache\nrebuild_cache/fast: rebuild_cache\n.PHONY : rebuild_cache/fast\n\n# Special rule for the target install\ninstall: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install\n\n# Special rule for the target install\ninstall/fast: preinstall/fast\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Install the project...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -P cmake_install.cmake\n.PHONY : install/fast\n\n# Special rule for the target list_install_components\nlist_install_components:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Available install components are: \\\"Unspecified\\\" \\\"pkgconfig\\\"\"\n.PHONY : list_install_components\n\n# Special rule for the target list_install_components\nlist_install_components/fast: list_install_components\n.PHONY : list_install_components/fast\n\n# Special rule for the target package\npackage: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackConfig.cmake\n.PHONY : package\n\n# Special rule for the target package\npackage/fast: package\n.PHONY : package/fast\n\n# Special rule for the target package_source\npackage_source:\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Run CPack packaging tool for source...\"\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && /home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cpack --config ./CPackSourceConfig.cmake /home/yzhang4/HD/release/algorithms/flann/code/build/CPackSourceConfig.cmake\n.PHONY : package_source\n\n# Special rule for the target package_source\npackage_source/fast: package_source\n.PHONY : package_source/fast\n\n# Special rule for the target install/local\ninstall/local: preinstall\n\t@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan \"Installing only the local directory...\"\n\t/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake\n.PHONY : install/local\n\n# Special rule for the target install/local\ninstall/local/fast: install/local\n.PHONY : install/local/fast\n\n# The main all target\nall: cmake_check_build_system\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles /home/yzhang4/HD/release/algorithms/flann/code/build/src/python/CMakeFiles/progress.marks\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/python/all\n\t$(CMAKE_COMMAND) -E cmake_progress_start /home/yzhang4/HD/release/algorithms/flann/code/build/CMakeFiles 0\n.PHONY : all\n\n# The main clean target\nclean:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/python/clean\n.PHONY : clean\n\n# The main clean target\nclean/fast: clean\n.PHONY : clean/fast\n\n# Prepare targets for installation.\npreinstall: all\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/python/preinstall\n.PHONY : preinstall\n\n# Prepare targets for installation.\npreinstall/fast:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(MAKE) -f CMakeFiles/Makefile2 src/python/preinstall\n.PHONY : preinstall/fast\n\n# clear depends\ndepend:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1\n.PHONY : depend\n\n# Help Target\nhelp:\n\t@echo \"The following are some of the valid targets for this Makefile:\"\n\t@echo \"... all (the default if no target is provided)\"\n\t@echo \"... clean\"\n\t@echo \"... depend\"\n\t@echo \"... install/strip\"\n\t@echo \"... edit_cache\"\n\t@echo \"... rebuild_cache\"\n\t@echo \"... install\"\n\t@echo \"... list_install_components\"\n\t@echo \"... package\"\n\t@echo \"... package_source\"\n\t@echo \"... install/local\"\n.PHONY : help\n\n\n\n#=============================================================================\n# Special targets to cleanup operation of make.\n\n# Special rule to run CMake to check the build system integrity.\n# No rule that depends on this can have commands that come from listfiles\n# because they might be regenerated.\ncmake_check_build_system:\n\tcd /home/yzhang4/HD/release/algorithms/flann/code/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0\n.PHONY : cmake_check_build_system\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/python/cmake_install.cmake",
    "content": "# Install script for directory: /home/yzhang4/HD/release/algorithms/flann/code/src/python\n\n# Set the install prefix\nif(NOT DEFINED CMAKE_INSTALL_PREFIX)\n  set(CMAKE_INSTALL_PREFIX \"/usr/local\")\nendif()\nstring(REGEX REPLACE \"/$\" \"\" CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")\n\n# Set the install configuration name.\nif(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)\n  if(BUILD_TYPE)\n    string(REGEX REPLACE \"^[^A-Za-z0-9_]+\" \"\"\n           CMAKE_INSTALL_CONFIG_NAME \"${BUILD_TYPE}\")\n  else()\n    set(CMAKE_INSTALL_CONFIG_NAME \"RelWithDebInfo\")\n  endif()\n  message(STATUS \"Install configuration: \\\"${CMAKE_INSTALL_CONFIG_NAME}\\\"\")\nendif()\n\n# Set the component getting installed.\nif(NOT CMAKE_INSTALL_COMPONENT)\n  if(COMPONENT)\n    message(STATUS \"Install component: \\\"${COMPONENT}\\\"\")\n    set(CMAKE_INSTALL_COMPONENT \"${COMPONENT}\")\n  else()\n    set(CMAKE_INSTALL_COMPONENT)\n  endif()\nendif()\n\n# Install shared libraries without execute permission?\nif(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)\n  set(CMAKE_INSTALL_SO_NO_EXE \"0\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/share/flann/python\" TYPE DIRECTORY FILES \"/home/yzhang4/HD/release/algorithms/flann/code/src/python/pyflann\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  file(INSTALL DESTINATION \"${CMAKE_INSTALL_PREFIX}/share/flann/python\" TYPE FILE FILES \"/home/yzhang4/HD/release/algorithms/flann/code/build/src/python/setup.py\")\nendif()\n\nif(NOT CMAKE_INSTALL_COMPONENT OR \"${CMAKE_INSTALL_COMPONENT}\" STREQUAL \"Unspecified\")\n  execute_process(\n        COMMAND /usr/bin/python /home/yzhang4/HD/release/algorithms/flann/code/build/src/python/setup.py install\n        WORKING_DIRECTORY \"/home/yzhang4/HD/release/algorithms/flann/code/src/python\")\nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/build/src/python/setup.py",
    "content": "#!/usr/bin/env python2\n\nfrom distutils.core import setup\nfrom os.path import exists, abspath, dirname, join\nimport os\nimport sys\n\n\ndef find_path():\n    lib_paths = [ os.path.abspath('/home/yzhang4/HD/release/algorithms/flann/code/build/lib'), abspath(join(dirname(dirname(sys.argv[0])), '../../../lib')) ]\n    possible_libs = ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']\n\n    for path in lib_paths:\n        for lib in possible_libs:\n            if exists(join(path,lib)):\n                return path\n\nsetup(name='flann',\n      version='1.8.4',\n      description='Fast Library for Approximate Nearest Neighbors',\n      author='Marius Muja',\n      author_email='mariusm@cs.ubc.ca',\n      license='BSD',\n      url='http://www.cs.ubc.ca/~mariusm/flann/',\n      packages=['pyflann', 'pyflann.lib'],\n      package_dir={'pyflann.lib': find_path() },\n      package_data={'pyflann.lib': ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']}, \n)\n"
  },
  {
    "path": "algorithms/flann/code/build/uninstall_target.cmake",
    "content": "if(NOT EXISTS \"/home/yzhang4/HD/release/algorithms/flann/code/build/install_manifest.txt\")\n    message(FATAL_ERROR \"Cannot find install manifest: \\\"/home/yzhang4/HD/release/algorithms/flann/code/build/install_manifest.txt\\\"\")\nendif(NOT EXISTS \"/home/yzhang4/HD/release/algorithms/flann/code/build/install_manifest.txt\")\n\nfile(READ \"/home/yzhang4/HD/release/algorithms/flann/code/build/install_manifest.txt\" files)\nstring(REGEX REPLACE \"\\n\" \";\" files \"${files}\")\nforeach(file ${files})\n    message(STATUS \"Uninstalling \\\"$ENV{DESTDIR}${file}\\\"\")\n    if(EXISTS \"$ENV{DESTDIR}${file}\")\n        exec_program(\"/home/yzhang4/HD/home/liwen/Downloads/software/CMake3.2/bin/cmake\" ARGS \"-E remove \\\"$ENV{DESTDIR}${file}\\\"\"\n            OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)\n        if(NOT \"${rm_retval}\" STREQUAL 0)\n            message(FATAL_ERROR \"Problem when removing \\\"$ENV{DESTDIR}${file}\\\"\")\n        endif(NOT \"${rm_retval}\" STREQUAL 0)\n    else(EXISTS \"$ENV{DESTDIR}${file}\")\n        message(STATUS \"File \\\"$ENV{DESTDIR}${file}\\\" does not exist.\")\n    endif(EXISTS \"$ENV{DESTDIR}${file}\")\nendforeach(file)\n\n"
  },
  {
    "path": "algorithms/flann/code/cmake/CMakeLists.txt",
    "content": "set(PKG_DESC \"Fast Library for Approximate Nearest Neighbors\")\nset(pkg_conf_file ${CMAKE_CURRENT_BINARY_DIR}/flann.pc)\nconfigure_file(flann.pc.in ${pkg_conf_file} @ONLY)\ninstall(FILES ${pkg_conf_file}\n    DESTINATION ${FLANN_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT pkgconfig)\n\n"
  },
  {
    "path": "algorithms/flann/code/cmake/FindFlann.cmake",
    "content": "###############################################################################\n# Find Flann\n#\n# This sets the following variables:\n# FLANN_FOUND - True if FLANN was found.\n# FLANN_INCLUDE_DIRS - Directories containing the FLANN include files.\n# FLANN_LIBRARIES - Libraries needed to use FLANN.\n# FLANN_DEFINITIONS - Compiler flags for FLANN.\n\nfind_package(PkgConfig)\npkg_check_modules(PC_FLANN flann)\nset(FLANN_DEFINITIONS ${PC_FLANN_CFLAGS_OTHER})\n\nfind_path(FLANN_INCLUDE_DIR flann/flann.hpp\n    HINTS ${PC_FLANN_INCLUDEDIR} ${PC_FLANN_INCLUDE_DIRS})\n\nfind_library(FLANN_LIBRARY flann\n    HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS})\n\nset(FLANN_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})\nset(FLANN_LIBRARIES ${FLANN_LIBRARY})\n\ninclude(FindPackageHandleStandardArgs)\nfind_package_handle_standard_args(Flann DEFAULT_MSG\n    FLANN_LIBRARY FLANN_INCLUDE_DIR)\n\nmark_as_advanced(FLANN_LIBRARY FLANN_INCLUDE_DIR)\n\n"
  },
  {
    "path": "algorithms/flann/code/cmake/UseLATEX.cmake",
    "content": "# File: UseLATEX.cmake\n# CMAKE commands to actually use the LaTeX compiler\n# Version: 1.7.3\n# Author: Kenneth Moreland (kmorel at sandia dot gov)\n#\n# Copyright 2004 Sandia Corporation.\n# Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive\n# license for use of this work by or on behalf of the\n# U.S. Government. Redistribution and use in source and binary forms, with\n# or without modification, are permitted provided that this Notice and any\n# statement of authorship are reproduced on all copies.\n#\n# The following MACROS are defined:\n#\n# ADD_LATEX_DOCUMENT(<tex_file>\n#                       [BIBFILES <bib_files>]\n#                       [INPUTS <input_tex_files>]\n#                       [IMAGE_DIRS] <image_directories>\n#                       [IMAGES] <image_files>\n#                       [CONFIGURE] <tex_files>\n#                       [DEPENDS] <tex_files>\n#                       [USE_INDEX] [USE_GLOSSARY]\n#                       [DEFAULT_PDF] [MANGLE_TARGET_NAMES])\n#       Adds targets that compile <tex_file>.  The latex output is placed\n#       in LATEX_OUTPUT_PATH or CMAKE_CURRENT_BINARY_DIR if the former is\n#       not set.  The latex program is picky about where files are located,\n#       so all input files are copied from the source directory to the\n#       output directory.  This includes the target tex file, any tex file\n#       listed with the INPUTS option, the bibliography files listed with\n#       the BIBFILES option, and any .cls, .bst, and .clo files found in\n#       the current source directory.  Images found in the IMAGE_DIRS\n#       directories or listed by IMAGES are also copied to the output\n#       directory and coverted to an appropriate format if necessary.  Any\n#       tex files also listed with the CONFIGURE option are also processed\n#       with the CMake CONFIGURE_FILE command (with the @ONLY flag.  Any\n#       file listed in CONFIGURE but not the target tex file or listed with\n#       INPUTS has no effect. DEPENDS can be used to specify generated files\n#       that are needed to compile the latex target.\n#\n#       The following targets are made:\n#               dvi: Makes <name>.dvi\n#               pdf: Makes <name>.pdf using pdflatex.\n#               safepdf: Makes <name>.pdf using ps2pdf.  If using the default\n#                       program arguments, this will ensure all fonts are\n#                       embedded and no lossy compression has been performed\n#                       on images.\n#               ps: Makes <name>.ps\n#               html: Makes <name>.html\n#               auxclean: Deletes <name>.aux.  This is sometimes necessary\n#                       if a LaTeX error occurs and writes a bad aux file.\n#\n#       The dvi target is added to the ALL.  That is, it will be the target\n#       built by default.  If the DEFAULT_PDF argument is given, then the\n#       pdf target will be the default instead of dvi.\n#\n#       If the argument MANGLE_TARGET_NAMES is given, then each of the\n#       target names above will be mangled with the <tex_file> name.  This\n#       is to make the targets unique if ADD_LATEX_DOCUMENT is called for\n#       multiple documents.  If the argument USE_INDEX is given, then\n#       commands to build an index are made.  If the argument USE_GLOSSARY\n#       is given, then commands to build a glossary are made.\n#\n# History:\n#\n# 1.7.3 Fix some issues with interactions between makeglossaries and bibtex\n#       (thanks to Mark de Wever).\n#\n# 1.7.2 Use ps2pdf to convert eps to pdf to get around the problem with\n#       ImageMagick dropping the bounding box (thanks to Lukasz Lis).\n#\n# 1.7.1 Fixed some dependency issues.\n#\n# 1.7.0 Added DEPENDS options (thanks to Theodore Papadopoulo).\n#\n# 1.6.1 Ported the makeglossaries command to CMake and embedded the port\n#       into UseLATEX.cmake.\n#\n# 1.6.0 Allow the use of the makeglossaries command.  Thanks to Oystein\n#       S. Haaland for the patch.\n#\n# 1.5.0 Allow any type of file in the INPUTS lists, not just tex file\n#       (suggested by Eric Noulard).  As a consequence, the ability to\n#       specify tex files without the .tex extension is removed.  The removed\n#       function is of dubious value anyway.\n#\n#       When copying input files, skip over any file that exists in the\n#       binary directory but does not exist in the source directory with the\n#       assumption that these files were added by some other mechanism.  I\n#       find this useful when creating large documents with multiple\n#       chapters that I want to build separately (for speed) as I work on\n#       them.  I use the same boilerplate as the starting point for all\n#       and just copy it with different configurations.  This was what the\n#       separate ADD_LATEX_DOCUMENT method was supposed to originally be for.\n#       Since its external use is pretty much deprecated, I removed that\n#       documentation.\n#\n# 1.4.1 Copy .sty files along with the other class and package files.\n#\n# 1.4.0 Added a MANGLE_TARGET_NAMES option that will mangle the target names.\n#\n#       Fixed problem with copying bib files that became apparent with\n#       CMake 2.4.\n#\n# 1.3.0 Added a LATEX_OUTPUT_PATH variable that allows you or the user to\n#       specify where the built latex documents to go.  This is especially\n#       handy if you want to do in-source builds.\n#\n#       Removed the ADD_LATEX_IMAGES macro and absorbed the functionality\n#       into ADD_LATEX_DOCUMENT.  The old interface was always kind of\n#       clunky anyway since you had to specify the image directory in both\n#       places.  It also made supporting LATEX_OUTPUT_PATH problematic.\n#\n#       Added support for jpeg files.\n#\n# 1.2.0 Changed the configuration options yet again.  Removed the NO_CONFIGURE\n#       Replaced it with a CONFIGURE option that lists input files for which\n#       configure should be run.\n#\n#       The pdf target no longer depends on the dvi target.  This allows you\n#       to build latex documents that require pdflatex.  Also added an option\n#       to make the pdf target the default one.\n#\n# 1.1.1 Added the NO_CONFIGURE option.  The @ character can be used when\n#       specifying table column separators.  If two or more are used, then\n#       will incorrectly substitute them.\n#\n# 1.1.0 Added ability include multiple bib files.  Added ability to do copy\n#       sub-tex files for multipart tex files.\n#\n# 1.0.0 If both ps and pdf type images exist, just copy the one that\n#       matches the current render mode.  Replaced a bunch of STRING\n#       commands with GET_FILENAME_COMPONENT commands that were made to do\n#       the desired function.\n#\n# 0.4.0 First version posted to CMake Wiki.\n#\n\n#############################################################################\n# Find the location of myself while originally executing.  If you do this\n# inside of a macro, it will recode where the macro was invoked.\n#############################################################################\nSET(LATEX_USE_LATEX_LOCATION ${CMAKE_CURRENT_LIST_FILE}\n  CACHE INTERNAL \"Location of UseLATEX.cmake file.\" FORCE\n  )\n\n#############################################################################\n# Generic helper macros\n#############################################################################\n\n# Helpful list macros.\nMACRO(LATEX_CAR var)\n  SET(${var} ${ARGV1})\nENDMACRO(LATEX_CAR)\nMACRO(LATEX_CDR var junk)\n  SET(${var} ${ARGN})\nENDMACRO(LATEX_CDR)\n\nMACRO(LATEX_LIST_CONTAINS var value)\n  SET(${var})\n  FOREACH (value2 ${ARGN})\n    IF (${value} STREQUAL ${value2})\n      SET(${var} TRUE)\n    ENDIF (${value} STREQUAL ${value2})\n  ENDFOREACH (value2)\nENDMACRO(LATEX_LIST_CONTAINS)\n\n# Parse macro arguments.\nMACRO(LATEX_PARSE_ARGUMENTS prefix arg_names option_names)\n  SET(DEFAULT_ARGS)\n  FOREACH(arg_name ${arg_names})\n    SET(${prefix}_${arg_name})\n  ENDFOREACH(arg_name)\n  FOREACH(option ${option_names})\n    SET(${prefix}_${option})\n  ENDFOREACH(option)\n\n  SET(current_arg_name DEFAULT_ARGS)\n  SET(current_arg_list)\n  FOREACH(arg ${ARGN})\n    LATEX_LIST_CONTAINS(is_arg_name ${arg} ${arg_names})\n    IF (is_arg_name)\n      SET(${prefix}_${current_arg_name} ${current_arg_list})\n      SET(current_arg_name ${arg})\n      SET(current_arg_list)\n    ELSE (is_arg_name)\n      LATEX_LIST_CONTAINS(is_option ${arg} ${option_names})\n      IF (is_option)\n        SET(${prefix}_${arg} TRUE)\n      ELSE (is_option)\n        SET(current_arg_list ${current_arg_list} ${arg})\n      ENDIF (is_option)\n    ENDIF (is_arg_name)\n  ENDFOREACH(arg)\n  SET(${prefix}_${current_arg_name} ${current_arg_list})\nENDMACRO(LATEX_PARSE_ARGUMENTS)\n\n# Match the contents of a file to a regular expression.\nMACRO(LATEX_FILE_MATCH variable filename regexp default)\n  # The FILE STRINGS command would be a bit better, but it's not supported on\n  # older versions of CMake.\n  FILE(READ ${filename} file_contents)\n  STRING(REGEX MATCHALL \"${regexp}\"\n    ${variable} ${file_contents}\n    )\n  IF (NOT ${variable})\n    SET(${variable} \"${default}\")\n  ENDIF (NOT ${variable})\nENDMACRO(LATEX_FILE_MATCH)\n\n#############################################################################\n# Macros that perform processing during a LaTeX build.\n#############################################################################\nMACRO(LATEX_MAKEGLOSSARIES)\n  MESSAGE(\"**************************** In makeglossaries\")\n  IF (NOT LATEX_TARGET)\n    MESSAGE(SEND_ERROR \"Need to define LATEX_TARGET\")\n  ENDIF (NOT LATEX_TARGET)\n\n  IF (NOT MAKEINDEX_COMPILER)\n    MESSAGE(SEND_ERROR \"Need to define MAKEINDEX_COMPILER\")\n  ENDIF (NOT MAKEINDEX_COMPILER)\n\n  SET(aux_file ${LATEX_TARGET}.aux)\n\n  IF (NOT EXISTS ${aux_file})\n    MESSAGE(SEND_ERROR \"${aux_file} does not exist.  Run latex on your target file.\")\n  ENDIF (NOT EXISTS ${aux_file})\n\n  LATEX_FILE_MATCH(newglossary_lines ${aux_file}\n    \"@newglossary[ \\t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}\"\n    \"@newglossary{main}{glg}{gls}{glo}\"\n    )\n\n  LATEX_FILE_MATCH(istfile_line ${aux_file}\n    \"@istfilename[ \\t]*{([^}]*)}\"\n    \"@istfilename{${LATEX_TARGET}.ist}\"\n    )\n  STRING(REGEX REPLACE \"@istfilename[ \\t]*{([^}]*)}\" \"\\\\1\"\n    istfile ${istfile_line}\n    )\n\n  FOREACH(newglossary ${newglossary_lines})\n    STRING(REGEX REPLACE\n      \"@newglossary[ \\t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}\"\n      \"\\\\1\" glossary_name ${newglossary}\n      )\n    STRING(REGEX REPLACE\n      \"@newglossary[ \\t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}\"\n      \"${LATEX_TARGET}.\\\\2\" glossary_log ${newglossary}\n      )\n    STRING(REGEX REPLACE\n      \"@newglossary[ \\t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}\"\n      \"${LATEX_TARGET}.\\\\3\" glossary_out ${newglossary}\n      )\n    STRING(REGEX REPLACE\n      \"@newglossary[ \\t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}\"\n      \"${LATEX_TARGET}.\\\\4\" glossary_in ${newglossary}\n      )\n    MESSAGE(\"${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}\")\n    EXEC_PROGRAM(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS}\n      -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}\n      )\n  ENDFOREACH(newglossary)\nENDMACRO(LATEX_MAKEGLOSSARIES)\n\n#############################################################################\n# Helper macros for establishing LaTeX build.\n#############################################################################\n\nMACRO(LATEX_NEEDIT VAR NAME)\n  IF (NOT ${VAR})\n    MESSAGE(SEND_ERROR \"I need the ${NAME} command.\")\n  ENDIF(NOT ${VAR})\nENDMACRO(LATEX_NEEDIT)\n\nMACRO(LATEX_WANTIT VAR NAME)\n  IF (NOT ${VAR})\n    MESSAGE(STATUS \"I could not find the ${NAME} command.\")\n  ENDIF(NOT ${VAR})\nENDMACRO(LATEX_WANTIT)\n\nMACRO(LATEX_SETUP_VARIABLES)\n  SET(LATEX_OUTPUT_PATH \"${LATEX_OUTPUT_PATH}\"\n    CACHE PATH \"If non empty, specifies the location to place LaTeX output.\"\n    )\n\n  FIND_PACKAGE(LATEX)\n\n  MARK_AS_ADVANCED(CLEAR\n    LATEX_COMPILER\n    PDFLATEX_COMPILER\n    BIBTEX_COMPILER\n    MAKEINDEX_COMPILER\n    DVIPS_CONVERTER\n    PS2PDF_CONVERTER\n    LATEX2HTML_CONVERTER\n    )\n\n  LATEX_NEEDIT(LATEX_COMPILER latex)\n  LATEX_WANTIT(PDFLATEX_COMPILER pdflatex)\n  LATEX_NEEDIT(BIBTEX_COMPILER bibtex)\n  LATEX_NEEDIT(MAKEINDEX_COMPILER makeindex)\n  LATEX_WANTIT(DVIPS_CONVERTER dvips)\n  LATEX_WANTIT(PS2PDF_CONVERTER ps2pdf)\n  LATEX_WANTIT(LATEX2HTML_CONVERTER latex2html)\n\n  SET(LATEX_COMPILER_FLAGS \"-interaction=batchmode\"\n    CACHE STRING \"Flags passed to latex.\")\n  SET(PDFLATEX_COMPILER_FLAGS ${LATEX_COMPILER_FLAGS}\n    CACHE STRING \"Flags passed to pdflatex.\")\n  SET(BIBTEX_COMPILER_FLAGS \"\"\n    CACHE STRING \"Flags passed to bibtex.\")\n  SET(MAKEINDEX_COMPILER_FLAGS \"\"\n    CACHE STRING \"Flags passed to makeindex.\")\n  SET(MAKEGLOSSARIES_COMPILER_FLAGS \"\"\n    CACHE STRING \"Flags passed to makeglossaries.\")\n  SET(DVIPS_CONVERTER_FLAGS \"-Ppdf -G0 -t letter\"\n    CACHE STRING \"Flags passed to dvips.\")\n  SET(PS2PDF_CONVERTER_FLAGS \"-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode\"\n    CACHE STRING \"Flags passed to ps2pdf.\")\n  SET(LATEX2HTML_CONVERTER_FLAGS \"\"\n    CACHE STRING \"Flags passed to latex2html.\")\n  MARK_AS_ADVANCED(\n    LATEX_COMPILER_FLAGS\n    PDFLATEX_COMPILER_FLAGS\n    BIBTEX_COMPILER_FLAGS\n    MAKEINDEX_COMPILER_FLAGS\n    MAKEGLOSSARIES_COMPILER_FLAGS\n    DVIPS_CONVERTER_FLAGS\n    PS2PDF_CONVERTER_FLAGS\n    LATEX2HTML_CONVERTER_FLAGS\n    )\n  SEPARATE_ARGUMENTS(LATEX_COMPILER_FLAGS)\n  SEPARATE_ARGUMENTS(PDFLATEX_COMPILER_FLAGS)\n  SEPARATE_ARGUMENTS(BIBTEX_COMPILER_FLAGS)\n  SEPARATE_ARGUMENTS(MAKEINDEX_COMPILER_FLAGS)\n  SEPARATE_ARGUMENTS(MAKEGLOSSARIES_COMPILER_FLAGS)\n  SEPARATE_ARGUMENTS(DVIPS_CONVERTER_FLAGS)\n  SEPARATE_ARGUMENTS(PS2PDF_CONVERTER_FLAGS)\n  SEPARATE_ARGUMENTS(LATEX2HTML_CONVERTER_FLAGS)\n\n  FIND_PROGRAM(IMAGEMAGICK_CONVERT convert\n    DOC \"The convert program that comes with ImageMagick (available at http://www.imagemagick.org).\"\n    )\n\n  OPTION(LATEX_SMALL_IMAGES\n    \"If on, the raster images will be converted to 1/6 the original size.  This is because papers usually require 600 dpi images whereas most monitors only require at most 96 dpi.  Thus, smaller images make smaller files for web distributation and can make it faster to read dvi files.\"\n    OFF)\n  IF (LATEX_SMALL_IMAGES)\n    SET(LATEX_RASTER_SCALE 16)\n    SET(LATEX_OPPOSITE_RASTER_SCALE 100)\n  ELSE (LATEX_SMALL_IMAGES)\n    SET(LATEX_RASTER_SCALE 100)\n    SET(LATEX_OPPOSITE_RASTER_SCALE 16)\n  ENDIF (LATEX_SMALL_IMAGES)\n\n  # Just holds extensions for known image types.  They should all be lower case.\n  SET(LATEX_DVI_VECTOR_IMAGE_EXTENSIONS .eps)\n  SET(LATEX_DVI_RASTER_IMAGE_EXTENSIONS)\n  SET(LATEX_DVI_IMAGE_EXTENSIONS\n    ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS} ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS})\n  SET(LATEX_PDF_VECTOR_IMAGE_EXTENSIONS .pdf)\n  SET(LATEX_PDF_RASTER_IMAGE_EXTENSIONS .png .jpeg .jpg)\n  SET(LATEX_PDF_IMAGE_EXTENSIONS\n    ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS} ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS})\n  SET(LATEX_IMAGE_EXTENSIONS\n    ${LATEX_DVI_IMAGE_EXTENSIONS} ${LATEX_PDF_IMAGE_EXTENSIONS})\nENDMACRO(LATEX_SETUP_VARIABLES)\n\nMACRO(LATEX_GET_OUTPUT_PATH var)\n  SET(${var})\n  IF (LATEX_OUTPUT_PATH)\n    IF (\"${LATEX_OUTPUT_PATH}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n      MESSAGE(SEND_ERROR \"You cannot set LATEX_OUTPUT_PATH to the same directory that contains LaTeX input files.\")\n    ELSE (\"${LATEX_OUTPUT_PATH}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n      SET(${var} \"${LATEX_OUTPUT_PATH}\")\n    ENDIF (\"${LATEX_OUTPUT_PATH}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n  ELSE (LATEX_OUTPUT_PATH)\n    IF (\"${CMAKE_CURRENT_BINARY_DIR}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n      MESSAGE(SEND_ERROR \"LaTeX files must be built out of source or you must set LATEX_OUTPUT_PATH.\")\n    ELSE (\"${CMAKE_CURRENT_BINARY_DIR}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n      SET(${var} \"${CMAKE_CURRENT_BINARY_DIR}\")\n    ENDIF (\"${CMAKE_CURRENT_BINARY_DIR}\" STREQUAL \"${CMAKE_CURRENT_SOURCE_DIR}\")\n  ENDIF (LATEX_OUTPUT_PATH)\nENDMACRO(LATEX_GET_OUTPUT_PATH)\n\nMACRO(LATEX_ADD_CONVERT_COMMAND output_path input_path output_extension\n        input_extension flags)\n  SET (converter ${IMAGEMAGICK_CONVERT})\n  SET (convert_flags \"\")\n  # ImageMagick has broken eps to pdf conversion\n  # use ps2pdf instead\n  IF (${input_extension} STREQUAL \".eps\" AND ${output_extension} STREQUAL \".pdf\")\n    IF (PS2PDF_CONVERTER)\n      SET (converter ${PS2PDF_CONVERTER})\n      SET (convert_flags \"-dEPSCrop ${flags}\")\n    ELSE (PS2PDF_CONVERTER)\n      MESSAGE(SEND_ERROR \"Using postscript files with pdflatex requires ps2pdf for conversion.\")\n    ENDIF (PS2PDF_CONVERTER)\n  ELSE (${input_extension} STREQUAL \".eps\" AND ${output_extension} STREQUAL \".pdf\")\n    SET (convert_flags ${flags})\n  ENDIF (${input_extension} STREQUAL \".eps\" AND ${output_extension} STREQUAL \".pdf\")\n\n  ADD_CUSTOM_COMMAND(OUTPUT ${output_path}\n    COMMAND ${converter}\n      ARGS ${convert_flags} ${input_path} ${output_path}\n    DEPENDS ${input_path}\n    )\nENDMACRO(LATEX_ADD_CONVERT_COMMAND)\n\n# Makes custom commands to convert a file to a particular type.\nMACRO(LATEX_CONVERT_IMAGE output_files input_file output_extension convert_flags\n    output_extensions other_files)\n  SET(input_dir ${CMAKE_CURRENT_SOURCE_DIR})\n  LATEX_GET_OUTPUT_PATH(output_dir)\n\n  GET_FILENAME_COMPONENT(extension \"${input_file}\" EXT)\n\n  STRING(REGEX REPLACE \"\\\\.[^.]*\\$\" ${output_extension} output_file\n    \"${input_file}\")\n\n  LATEX_LIST_CONTAINS(is_type ${extension} ${output_extensions})\n  IF (is_type)\n    IF (convert_flags)\n      LATEX_ADD_CONVERT_COMMAND(${output_dir}/${output_file}\n        ${input_dir}/${input_file} ${output_extension} ${extension}\n        \"${convert_flags}\")\n      SET(${output_files} ${${output_files}} ${output_dir}/${output_file})\n    ELSE (convert_flags)\n      # As a shortcut, we can just copy the file.\n      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${input_file}\n        COMMAND ${CMAKE_COMMAND}\n        ARGS -E copy ${input_dir}/${input_file} ${output_dir}/${input_file}\n        DEPENDS ${input_dir}/${input_file}\n        )\n      SET(${output_files} ${${output_files}} ${output_dir}/${input_file})\n    ENDIF (convert_flags)\n  ELSE (is_type)\n    SET(do_convert TRUE)\n    # Check to see if there is another input file of the appropriate type.\n    FOREACH(valid_extension ${output_extensions})\n      STRING(REGEX REPLACE \"\\\\.[^.]*\\$\" ${output_extension} try_file\n        \"${input_file}\")\n      LATEX_LIST_CONTAINS(has_native_file \"${try_file}\" ${other_files})\n      IF (has_native_file)\n        SET(do_convert FALSE)\n      ENDIF (has_native_file)\n    ENDFOREACH(valid_extension)\n\n    # If we still need to convert, do it.\n    IF (do_convert)\n      LATEX_ADD_CONVERT_COMMAND(${output_dir}/${output_file}\n        ${input_dir}/${input_file} ${output_extension} ${extension}\n        \"${convert_flags}\")\n      SET(${output_files} ${${output_files}} ${output_dir}/${output_file})\n    ENDIF (do_convert)\n  ENDIF (is_type)\nENDMACRO(LATEX_CONVERT_IMAGE)\n\n# Adds custom commands to process the given files for dvi and pdf builds.\n# Adds the output files to the given variables (does not replace).\nMACRO(LATEX_PROCESS_IMAGES dvi_outputs pdf_outputs)\n  LATEX_GET_OUTPUT_PATH(output_dir)\n  FOREACH(file ${ARGN})\n    IF (EXISTS \"${CMAKE_CURRENT_SOURCE_DIR}/${file}\")\n      GET_FILENAME_COMPONENT(extension \"${file}\" EXT)\n      SET(convert_flags)\n\n      # Check to see if we need to downsample the image.\n      LATEX_LIST_CONTAINS(is_raster extension\n        ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS}\n        ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS})\n      IF (LATEX_SMALL_IMAGES)\n        IF (is_raster)\n          SET(convert_flags -resize ${LATEX_RASTER_SCALE}%)\n        ENDIF (is_raster)\n      ENDIF (LATEX_SMALL_IMAGES)\n\n      # Make sure the output directory exists.\n      GET_FILENAME_COMPONENT(path \"${output_dir}/${file}\" PATH)\n      MAKE_DIRECTORY(\"${path}\")\n\n      # Do conversions for dvi.\n      LATEX_CONVERT_IMAGE(${dvi_outputs} \"${file}\" .eps \"${convert_flags}\"\n        \"${LATEX_DVI_IMAGE_EXTENSIONS}\" \"${ARGN}\")\n\n      # Do conversions for pdf.\n      IF (is_raster)\n        LATEX_CONVERT_IMAGE(${pdf_outputs} \"${file}\" .png \"${convert_flags}\"\n          \"${LATEX_PDF_IMAGE_EXTENSIONS}\" \"${ARGN}\")\n      ELSE (is_raster)\n        LATEX_CONVERT_IMAGE(${pdf_outputs} \"${file}\" .pdf \"${convert_flags}\"\n          \"${LATEX_PDF_IMAGE_EXTENSIONS}\" \"${ARGN}\")\n      ENDIF (is_raster)\n    ELSE (EXISTS \"${CMAKE_CURRENT_SOURCE_DIR}/${file}\")\n      MESSAGE(\"Could not find file \\\"${CMAKE_CURRENT_SOURCE_DIR}/${file}\\\"\")\n    ENDIF (EXISTS \"${CMAKE_CURRENT_SOURCE_DIR}/${file}\")\n  ENDFOREACH(file)\nENDMACRO(LATEX_PROCESS_IMAGES)\n\nMACRO(ADD_LATEX_IMAGES)\n  MESSAGE(\"The ADD_LATEX_IMAGES macro is deprecated.  Image directories are specified with LATEX_ADD_DOCUMENT.\")\nENDMACRO(ADD_LATEX_IMAGES)\n\nMACRO(LATEX_COPY_GLOBBED_FILES pattern dest)\n  FILE(GLOB file_list ${pattern})\n  FOREACH(in_file ${file_list})\n    GET_FILENAME_COMPONENT(out_file ${in_file} NAME)\n    CONFIGURE_FILE(${in_file} ${dest}/${out_file} COPYONLY)\n  ENDFOREACH(in_file)\nENDMACRO(LATEX_COPY_GLOBBED_FILES)\n\nMACRO(LATEX_COPY_INPUT_FILE file)\n  LATEX_GET_OUTPUT_PATH(output_dir)\n\n  IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})\n    GET_FILENAME_COMPONENT(path ${file} PATH)\n    FILE(MAKE_DIRECTORY ${output_dir}/${path})\n\n    LATEX_LIST_CONTAINS(use_config ${file} ${LATEX_CONFIGURE})\n    IF (use_config)\n      CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}\n        ${output_dir}/${file}\n        @ONLY\n        )\n      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file}\n        COMMAND ${CMAKE_COMMAND}\n        ARGS ${CMAKE_BINARY_DIR}\n        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}\n        )\n    ELSE (use_config)\n      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file}\n        COMMAND ${CMAKE_COMMAND}\n        ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${output_dir}/${file}\n        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}\n        )\n    ENDIF (use_config)\n  ELSE (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})\n    IF (EXISTS ${output_dir}/${file})\n      # Special case: output exists but input does not.  Assume that it was\n      # created elsewhere and skip the input file copy.\n    ELSE (EXISTS ${output_dir}/${file})\n      MESSAGE(\"Could not find input file ${CMAKE_CURRENT_SOURCE_DIR}/${file}\")\n    ENDIF (EXISTS ${output_dir}/${file})\n  ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file})\nENDMACRO(LATEX_COPY_INPUT_FILE)\n\n#############################################################################\n# Commands provided by the UseLATEX.cmake \"package\"\n#############################################################################\n\nMACRO(LATEX_USAGE command message)\n  MESSAGE(SEND_ERROR\n    \"${message}\\nUsage: ${command}(<tex_file>\\n           [BIBFILES <bib_file> <bib_file> ...]\\n           [INPUTS <tex_file> <tex_file> ...]\\n           [IMAGE_DIRS <directory1> <directory2> ...]\\n           [IMAGES <image_file1> <image_file2>\\n           [CONFIGURE <tex_file> <tex_file> ...]\\n           [DEPENDS <tex_file> <tex_file> ...]\\n           [USE_INDEX] [USE_GLOSSARY] [DEFAULT_PDF] [MANGLE_TARGET_NAMES])\"\n    )\nENDMACRO(LATEX_USAGE command message)\n\n# Parses arguments to ADD_LATEX_DOCUMENT and ADD_LATEX_TARGETS and sets the\n# variables LATEX_TARGET, LATEX_IMAGE_DIR, LATEX_BIBFILES, LATEX_DEPENDS, and\n# LATEX_INPUTS.\nMACRO(PARSE_ADD_LATEX_ARGUMENTS command)\n  LATEX_PARSE_ARGUMENTS(\n    LATEX\n    \"BIBFILES;INPUTS;IMAGE_DIRS;IMAGES;CONFIGURE;DEPENDS\"\n    \"USE_INDEX;USE_GLOSSARY;USE_GLOSSARIES;DEFAULT_PDF;MANGLE_TARGET_NAMES\"\n    ${ARGN}\n    )\n\n  # The first argument is the target latex file.\n  IF (LATEX_DEFAULT_ARGS)\n    LATEX_CAR(LATEX_MAIN_INPUT ${LATEX_DEFAULT_ARGS})\n    LATEX_CDR(LATEX_DEFAULT_ARGS ${LATEX_DEFAULT_ARGS})\n    GET_FILENAME_COMPONENT(LATEX_TARGET ${LATEX_MAIN_INPUT} NAME_WE)\n  ELSE (LATEX_DEFAULT_ARGS)\n    LATEX_USAGE(${command} \"No tex file target given to ${command}.\")\n  ENDIF (LATEX_DEFAULT_ARGS)\n\n  IF (LATEX_DEFAULT_ARGS)\n    LATEX_USAGE(${command} \"Invalid or depricated arguments: ${LATEX_DEFAULT_ARGS}\")\n  ENDIF (LATEX_DEFAULT_ARGS)\n\n  # Backward compatibility between 1.6.0 and 1.6.1.\n  IF (LATEX_USE_GLOSSARIES)\n    SET(LATEX_USE_GLOSSARY TRUE)\n  ENDIF (LATEX_USE_GLOSSARIES)\nENDMACRO(PARSE_ADD_LATEX_ARGUMENTS)\n\nMACRO(ADD_LATEX_TARGETS)\n  LATEX_GET_OUTPUT_PATH(output_dir)\n  PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_TARGETS ${ARGV})\n\n  # Set up target names.\n  IF (LATEX_MANGLE_TARGET_NAMES)\n    SET(dvi_target      ${LATEX_TARGET}_dvi)\n    SET(pdf_target      ${LATEX_TARGET}_pdf)\n    SET(ps_target       ${LATEX_TARGET}_ps)\n    SET(safepdf_target  ${LATEX_TARGET}_safepdf)\n    SET(html_target     ${LATEX_TARGET}_html)\n    SET(auxclean_target ${LATEX_TARGET}_auxclean)\n  ELSE (LATEX_MANGLE_TARGET_NAMES)\n    SET(dvi_target      dvi)\n    SET(pdf_target      pdf)\n    SET(ps_target       ps)\n    SET(safepdf_target  safepdf)\n    SET(html_target     html)\n    SET(auxclean_target auxclean)\n  ENDIF (LATEX_MANGLE_TARGET_NAMES)\n\n  # For each directory in LATEX_IMAGE_DIRS, glob all the image files and\n  # place them in LATEX_IMAGES.\n  FOREACH(dir ${LATEX_IMAGE_DIRS})\n    FOREACH(extension ${LATEX_IMAGE_EXTENSIONS})\n      FILE(GLOB files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*${extension})\n      FOREACH(file ${files})\n        GET_FILENAME_COMPONENT(filename ${file} NAME)\n        SET(LATEX_IMAGES ${LATEX_IMAGES} ${dir}/${filename})\n      ENDFOREACH(file)\n    ENDFOREACH(extension)\n  ENDFOREACH(dir)\n\n  SET(dvi_images)\n  SET(pdf_images)\n  LATEX_PROCESS_IMAGES(dvi_images pdf_images ${LATEX_IMAGES})\n\n  SET(make_dvi_command\n    ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT})\n  SET(make_pdf_command\n    ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT})\n\n  SET(make_dvi_depends ${LATEX_DEPENDS} ${dvi_images})\n  SET(make_pdf_depends ${LATEX_DEPENDS} ${pdf_images})\n  FOREACH(input ${LATEX_MAIN_INPUT} ${LATEX_INPUTS})\n    SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${input})\n    SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${input})\n  ENDFOREACH(input)\n\n  IF (LATEX_USE_GLOSSARY)\n    FOREACH(dummy 0 1)   # Repeat these commands twice.\n      SET(make_dvi_command ${make_dvi_command}\n        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${CMAKE_COMMAND}\n        -D LATEX_BUILD_COMMAND=makeglossaries\n        -D LATEX_TARGET=${LATEX_TARGET}\n        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}\n        -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS}\n        -P ${LATEX_USE_LATEX_LOCATION}\n        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n        )\n      SET(make_pdf_command ${make_pdf_command}\n        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${CMAKE_COMMAND}\n        -D LATEX_BUILD_COMMAND=makeglossaries\n        -D LATEX_TARGET=${LATEX_TARGET}\n        -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER}\n        -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS}\n        -P ${LATEX_USE_LATEX_LOCATION}\n        COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n        )\n    ENDFOREACH(dummy)\n  ENDIF (LATEX_USE_GLOSSARY)\n\n  IF (LATEX_BIBFILES)\n    SET(make_dvi_command ${make_dvi_command}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET})\n    SET(make_pdf_command ${make_pdf_command}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET})\n    FOREACH (bibfile ${LATEX_BIBFILES})\n      SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${bibfile})\n      SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${bibfile})\n    ENDFOREACH (bibfile ${LATEX_BIBFILES})\n  ENDIF (LATEX_BIBFILES)\n\n  IF (LATEX_USE_INDEX)\n    SET(make_dvi_command ${make_dvi_command}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx)\n    SET(make_pdf_command ${make_pdf_command}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx)\n  ENDIF (LATEX_USE_INDEX)\n\n  SET(make_dvi_command ${make_dvi_command}\n    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT})\n  SET(make_pdf_command ${make_pdf_command}\n    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}\n    COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n    ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT})\n\n  # Add commands and targets for building dvi outputs.\n  ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.dvi\n    COMMAND ${make_dvi_command}\n    DEPENDS ${make_dvi_depends}\n    )\n  IF (LATEX_DEFAULT_PDF)\n    ADD_CUSTOM_TARGET(${dvi_target}\n      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)\n  ELSE (LATEX_DEFAULT_PDF)\n    ADD_CUSTOM_TARGET(${dvi_target}\n      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)\n  ENDIF (LATEX_DEFAULT_PDF)\n\n  # Add commands and targets for building pdf outputs (with pdflatex).\n  IF (PDFLATEX_COMPILER)\n    ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.pdf\n      COMMAND ${make_pdf_command}\n      DEPENDS ${make_pdf_depends}\n      )\n    IF (LATEX_DEFAULT_PDF)\n      ADD_CUSTOM_TARGET(${pdf_target}\n        DEPENDS ${output_dir}/${LATEX_TARGET}.pdf)\n    ELSE (LATEX_DEFAULT_PDF)\n      ADD_CUSTOM_TARGET(${pdf_target}\n        DEPENDS ${output_dir}/${LATEX_TARGET}.pdf)\n    ENDIF (LATEX_DEFAULT_PDF)\n  ENDIF (PDFLATEX_COMPILER)\n\n  IF (DVIPS_CONVERTER)\n    ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${LATEX_TARGET}.ps\n      COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_FLAGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi\n      DEPENDS ${output_dir}/${LATEX_TARGET}.dvi)\n    ADD_CUSTOM_TARGET(${ps_target}\n      DEPENDS ${output_dir}/${LATEX_TARGET}.ps)\n    IF (PS2PDF_CONVERTER)\n      # Since both the pdf and safepdf targets have the same output, we\n      # cannot properly do the dependencies for both.  When selecting safepdf,\n      # simply force a recompile every time.\n      ADD_CUSTOM_TARGET(${safepdf_target}\n        ${CMAKE_COMMAND} -E chdir ${output_dir}\n        ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf\n        )\n      ADD_DEPENDENCIES(${safepdf_target} ${ps_target})\n    ENDIF (PS2PDF_CONVERTER)\n  ENDIF (DVIPS_CONVERTER)\n\n  IF (LATEX2HTML_CONVERTER)\n    ADD_CUSTOM_TARGET(${html_target}\n      ${CMAKE_COMMAND} -E chdir ${output_dir}\n      ${LATEX2HTML_CONVERTER} ${LATEX2HTML_CONVERTER_FLAGS} ${LATEX_MAIN_INPUT}\n      )\n    ADD_DEPENDENCIES(${html_target} ${LATEX_MAIN_INPUT} ${LATEX_INPUTS})\n  ENDIF (LATEX2HTML_CONVERTER)\n\n  ADD_CUSTOM_TARGET(${auxclean_target}\n    ${CMAKE_COMMAND} -E remove ${output_dir}/${LATEX_TARGET}.aux ${output_dir}/${LATEX_TARGET}.idx ${output_dir}/${LATEX_TARGET}.ind\n    )\nENDMACRO(ADD_LATEX_TARGETS)\n\nMACRO(ADD_LATEX_DOCUMENT)\n  LATEX_GET_OUTPUT_PATH(output_dir)\n  IF (output_dir)\n    PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_DOCUMENT ${ARGV})\n\n    LATEX_COPY_INPUT_FILE(${LATEX_MAIN_INPUT})\n\n    FOREACH (bib_file ${LATEX_BIBFILES})\n      CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${bib_file}\n        ${output_dir}/${bib_file}\n        COPYONLY)\n      ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${bib_file}\n        COMMAND ${CMAKE_COMMAND}\n        ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${bib_file} ${output_dir}/${bib_file}\n        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${bib_file}\n        )\n    ENDFOREACH (bib_file)\n\n    FOREACH (input ${LATEX_INPUTS})\n      LATEX_COPY_INPUT_FILE(${input})\n    ENDFOREACH(input)\n\n    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.cls ${output_dir})\n    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.bst ${output_dir})\n    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.clo ${output_dir})\n    LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.sty ${output_dir})\n\n    ADD_LATEX_TARGETS(${ARGV})\n  ENDIF (output_dir)\nENDMACRO(ADD_LATEX_DOCUMENT)\n\n#############################################################################\n# Actually do stuff\n#############################################################################\n\nIF (LATEX_BUILD_COMMAND)\n  SET(command_handled)\n\n  IF (\"${LATEX_BUILD_COMMAND}\" STREQUAL makeglossaries)\n    LATEX_MAKEGLOSSARIES()\n    SET(command_handled TRUE)\n  ENDIF (\"${LATEX_BUILD_COMMAND}\" STREQUAL makeglossaries)\n\n  IF (NOT command_handled)\n    MESSAGE(SEND_ERROR \"Unknown command: ${LATEX_BUILD_COMMAND}\")\n  ENDIF (NOT command_handled)\n\nELSE (LATEX_BUILD_COMMAND)\n  # Must be part of the actual configure (included from CMakeLists.txt).\n  LATEX_SETUP_VARIABLES()\nENDIF (LATEX_BUILD_COMMAND)\n"
  },
  {
    "path": "algorithms/flann/code/cmake/flann.pc",
    "content": "# This file was generated by CMake for flann\nprefix=/usr/local\nexec_prefix=${prefix}\nlibdir=${prefix}/lib\nincludedir=${prefix}/include\n\nName: flann\nDescription: Fast Library for Approximate Nearest Neighbors\nVersion: 1.8.4\nRequires: \nLibs: -L${libdir} -lflann_cpp\nCflags: -I${includedir}\n\n"
  },
  {
    "path": "algorithms/flann/code/cmake/flann.pc.in",
    "content": "# This file was generated by CMake for @PROJECT_NAME@\nprefix=@CMAKE_INSTALL_PREFIX@\nexec_prefix=${prefix}\nlibdir=${prefix}/@FLANN_LIB_INSTALL_DIR@\nincludedir=${prefix}/include\n\nName: @PROJECT_NAME@\nDescription: @PKG_DESC@\nVersion: @FLANN_VERSION@\nRequires: @PKG_EXTERNAL_DEPS@\nLibs: -L${libdir} -lflann_cpp\nCflags: -I${includedir}\n\n"
  },
  {
    "path": "algorithms/flann/code/cmake/flann_utils.cmake",
    "content": "macro(GET_OS_INFO)\n    string(REGEX MATCH \"Linux\" OS_IS_LINUX ${CMAKE_SYSTEM_NAME})\n    set(FLANN_LIB_INSTALL_DIR \"lib\")\n    set(FLANN_INCLUDE_INSTALL_DIR\n        \"include/${PROJECT_NAME_LOWER}-${FLANN_MAJOR_VERSION}.${FLANN_MINOR_VERSION}\")\nendmacro(GET_OS_INFO)\n\n\nmacro(DISSECT_VERSION)\n    # Find version components\n    string(REGEX REPLACE \"^([0-9]+).*\" \"\\\\1\"\n        FLANN_VERSION_MAJOR \"${FLANN_VERSION}\")\n    string(REGEX REPLACE \"^[0-9]+\\\\.([0-9]+).*\" \"\\\\1\"\n        FLANN_VERSION_MINOR \"${FLANN_VERSION}\")\n    string(REGEX REPLACE \"^[0-9]+\\\\.[0-9]+\\\\.([0-9]+)\" \"\\\\1\"\n        FLANN_VERSION_PATCH ${FLANN_VERSION})\n    string(REGEX REPLACE \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+(.*)\" \"\\\\1\"\n        FLANN_VERSION_CANDIDATE ${FLANN_VERSION})\n    set(FLANN_SOVERSION \"${FLANN_VERSION_MAJOR}.${FLANN_VERSION_MINOR}\")\nendmacro(DISSECT_VERSION)\n\n\n# workaround a FindHDF5 bug\nmacro(find_hdf5)\n    find_package(HDF5)\n\n    set( HDF5_IS_PARALLEL FALSE )\n    foreach( _dir ${HDF5_INCLUDE_DIRS} )\n        if( EXISTS \"${_dir}/H5pubconf.h\" )\n            file( STRINGS \"${_dir}/H5pubconf.h\" \n                HDF5_HAVE_PARALLEL_DEFINE\n                REGEX \"HAVE_PARALLEL 1\" )\n            if( HDF5_HAVE_PARALLEL_DEFINE )\n                set( HDF5_IS_PARALLEL TRUE )\n            endif()\n        endif()\n    endforeach()\n    set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL\n        \"HDF5 library compiled with parallel IO support\" )\n    mark_as_advanced( HDF5_IS_PARALLEL )\nendmacro(find_hdf5)\n\n\nmacro(flann_add_gtest exe)\n    # add build target\n    add_executable(${exe} EXCLUDE_FROM_ALL ${ARGN})\n    target_link_libraries(${exe} ${GTEST_LIBRARIES})\n    # add dependency to 'tests' target\n    add_dependencies(flann_gtests ${exe})\n\n    # add target for running test\n    string(REPLACE \"/\" \"_\" _testname ${exe})\n    add_custom_target(test_${_testname}\n                    COMMAND ${exe}\n                    ARGS --gtest_print_time\n                    DEPENDS ${exe}\n                    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test\n                    VERBATIM\n                    COMMENT \"Runnint gtest test(s) ${exe}\")\n    # add dependency to 'test' target\n    add_dependencies(flann_gtest test_${_testname})\nendmacro(flann_add_gtest)\n\nmacro(flann_add_cuda_gtest exe)\n    # add build target\n    cuda_add_executable(${exe} EXCLUDE_FROM_ALL ${ARGN})\n    target_link_libraries(${exe} ${GTEST_LIBRARIES})\n    # add dependency to 'tests' target\n    add_dependencies(tests ${exe})\n\n    # add target for running test\n    string(REPLACE \"/\" \"_\" _testname ${exe})\n    add_custom_target(test_${_testname}\n                    COMMAND ${exe}\n                    ARGS --gtest_print_time\n                    DEPENDS ${exe}\n                    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test\n                    VERBATIM\n                    COMMENT \"Runnint gtest test(s) ${exe}\")\n    # add dependency to 'test' target\n    add_dependencies(test test_${_testname})\nendmacro(flann_add_cuda_gtest)\n\nmacro(flann_add_pyunit file)\n    # find test file\n    set(_file_name _file_name-NOTFOUND)\n    find_file(_file_name ${file} ${CMAKE_CURRENT_SOURCE_DIR})\n    if(NOT _file_name)\n        message(FATAL_ERROR \"Can't find pyunit file \\\"${file}\\\"\")\n    endif(NOT _file_name)\n\n    # add target for running test\n    string(REPLACE \"/\" \"_\" _testname ${file})\n    add_custom_target(pyunit_${_testname}\n                    COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/bin/run_test.py ${_file_name}\n                    DEPENDS ${_file_name}\n                    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test\n                    VERBATIM\n                    COMMENT \"Running pyunit test(s) ${file}\" )\n    # add dependency to 'test' target\n    add_dependencies(pyunit_${_testname} flann)\n    add_dependencies(test pyunit_${_testname})\nendmacro(flann_add_pyunit)\n\n\n\nmacro(flann_download_test_data _name _md5)\n    string(REPLACE \"/\" \"_\" _dataset_name dataset_${_name})\n    \n    add_custom_target(${_dataset_name}\n        COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/bin/download_checkmd5.py http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/${_name} ${TEST_OUTPUT_PATH}/${_name} ${_md5}\n        VERBATIM)\n\n    # Also make sure that downloads are done before we run any tests\n    add_dependencies(tests ${_dataset_name})\n\nendmacro(flann_download_test_data)\n"
  },
  {
    "path": "algorithms/flann/code/cmake/uninstall_target.cmake.in",
    "content": "if(NOT EXISTS \"@PROJECT_BINARY_DIR@/install_manifest.txt\")\n    message(FATAL_ERROR \"Cannot find install manifest: \\\"@PROJECT_BINARY_DIR@/install_manifest.txt\\\"\")\nendif(NOT EXISTS \"@PROJECT_BINARY_DIR@/install_manifest.txt\")\n\nfile(READ \"@PROJECT_BINARY_DIR@/install_manifest.txt\" files)\nstring(REGEX REPLACE \"\\n\" \";\" files \"${files}\")\nforeach(file ${files})\n    message(STATUS \"Uninstalling \\\"$ENV{DESTDIR}${file}\\\"\")\n    if(EXISTS \"$ENV{DESTDIR}${file}\")\n        exec_program(\"@CMAKE_COMMAND@\" ARGS \"-E remove \\\"$ENV{DESTDIR}${file}\\\"\"\n            OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)\n        if(NOT \"${rm_retval}\" STREQUAL 0)\n            message(FATAL_ERROR \"Problem when removing \\\"$ENV{DESTDIR}${file}\\\"\")\n        endif(NOT \"${rm_retval}\" STREQUAL 0)\n    else(EXISTS \"$ENV{DESTDIR}${file}\")\n        message(STATUS \"File \\\"$ENV{DESTDIR}${file}\\\" does not exist.\")\n    endif(EXISTS \"$ENV{DESTDIR}${file}\")\nendforeach(file)\n\n"
  },
  {
    "path": "algorithms/flann/code/doc/CMakeLists.txt",
    "content": "find_package(LATEX)\n \nif (EXISTS ${PDFLATEX_COMPILER} AND EXISTS ${BIBTEX_COMPILER})\n    include(${PROJECT_SOURCE_DIR}/cmake/UseLATEX.cmake)\n\n    add_latex_document(manual.tex BIBFILES references.bib IMAGE_DIRS images DEFAULT_PDF)\n\n    add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/manual.pdf\n        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/manual.pdf ${CMAKE_CURRENT_SOURCE_DIR}/manual.pdf\n        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/manual.pdf\n    )\n    add_custom_target(doc DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/manual.pdf)\nendif()\n\ninstall(\n    FILES manual.pdf\n    DESTINATION share/doc/flann\n    OPTIONAL\n)\n"
  },
  {
    "path": "algorithms/flann/code/doc/manual.tex",
    "content": "\\documentclass[letter,10pt]{article}\n\\usepackage{latexsym}\n\\usepackage{amsmath}\n\\usepackage{amssymb}\n\\usepackage{amsthm}\n\\usepackage{amsfonts}\n\\usepackage{epsfig}\n\\usepackage{url}\n\\usepackage{fancyvrb}\n\\usepackage{hyperref}\n\n\n%opening\n\\title{FLANN - Fast Library for Approximate Nearest Neighbors\\\\[0.5cm] User\nManual\\\\[1cm]}\n\n\\author{Marius Muja, mariusm@cs.ubc.ca\\\\David Lowe, lowe@cs.ubc.ca}\n\n\n\\begin{document}\n\n\n \\begin{titlepage}\n\\vspace{10cm}\n\\maketitle\n\\thispagestyle{empty}\n \\end{titlepage}\n\n\n\\section{Introduction}\n\nWe can define the \\emph{nearest neighbor search (NSS)} problem in the\nfollowing way: given a set of points $P=p_1,p_2,\\dots,p_n$ in a metric\nspace $X$, these points must be preprocessed in such a way that given a new\nquery point $q \\in X$, finding the point in $P$ that is nearest to $q$ can\nbe done quickly.\n\nThe problem of nearest neighbor search is one of major importance in a\nvariety of applications such as image recognition, data compression,\npattern recognition and classification, machine learning,  document\nretrieval systems, statistics and data analysis. However, solving this\nproblem in high dimensional spaces seems to be a very difficult task and\nthere is no algorithm that performs significantly better than the standard\nbrute-force search. This has lead to an increasing interest in a class of\nalgorithms that perform approximate nearest neighbor searches, which have\nproven to be a good-enough approximation in most practical applications and\nin most cases, orders of magnitude faster that the algorithms performing\nthe exact searches.\n\nFLANN (Fast Library for Approximate Nearest Neighbors) is a library for\nperforming fast approximate nearest neighbor searches. FLANN is written in\nthe C++ programming language. FLANN can be easily used in many contexts\nthrough the C, MATLAB and Python bindings provided with the library.\n\n\n\n\\subsection{Quick Start}\n\\label{sec:quickstart}\n\n\nThis section contains small examples of how to use the FLANN library from\ndifferent programming languages (C++, C, MATLAB and Python).\n\n\\begin{itemize}\n\n\n\\item \\textbf{C++}\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n// file flann_example.cpp\n\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n#include <stdio.h>\n\nint main(int argc, char** argv)\n{\n    int nn = 3;\n\n    flann::Matrix<float> dataset;\n    flann::Matrix<float> query;\n    flann::load_from_file(dataset, \"dataset.hdf5\",\"dataset\");\n    flann::load_from_file(query, \"dataset.hdf5\",\"query\");\n\n    flann::Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    flann::Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    // construct an randomized kd-tree index using 4 kd-trees\n    flann::Index<flann::L2<float> > index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();                                                                                               \n\n    // do a knn search, using 128 checks\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(128));\n\n    flann::save_to_file(indices,\"result.hdf5\",\"result\");\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n    return 0;\n}\n\n\\end{Verbatim}\n\n\n\\item \\textbf{C}\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n/* file flann_example.c */\n\n#include \"flann.h\"\n#include <stdio.h>\n#include <assert.h>\n\n/* Function that reads a dataset */\nfloat* read_points(char* filename, int *rows, int *cols);\n\nint main(int argc, char** argv)\n{\n   int rows,cols;\n   int t_rows, t_cols;\n   float speedup;\n\n   /* read dataset points from file dataset.dat */\n   float* dataset = read_points(\"dataset.dat\", &rows, &cols);\n   float* testset = read_points(\"testset.dat\", &t_rows, &t_cols);\n\n   /* points in dataset and testset should have the same dimensionality */\n   assert(cols==t_cols);\n\n   /* number of nearest neighbors to search */\n   int nn = 3;\n   /* allocate memory for the nearest-neighbors indices */\n   int* result = (int*) malloc(t_rows*nn*sizeof(int));                                                               \n   /* allocate memory for the distances */\n   float* dists = (float*) malloc(t_rows*nn*sizeof(float));\n\n   /* index parameters are stored here */\n   struct FLANNParameters p = DEFAULT_FLANN_PARAMETERS;\n   p.algorithm = FLANN_INDEX_AUTOTUNED;  /* or FLANN_INDEX_KDTREE, FLANN_INDEX_KMEANS, ... /*\n   p.target_precision = 0.9;  /* want 90% target precision */\n\n   /* compute the 3 nearest-neighbors of each point in the testset */\n   flann_find_nearest_neighbors(dataset, rows, cols, testset, t_rows,\nresult, dists, nn, &p);\n\n   ...\n   free(dataset);\n   free(testset);\n   free(result);\n   free(dists);\n\n   return 0;\n}\n\n\\end{Verbatim}\n\n\n\n\\item \\textbf{MATLAB}\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n% create random dataset and test set\ndataset = single(rand(128,10000));\ntestset = single(rand(128,1000));\n\n% define index and search parameters\nparams.algorithm = 'kdtree';\nparams.trees = 8;\nparams.checks = 64;\n\n% perform the nearest-neighbor search\n[result, dists] = flann_search(dataset,testset,5,params);\n\\end{Verbatim}\n\n\\item \\textbf{Python}\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\nfrom pyflann import *\nfrom numpy import *\nfrom numpy.random import *\n\ndataset = rand(10000, 128)\ntestset = rand(1000, 128)\n\nflann = FLANN()\nresult,dists = flann.nn(dataset,testset,5,algorithm=\"kmeans\",\n               branching=32, iterations=7, checks=16);\n\\end{Verbatim}\n\n\\end{itemize}\n\n\n\n\\section{Downloading and compiling FLANN}\n\\label{sec:downloading_and_compiling}\n\nFLANN can be downloaded from the following address:\n\\begin{center}\n\\texttt{http://www.cs.ubc.ca/$\\sim$mariusm/flann}\n\\end{center}\n\nAfter downloading and unpacking, the following files and directories should\nbe present:\n\\begin{itemize}\n\\item \\texttt{bin}: directory various for scripts and binary files\n\\item \\texttt{doc}: directory containg this documentation\n\\item \\texttt{examples}: directory containg examples of using FLANN\n\\item \\texttt{src}: directory containg the source files\n\\item \\texttt{test}: directory containg unit tests for FLANN\n\\end{itemize}\n\n\n\nTo compile the FLANN library the \\textit{CMake}\\footnote{http://www.cmake.org/} build system is required.\nBelow is an example of how FLANN can be compiled on Linux (replace x.y.z with the corresponding version number).\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n$ cd flann-x.y.z-src\n$ mkdir build\n$ cd build\n$ cmake ..\n$ make\n\\end{Verbatim}\n\nOn windows the steps are very similar:\n \n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n> \"C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\vcvarsall.bat\"\n> cd flann-x.y.z-src\n> mkdir build\n> cd build\n> cmake ..\n> nmake\n\\end{Verbatim}\n\nThere are several compile options that can be configured before FLANN is compiled, for example the build type \n(Release, RelWithDebInfo, Debug) or whether to compile the C, Python or the MATLAB bindings. To change any of this\noptions use the \\texttt{cmake-gui} application after \\texttt{cmake} has finished (see figure \\ref{fig:cmake-gui}).\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\n> cmake-gui .\n\\end{Verbatim}\n\n\\begin{figure}[h]\n  \\begin{center}\n    \\includegraphics[width=0.9\\textwidth]{images/cmake-gui.png}\n    \\caption{Configuring the FLANN compile options}\n    \\label{fig:cmake-gui}\n  \\end{center}\n\\end{figure}\n\n\\subsection{Upgrading from a previous version}\n\nThis section contains changes that you need to be aware of when upgrading from a previous version of FLANN.\n\n\\begin{description}\n \\item[Version 1.7.0] A small breaking API change in \\texttt{flann::Matrix} requires client code to be updated. In order\nto release the memory used by a matrix, use:\n\\begin{Verbatim}[fontsize=\\scriptsize]\n delete[] matrix.ptr();\n\\end{Verbatim}\ninstead of:\n\\begin{Verbatim}[fontsize=\\scriptsize]\n delete[] matrix.data;\n\\end{Verbatim}\nor:\n\\begin{Verbatim}[fontsize=\\scriptsize]\n matrix.free();\n\\end{Verbatim}\nThe member \\texttt{data} of \\texttt{flann::Matrix} is not publicly accessible any more, use the \\texttt{ptr()} method\nto obtain the pointer to the memory buffer.\n\\end{description}\n\n\n\n\\subsection{Compiling FLANN with multithreading support}\n\nFor taking advantage of multithreaded search, the project that uses FLANN needs to be compiled with a compiler that \nsupports the OpenMP standard and the OpenMP support must be enabled. The number of cores to be used can be selected with \nthe \\texttt{cores} field in the \\texttt{SearchParams} structure. By default a single core will be used. \nSetting the \\texttt{cores} field to zero will automatically use as many threads as cores available on the machine.\n\n\\section{Using FLANN}\n\n\\subsection{Using FLANN from C++}\n\nThe core of the FLANN library is written in C++. To make use of the full power \nand flexibility of the templated code one should use the C++ bindings if possible. \nTo use the C++ bindings you only need to include the  the library header file \\texttt{flann.hpp}. An example\nof the compile command that must be used will look something like this:\n\\begin{Verbatim}[fontsize=\\footnotesize]\ng++ flann_example.cpp -I $FLANN_ROOT/include -o flann_example_cpp\n\\end{Verbatim}\nwhere \\texttt{\\$FLANN\\_ROOT} is the library main directory.\n\nThe following sections describe the public C++ API.\n\n\\subsubsection{flann::Index}\n\\label{sec:flann::Index}\nThe FLANN nearest neighbor index class. This class is used to abstract different types of nearest neighbor search\nindexes. The class is templated on the distance functor to be used for computing distances between pairs of features. \n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nnamespace flann\n{\n    template<typename Distance>\n    class Index \n    {\n\ttypedef typename Distance::ElementType ElementType;\n\ttypedef typename Distance::ResultType DistanceType;\n    public:\n        Index(const IndexParams& params, Distance distance = Distance() );\n        \n        Index(const Matrix<ElementType>& points, const IndexParams& params,\n                Distance distance = Distance() );\n\n\t~Index();\n\n\tvoid buildIndex();        \n        \n        void buildIndex(const Matrix<ElementType>& points);\n        \n        void addPoints(const Matrix<ElementType>& points, \n                       float rebuild_threshold = 2);\n        \n        void removePoint(size_t point_id);\n        \n        ElementType* getPoint(size_t point_id);\n\n\tint knnSearch(const Matrix<ElementType>& queries, \n\t\t       Matrix<int>& indices, \n\t\t       Matrix<DistanceType>& dists, \n\t\t       size_t knn, \n\t\t       const SearchParams& params);\n\n        int knnSearch(const Matrix<ElementType>& queries,\n                       std::vector< std::vector<int> >& indices,\n                       std::vector<std::vector<DistanceType> >& dists,\n                       size_t knn,\n                       const SearchParams& params);\n\n\tint radiusSearch(const Matrix<ElementType>& queries, \n\t\t\t Matrix<int>& indices, \n\t\t\t Matrix<DistanceType>& dists, \n\t\t\t float radius, \n\t\t\t const SearchParams& params);\n\n        int radiusSearch(const Matrix<ElementType>& queries,\n                          std::vector< std::vector<int> >& indices,\n                          std::vector<std::vector<DistanceType> >& dists,\n                          float radius,\n                          const SearchParams& params);\n\n\tvoid save(std::string filename);\n\n\tint veclen() const;\n\n\tint size() const;\n\n\tIndexParams getParameters() const;\n\n        flann_algorithm_t getType() const;\n\n    };\n}\n\\end{Verbatim}\n\n\n\\textbf{The Distance functor}\n\nThe distance functor is a class whose \\texttt{operator()} computes the distance between two features. If the distance is\nalso a kd-tree compatible distance it should also provide an \\texttt{accum\\_dist()} method that computes the distance\nbetween individual feature dimensions. A typical distance functor looks like this (see the \\texttt{dist.h} file for more\nexamples):\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\ntemplate<class T>\nstruct L2\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, \n                          ResultType /*worst_dist*/ = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff;\n        for(size_t i = 0; i < size; ++i ) {\n            diff = *a++ - *b++;\n            result += diff*diff;\n        }\n        return result;\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return (a-b)*(a-b);\n    }\n};\n\\end{Verbatim}\n\nIn addition to \\texttt{operator()} and \\texttt{accum\\_dist()}, a distance functor should also define the\n\\texttt{ElementType} and the \\texttt{ResultType} as the types of the elements it operates on and the type of the result\nit computes.\n\nIf a distance functor can be used as a kd-tree distance (meaning that the full distance between a pair of features can\nbe accumulated from the partial distances between the individual dimensions) a typedef \\texttt{is\\_kdtree\\_distance}\nshould be present inside the distance functor. If the distance is not a kd-tree distance, but it's a distance in a\nvector space (the individual dimensions of the elements it operates on can be accessed independently) a typedef\n\\texttt{is\\_vector\\_space\\_distance} should be defined inside the functor. If neither typedef is defined, the distance\nis assumed to be a metric distance and will only be used with indexes operating on generic metric distances.\n\\\\\n\n\n\\textbf{flann::Index::Index}\nConstructs a nearest neighbor search index for a given dataset.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nIndex(const IndexParams& params, Distance distance = Distance() );\n\nIndex(const Matrix<ElementType>& points, const IndexParams& params,\n        Distance distance = Distance() );\n\\end{Verbatim}\n\\begin{description}\n\\item[features] Matrix containing the features(points) that should be indexed, stored in a row-major order (one point \non each row of the matrix). The size of the matrix is $num\\_features \\times dimensionality$.\n\n\\item[params] Structure containing the index parameters. The type of index that will be constructed depends on the type \nof this parameter. The possible parameter types are:\n\n\\textbf{LinearIndexParams} When passing an object of this type, the index will perform a linear, brute-force search.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct LinearIndexParams : public IndexParams \n{\n};\n\\end{Verbatim}\n\n\\textbf{KDTreeIndexParams} When passing an object of this type the index constructed will consist of a set \nof randomized kd-trees which will be searched in parallel.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct KDTreeIndexParams : public IndexParams\n{\n      KDTreeIndexParams( int trees = 4 );\n};\n\\end{Verbatim}\n\\begin{description}\n \\item[trees] The number of parallel kd-trees to use. Good values are in the range [1..16]\n\\end{description}\n\n\\textbf{KMeansIndexParams} When passing an object of this type the index constructed will be a hierarchical k-means tree. \n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct KMeansIndexParams : public IndexParams\n{\n\tKMeansIndexParams( int branching = 32,\n\t\t\tint iterations = 11,\n\t\t\tflann_centers_init_t centers_init = FLANN_CENTERS_RANDOM,\n\t\t\tfloat cb_index = 0.2 );\n};\n\\end{Verbatim}\n\\begin{description}\n\\item[branching]{ The branching factor to use for the hierarchical k-means tree }\n\\item[iterations]{ The maximum number of iterations to use in the k-means clustering \n\t\t    stage when building the k-means tree. If a value of -1 is used here, it means\n\t\t    that the k-means clustering should be iterated until convergence}\n\\item[centers\\_init]{ The algorithm to use for selecting the initial\n\t\t  centers when performing a k-means clustering step. The possible values are\n\t\t  CENTERS\\_RANDOM (picks the initial cluster centers randomly), CENTERS\\_GONZALES (picks the\n\t\t  initial centers using Gonzales' algorithm) and CENTERS\\_KMEANSPP (picks the initial\n\t\tcenters using the algorithm suggested in \\cite{arthur_kmeanspp_2007}) }\n\\item[cb\\_index]{ This parameter (cluster boundary index) influences the\n\t\t  way exploration is performed in the hierarchical kmeans tree. When \\texttt{cb\\_index} is zero\n\t\t  the next kmeans domain to be explored is choosen to be the one with the closest center. \n\t\t  A value greater then zero also takes into account the size of the domain.}\n\\end{description}\n\n\n\\textbf{CompositeIndexParams} When using a parameters object of this type the index created combines the randomized\nkd-trees \n        and the hierarchical k-means tree.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct CompositeIndexParams : public IndexParams\n{\n        CompositeIndexParams( int trees = 4,\n                          int branching = 32,\n                          int iterations = 11,\n                          flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, \n                          float cb_index = 0.2 );\n};\n\\end{Verbatim}\n\n\n\\textbf{KDTreeSingleIndexParams} When passing an object of this type the index will contain a single kd-tree\noptimized for searching lower dimensionality data (for example 3D point clouds)\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct KDTreeSingleIndexParams : public IndexParams\n{\n      KDTreeSingleIndexParams( int leaf_max_size = 10 );\n};\n\\end{Verbatim}\n\\begin{description}\n \\item[max\\_leaf\\_size] The maximum number of points to have in a leaf for not branching the tree any more.\n\\end{description}\n\n\\textbf{KDTreeCuda3dIndexParams} When passing an object of this type the index will be a single kd-tree that \nis built and performs searches on a CUDA compatible GPU. Search performance is best for large numbers of search and query points.\nFor more information, see section \\ref{sec:flann::cuda}\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct KDTreeCuda3dIndexParams : public IndexParams\n{\n    KDTreeCuda3dIndexParams( int leaf_max_size = 64 );\n};\n\\end{Verbatim}\n\\begin{description}\n \\item[max\\_leaf\\_size] The maximum number of points to have in a leaf for not branching the tree any more.\n\\end{description}\n\n\n\\textbf{HierarchicalClusteringIndexParams} When passing an object of this type the index constructed will be a\nhierarchical clustering index. This type of index works with any metric distance and can be used for matching \nbinary features using Hamming distances.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct HierarchicalClusteringIndexParams : public IndexParams\n{\n    HierarchicalClusteringIndexParams(int branching = 32,\n                              flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM,\n                              int trees = 4, int leaf_max_size = 100)\n};\n\\end{Verbatim}\n\\begin{description}\n\\item[branching]{ The branching factor to use for the hierarchical clustering tree }\n\\item[centers\\_init]{ The algorithm to use for selecting the initial\n                  centers when performing a k-means clustering step. The possible values are\n                  CENTERS\\_RANDOM (picks the initial cluster centers randomly), CENTERS\\_GONZALES (picks the\n                  initial centers using Gonzales' algorithm) and CENTERS\\_KMEANSPP (picks the initial\n                centers using the algorithm suggested in \\cite{arthur_kmeanspp_2007}) }\n\\item[trees] The number of parallel trees to use. Good values are in the range [3..8]\n\\item[leaf\\_size] The maximum number of points a leaf node should contain.\n\\end{description}\n\n\n\\textbf{LshIndexParams} When passing an object of this type the index constructed will be a multi-probe LSH\n(Locality-Sensitive Hashing) index. This type of index can only be used for matching binary features using Hamming\ndistances.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct LshIndexParams : public IndexParams\n{\n    LshIndexParams(unsigned int table_number = 12, \n                  unsigned int key_size = 20, \n                  unsigned int multi_probe_level = 2);\n};\n\\end{Verbatim}\n\\begin{description}\n\\item[table\\_number]{ The number of hash tables to use }\n\\item[key\\_size]{ The length of the key in the hash tables}\n\\item[multi\\_probe\\_level] Number of levels to use in multi-probe (0 for standard LSH)\n\\end{description}\n\n\n\\textbf{AutotunedIndexParams}\n  When passing an object of this type the index created is automatically tuned to offer \nthe best performance, by choosing the optimal index type (randomized kd-trees, hierarchical kmeans, linear) and parameters for the\ndataset provided.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct AutotunedIndexParams : public IndexParams\n{\n\tAutotunedIndexParams( float target_precision = 0.9,\n\t\t\t  float build_weight = 0.01,\n\t\t\t  float memory_weight = 0,\n\t\t\t  float sample_fraction = 0.1 );\n};\n\\end{Verbatim}\n\\begin{description}\n\\item[target\\_precision]{ Is a number between 0 and 1 specifying the\npercentage of the approximate nearest-neighbor searches that return the\nexact nearest-neighbor. Using a higher value for this parameter gives\nmore accurate results, but the search takes longer. The optimum value\nusually depends on the application. }\n\n\\item[build\\_weight]{ Specifies the importance of the\nindex build time raported to the nearest-neighbor search time. In some\napplications it's acceptable for the index build step to take a long time\nif the subsequent searches in the index can be performed very fast. In\nother applications it's required that the index be build as fast as\npossible even if that leads to slightly longer search times.}\n\n\\item[memory\\_weight]{Is used to specify the tradeoff between\ntime (index build time and search time) and memory used by the index. A\nvalue less than 1 gives more importance to the time spent and a value\ngreater than 1 gives more importance to the memory usage.}\n\n\\item[sample\\_fraction]{Is a number between 0 and 1 indicating what fraction\nof the dataset to use in the automatic parameter configuration algorithm. Running the \nalgorithm on the full dataset gives the most accurate results, but for\nvery large datasets can take longer than desired. In such case using just a fraction of the\ndata helps speeding up this algorithm while still giving good approximations of the\noptimum parameters.}\n\\end{description}\n\n\\textbf{SavedIndexParams}\nThis object type is used for loading a previously saved index from the disk.\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct SavedIndexParams : public IndexParams\n{\n      SavedIndexParams( std::string filename );\n};\n\\end{Verbatim}\n\\begin{description}\n\\item[filename]{ The filename in which the index was saved. }\n\\end{description}\n\\end{description}\n\n\\subsubsection{flann::Index::buildIndex}\nBuilds the nearest neighbor search index. There are two versions of the \\texttt{buildIndex} method, one that\nuses the points provided as argument and one that uses the points provided to the constructor when the object was\nconstructed.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nvoid buildIndex();        \n\nvoid buildIndex(const Matrix<ElementType>& points);\n\\end{Verbatim}\n\n\\subsubsection{flann::Index::addPoints}\nThe \\texttt{addPoints} method can be used to incrementally add points to the index after the index was build.\nTo avoid the index getting unbalanced, the \\texttt{addPoints} method has the option of rebuilding the index after a\nlarge number of points have been added. The \\texttt{rebuild\\_threshold} parameter controls when the index is\nrebuild, by default this is done when it doubles in size (\\texttt{rebuild\\_threshold} = 2).\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nvoid addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2);\n\\end{Verbatim}\n\n\\subsubsection{flann::Index::removePoint}\nThe \\texttt{removePoint} method removes one point with the specified \\texttt{point\\_id} from the index. The indices\n (of the remaining points) returned by the nearest neighbor operations do not change when points are removed from the\nindex.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nvoid removePoint(size_t point_id);\n\\end{Verbatim}\n\n\\subsubsection{flann::Index::getPoint}\nThe \\texttt{getPoint} method returns a pointer to the data point with the specified \\texttt{point\\_id}.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nElementType* getPoint(size_t point_id);\n\\end{Verbatim}\n\n\\subsubsection{flann::Index::knnSearch}\nPerforms a K-nearest neighbor search for a set of query points. There are two signatures for this\nmethod, one that takes pre-allocated \\texttt{flann::Matrix} objects for returning the indices of and distances to the\nneighbors found, and one that takes \\texttt{std::vector<std::vector>} that will re resized automatically as needed.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint Index::knnSearch(const Matrix<ElementType>& queries,\n\t\tMatrix<int>& indices, \n\t\tMatrix<DistanceType>& dists,\n\t\tsize_t knn,\n\t\tconst SearchParams& params);\n\nint Index::knnSearch(const Matrix<ElementType>& queries,\n                std::vector< std::vector<int> >& indices,\n                std::vector<std::vector<DistanceType> >& dists,\n                size_t knn,\n                const SearchParams& params);\n\\end{Verbatim}\n\\begin{description}\n\\item[queries]{Matrix containing the query points. Size of matrix is ($num\\_queries \\times dimentionality $)}\n\\item[indices]{Matrix that will contain the indices of the K-nearest neighbors found (size should be at least\n$num\\_queries \\times knn$ for the pre-allocated version).}\n\\item[dists]{Matrix that will contain the distances to the K-nearest neighbors found (size should be at least\n$num\\_queries \\times knn$ for the pre-allocated version).}\n\\item[knn]{Number of nearest neighbors to search for.}\n\\item[params]{Search parameters.} Structure containing parameters used during search.\n\n\\textbf{SearchParameters}\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct SearchParams\n{\n\tSearchParams(int checks = 32,\n\t\t  float eps = 0,\n\t\t  bool sorted = true);\n\n    int checks;\n    float eps;\n    bool sorted;\n    int max_neighbors;\n    tri_type use_heap;\n    int cores;\n    bool matrices_in_gpu_ram;\n};\n\\end{Verbatim}\n\\begin{description}\n \\item[checks] specifies the maximum leafs to visit when searching for neighbours. A\nhigher value for this parameter would give better search precision, but\nalso take more time. For all leafs to be checked use the value \\texttt{CHECKS\\_UNLIMITED}.\nIf automatic configuration was used when the index was created, the number of checks \nrequired to achieve the specified precision was also computed, to use that value specify \\texttt{CHECKS\\_AUTOTUNED}.\n \\item[eps] Search for eps-approximate neighbors (only used by KDTreeSingleIndex and KDTreeCuda3dIndex).\n \\item[sorted] Used only by radius search, specifies if the neighbors returned should be sorted by distance.\n \\item[max\\_neighbours] Specifies the maximum number of neighbors radius search should return (default: -1 =\nunlimited). Only used for radius search.\n \\item[use\\_heap] Use a heap data structure to manage the list of neighbors internally (possible values: FLANN\\_False,\nFLANN\\_True, FLANN\\_Undefined). A heap is more efficient for a large number of neighbors and less efficient for a small\nnumber of neighbors. Default value is FLANN\\_Undefined, which lets the code choose the best option depending on the\nnumber of neighbors requested. Only used for KNN search.\n \\item[cores] How many cores to assign to the search (specify 0 for automatic core selection).\n \\item[matrices\\_in\\_gpu\\_ram] for GPU search indicates if matrices are already in GPU ram.\n\\end{description}\n\\end{description}\n\n\n\\subsubsection{flann::Index::radiusSearch}\nPerforms a radius nearest neighbor search for a set of query points. There are two signatures for this method,\none that takes pre-allocated \\texttt{flann::Matrix} objects for returning the indices of and distances to the neighbors\nfound, and one that takes \\texttt{std::vector<std::vector>} that will resized automatically as needed.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint Index::radiusSearch(const Matrix<ElementType>& queries,\n\t\t  Matrix<int>& indices,\n\t\t  Matrix<DistanceType>& dists,\n\t\t  float radius,\n\t\t  const SearchParams& params); \n\nint Index::radiusSearch(const Matrix<ElementType>& queries,\n                  std::vector< std::vector<int> >& indices,\n                  std::vector<std::vector<DistanceType> >& dists,\n                  float radius,\n                  const SearchParams& params);\n\\end{Verbatim}\n\n\\begin{description}\n\\item[queries]{The query point. Size of matrix is ($num\\_queries \\times dimentionality $).}\n\\item[indices]{Matrix that will contain the indices of the K-nearest neighbors found. For the pre-allocated version,\nonly as many neighbors are returned as many columns in this matrix. If fewer neighbors are found than\ncolumns in this matrix, the element after that last index returned is -1. In case of the std::vector version, the rows\nwill be resized as needed to fit all the neighbors to be returned, except if the ``max\\_neighbors'' search parameter is\nset.}\n\\item[dists]{Matrix that will contain the distances to the K-nearest neighbors found. The same number of values are\nreturned here as for the \\texttt{indices} matrix.}\n\\item[radius]{The search radius}\n\\item[params]{Search parameters}\n\\end{description}\nThe method returns the number of nearest neighbors found.\n\n\n\\subsubsection{flann::Index::save}\nSaves the index to a file.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n  void Index::save(std::string filename);\n\\end{Verbatim}\n\\begin{description}\n\\item[filename]{The file to save the index to}\n\\end{description}\n\n\\subsubsection{flann::hierarchicalClustering}\n\\label{flann::hierarchicalClustering}\nClusters the given points by constructing a hierarchical k-means tree and choosing a cut in the tree that minimizes the clusters' variance.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\ntemplate <typename Distance>\nint hierarchicalClustering(const Matrix<typename Distance::ElementType>& features, \n\t\t\tMatrix<typename Distance::ResultType>& centers,\n\t\t\tconst KMeansIndexParams& params, \n\t\t        Distance d = Distance())\n\\end{Verbatim}\n\\begin{description}\n\\item[features]{The points to be clustered}\n\\item[centers]{The centers of the clusters obtained. The number of rows in this matrix represents the number of clusters desired.\nHowever, because of the way the cut in the hierarchical tree is choosen, the number of clusters computed will be\n the highest number of the form $(branching-1)*k+1$ that's lower than the number of clusters desired, where $branching$ is the tree's \nbranching factor (see description of the KMeansIndexParams).  }\n\\item[params]{Parameters used in the construction of the hierarchical k-means tree}\n\\end{description}\nThe function returns the number of clusters computed.\n\n\\subsubsection{flann::KdTreeCuda3dIndex}\n\\label{sec:flann::cuda}\nFLANN provides a CUDA implementation of the kd-tree build and search algorithms to improve the build and query speed for large 3d data sets. This section will provide all the necessary information to use the \\texttt{KdTreeCuda3dIndex} index type.\n\n\\textbf{Building:}\nIf CMake detects a CUDA install during the build (see section \\ref{sec:downloading_and_compiling}), a library \\texttt{libflann\\_cuda.so} will be built. \n\n\\textbf{Basic Usage:}\nTo be able to use the new index type, you have to include the FLANN header this way:\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n#define FLANN_USE_CUDA\n#include <flann/flann.hpp>\n\\end{Verbatim}\nIf you define the symbol \\texttt{FLANN\\_USE\\_CUDA} before including the FLANN header, you will have to link \\texttt{libflann\\_cuda.so} or \\texttt{libflann\\_cuda\\_s.a} with your project. \nHowever, you will not have to compile your source code with \\texttt{nvcc}, except if you use other CUDA code, of course.\n\nYou can then create your index by using the \\texttt{KDTreeCuda3dIndexParams} to create the index. The index will take care of copying all the data from and to the GPU for you, both \nfor index creation and search.\n\nA word of caution: A general guideline for deciding whether to use the CUDA kd tree or a (multi-threaded) CPU implementation is hard to give, since it depends on the combination of CPU and GPU in each system and the data sets.\nFor example, on a system with a Phenom II 955 CPU and a Geforce GTX 260 GPU, the maximum search speedup on a synthetic (random) data set is a factor of about 8-9 vs the single-core CPU search, and starts to be reached at about 100k search and query points. (This includes transfer times.)\nBuild time does not profit as much from the GPU acceleration; here the benefit is about 2x at 200k points, but this largely depends on the data set. The only way to know which implementation is best suited is to try it.\n\n\\textbf{Advanced Usage:}\nIn some cases, you might already have your data in a buffer on the GPU. In this case, you can re-use these buffers instead of copying the buffers back to system RAM for index creation and search.\nThe way to do this is to pass GPU pointers via the \\texttt{flann::Matrix} inputs and tell the index via the index and search params to treat the pointers as GPU pointers.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nthrust::device_vector<float4>  points_vector( n_points );\n// ... fill vector here...\n\nfloat* gpu_pointer = (float*)thrust::raw_pointer_cast(&points_vector[0]);\nflann::Matrix<float> matrix_gpu(gpu_pointer,n_points,3, 4);\n\nflann::KDTreeCuda3dIndexParams params;\nparams[\"input_is_gpu_float4\"]=true;\nflann::Index<flann::L2<float> > flannindex( matrix_gpu, params  );\nflannindex.buildIndex();\n\\end{Verbatim}\n\\begin{description}\n \\item First, a GPU buffer of float4 values is created and filled with points. \\footnote{For index creation, only \\texttt{float4} points are supported, \\texttt{float3} or structure-of-array (SOA) representations are currently not supported since\n\\texttt{float4} proved to be best in terms of access speed for tree creation and search.}\n \\item Then, a GPU pointer to the buffer is stored in a flann matrix with 3 columns and a stride of 4 (since the last element in the \\texttt{float4} is unused).\n \\item Last, the index is created. The \\texttt{input\\_is\\_gpu\\_float4} flag tells the index to treat the matrix as a gpu buffer.\n\\end{description}\n\nSimilarly, you can specify GPU buffers for the search routines that return the result via flann matrices (but not for those that return them via \\texttt{std::vector}s).\nTo do this, the pointers in the index and dist matrices have to point to GPU buffers and the \\texttt{cols} value has to be set to 3 (as we are dealing with 3d points). Here, any value for \\texttt{stride} can be used.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflann::Matrix<int> indices_gpu(gpu_pointer_indices,n_points, knn, stride);\nflann::Matrix<float> dists_gpu(gpu_pointer_dists,n_points, knn, stride);\n\nflann::SearchParams params;\nparams.matrices_in_gpu_ram = true;\n\nflannindex.knnSearch( queries_gpu ,indices_gpu,dists_gpu,knn, params);\n\\end{Verbatim}\n\\begin{description}\n \\item Note that you cannot mix matrices in system and CPU ram here!\n\\end{description}\n\n\\textbf{Search Parameters:}\nThe search routines support three parameters:\n\\begin{itemize}\n \\item \\texttt{eps} - used for approximate knn search. The maximum possible error is $e= d_{best} * eps$, i.e. the distance of the returned neighbor is at maximum $eps$ times larget than the distance to the real best neighbor.\n \\item \\texttt{use\\_heap} - used in knn and radius search. If set to true, a heap structure will be used in the search to keep track of the distance to the farthest neighbor. Beneficial with about $k>64$ elements.\n \\item \\texttt{sorted} - if set to true, the results of the radius and knn searches will be sorted in ascending order by their distance to the query point.\n \\item \\texttt{matrices\\_in\\_gpu\\_ram} - set to true to indicate that all (input and output) matrices are located in GPU RAM.\n\\end{itemize}\n\n\n\\subsection{Using FLANN from C}\n\nFLANN can be used in C programs through the C bindings provided\nwith the library. Because there is no template support in C, there\nare bindings provided for the following data types: \\texttt{unsigned char},\n\\texttt{int}, \\texttt{float} and \\texttt{double}. For each of the functions \nbelow there is a corresponding version for each of the for data types, for example\nfor the function:\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflan_index_t flann_build_index(float* dataset, int rows, int cols, float* speedup,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\nthere are also the following versions:\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflan_index_t flann_build_index_byte(unsigned char* dataset,\n\tint rows, int cols, float* speedup,\n\tstruct FLANNParameters* flann_params);\nflan_index_t flann_build_index_int(int* dataset,\n\tint rows, int cols, float* speedup,\n\tstruct FLANNParameters* flann_params);\nflan_index_t flann_build_index_float(float* dataset,\n\tint rows, int cols, float* speedup,\n\tstruct FLANNParameters* flann_params);\nflan_index_t flann_build_index_double(double* dataset,\n\tint rows, int cols, float* speedup,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\n\n\\subsubsection{flann\\_build\\_index()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflan_index_t flann_build_index(float* dataset,\n\tint rows,\n\tint cols,\n\tfloat* speedup,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\nThis function builds an index and return a reference to it. The arguments\nexpected by this function are as follows:\n\\begin{description}\n \\item[dataset, rows and cols] - are used to specify the input dataset of\npoints: dataset is a pointer to a $\\rm{rows} \\times \\rm{cols}$ matrix\nstored in row-major order (one feature on each row)\n\\item [speedup] - is used to return the approximate speedup over linear\nsearch achieved when using the automatic index and parameter configuration\n(see section \\ref{sec:flann_build_index})\n\\item [flann\\_params] - is a structure containing the parameters passed to\nthe function. This structure is defined as follows:\n\\begin{Verbatim}[fontsize=\\footnotesize]\nstruct FLANNParameters {\n  enum flann_algorithm_t algorithm; \t/* the algorithm to use */\n\n  /* search parameters */\n  int checks;            /* how many leafs (features) to check in one search */\n  float cb_index;        /* cluster boundary index. Used when searching the \n\t\t\t  kmeans tree */\n\n  /*  kdtree index parameters */\n  int trees;                 /* number of randomized trees to use (for kdtree) */\n\n  /* kmeans index parameters */\n  int branching;             /* branching factor (for kmeans tree) */\n  int iterations;            /* max iterations to perform in one kmeans cluetering \n\t\t\t      (kmeans tree) */\n  enum flann_centers_init_t centers_init;  /* algorithm used for picking the initial \n\t\t\t\tcluster centers for kmeans tree */\n\n  /* autotuned index parameters */\n  float target_precision;    /* precision desired (used for autotuning, -1 otherwise) */\n  float build_weight;        /* build tree time weighting factor */\n  float memory_weight;       /* index memory weigthing factor */\n  float sample_fraction;     /* what fraction of the dataset to use for autotuning */\n\n  /* LSH parameters */\n  unsigned int table_number_; /** The number of hash tables to use */\n  unsigned int key_size_;     /** The length of the key in the hash tables */\n  unsigned int multi_probe_level_; /** Number of levels to use in multi-probe LSH, 0 for standard LSH */\n\n  /* other parameters */\n  enum flann_log_level_t log_level;   /* determines the verbosity of each flann function */\n  long random_seed;          \t\t/* random seed to use */\n};\n\\end{Verbatim}\n\nThe \\texttt{algorithm} and \\texttt{centers\\_init} fields can take the\nfollowing values:\n\\begin{Verbatim}[fontsize=\\footnotesize]\nenum flann_algorithm_t {\n\tFLANN_INDEX_LINEAR = 0,\n\tFLANN_INDEX_KDTREE = 1,\n\tFLANN_INDEX_KMEANS = 2,\n\tFLANN_INDEX_COMPOSITE = 3,\n\tFLANN_INDEX_KDTREE_SINGLE = 3,\n\tFLANN_INDEX_SAVED = 254,\n\tFLANN_INDEX_AUTOTUNED = 255\n};\n\nenum flann_centers_init_t {\n\tFLANN_CENTERS_RANDOM = 0,\n\tFLANN_CENTERS_GONZALES = 1,\n\tFLANN_CENTERS_KMEANSPP = 2\n};\n\\end{Verbatim}\nThe \\texttt{algorithm} field is used to manually select the type of index\nused. The \\texttt{centers\\_init} field specifies how to choose the inital\ncluster centers when performing the hierarchical k-means clustering (in\ncase the algorithm used is k-means): \\texttt{FLANN\\_CENTERS\\_RANDOM} chooses the\ninitial centers randomly, \\texttt{FLANN\\_CENTERS\\_GONZALES} chooses the\ninitial centers to be spaced apart from each other by using Gonzales' algorithm\nand \\texttt{FLANN\\_CENTERS\\_KMEANSPP} chooses the initial centers using the algorithm\nproposed in \\cite{arthur_kmeanspp_2007}.\n\nThe fields: \\texttt{checks}, \\texttt{cb\\_index}, \\texttt{trees}, \\texttt{branching},  \n\\texttt{iterations}, \\texttt{target\\_precision}, \\texttt{build\\_weight},\n \\texttt{memory\\_weight} and \\texttt{sample\\_fraction} have the\nsame meaning as described in \\ref{sec:flann::Index}.\n\nThe \\texttt{random\\_seed} field contains the random seed useed to initialize the random\nnumber generator. \n\nThe field \\texttt{log\\_level} controls the verbosity of the messages generated by the FLANN\nlibrary functions. It can take the following values:\n\\begin{Verbatim}[fontsize=\\footnotesize]\nenum flann_log_level_t {\n    FLANN_LOG_NONE = 0,\n    FLANN_LOG_FATAL = 1,\n    FLANN_LOG_ERROR = 2,\n    FLANN_LOG_WARN = 3,\n    FLANN_LOG_INFO = 4\n};\n\\end{Verbatim}\n\\end{description}\n\n\n\\subsubsection{flann\\_find\\_nearest\\_neighbors\\_index()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_find_nearest_neighbors_index(FLANN_INDEX index_id,\n\tfloat* testset,\n\tint trows,\n\tint* indices,\n\tfloat* dists,\n\tint nn,\n\tint checks,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\nThis function searches for the nearest neighbors of the\n\\texttt{testset} points using an index already build and referenced by\n\\texttt{index\\_id}. The \\texttt{testset} is a matrix stored in row-major format\nwith \\texttt{trows} rows and the same number of columns as the dimensionality\nof the points used to build the index. The function computes \\texttt{nn}\nnearest neighbors for each point in the \\texttt{testset} and stores them in the\n\\texttt{indices} matrix (which is a $\\rm{trows} \\times \\rm{nn}$ matrix stored in\nrow-major format). The memory for the \\texttt{result} matrix must be allocated\nbefore the \\texttt{flann\\_find\\_nearest\\_neighbors\\_index()} function is\ncalled. The distances to the nearest neighbors found are stored in the \\texttt{dists}\nmatrix. The \\texttt{checks} parameter specifies how many tree traversals should\nbe performed during the search.\n\n\n\n\\subsubsection{flann\\_find\\_nearest\\_neighbors()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_find_nearest_neighbors(float* dataset,\n\tint rows,\n\tint cols,\n\tfloat* testset,\n\tint trows,\n\tint* indices,\n\tfloat* dists,\n\tint nn,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\nThis function is similar to the\n\\texttt{flann\\_find\\_nearest\\_neighbors\\_index()} function, but instread of\nusing a previously constructed index, it constructs the index, does the nearest\nneighbor search and deletes the index in one step.\n\n\\subsubsection{flann\\_radius\\_search()}\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_radius_search(FLANN_INDEX index_ptr,\n\tfloat* query,   /* query point */\n\tint* indices, /* array for storing the indices */\n\tfloat* dists, /* similar, but for storing distances */\n\tint max_nn,  /* size of arrays indices and dists */\n\tfloat radius, /* search radius (squared radius for euclidian metric) */\n\tint checks,  /* number of features to check, sets the level\n\t\t\t of approximation */\n\tFLANNParameters* flann_params);\n\\end{Verbatim}\n\nThis function performs a radius search to single query point. The indices of the neighbors found and\nthe distances to them are stored in the \\texttt{indices} and dists \\texttt{arrays}. The \\texttt{max\\_nn} parameter sets the limit of the\nneighbors that will be returned (the size of the \\texttt{indices} and \\texttt{dists} arrays must be at least \\texttt{max\\_nn}).\n\n\\subsubsection{flann\\_save\\_index()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_save_index(flann_index_t index_id,\n\tchar* filename);\n\\end{Verbatim}\n\nThis function saves an index to a file. The dataset for which the index was built is not saved with the index.\n\n\\subsubsection{flann\\_load\\_index()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflann_index_t flann_load_index(char* filename,\n\tfloat* dataset,\n\tint rows,\n\tint cols);\n\\end{Verbatim}\n\nThis function loads a previously saved index from a file. Since the dataset is not saved with the\nindex, it must be provided to this function.\n\n\n\n\\subsubsection{flann\\_free\\_index()}\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_free_index(FLANN_INDEX index_id,\n\tstruct FLANNParameters* flann_params);\n\\end{Verbatim}\nThis function deletes a previously constructed index and frees all the memory\nused by it.\n\n\\subsubsection{flann\\_set\\_distance\\_type}\n\\label{flann::setDistanceType}\nThis function chooses the distance function to use when computing distances between\ndata points.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nvoid flann_set_distance_type(enum flann_distance_t distance_type, int order);\n\\end{Verbatim}\n\\begin{description}\n\\item[distance\\_type] The distance type to use. Possible values are\n\\begin{Verbatim}[fontsize=\\footnotesize]\nenum flann_distance_t {\n\tFLANN_DIST_EUCLIDEAN = 1,  // squared euclidean distance\n\tFLANN_DIST_MANHATTAN = 2,\n\tFLANN_DIST_MINKOWSKI = 3,\n\tFLANN_DIST_HIST_INTERSECT  = 5,\n\tFlANN_DIST_HELLINGER = 6,\n\tFLANN_DIST_CHI_SQUARE  = 7,   // chi-square\n\tFLANN_DIST_KULLBACK_LEIBLER  = 8,   // kullback-leibler divergence\n};\n\\end{Verbatim}\n\\item[order] Used in for the \\texttt{FLANN\\_DIST\\_MINKOWSKI} distance type, to choose the order of the Minkowski distance.\n\\end{description}\n\n\n\n\n\\subsubsection{flann\\_compute\\_cluster\\_centers()}\nPerforms hierarchical clustering of a set of points (see \\ref{flann::hierarchicalClustering}).\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nint flann_compute_cluster_centers(float* dataset,\n      int rows,\n      int cols,\n      int clusters,\n      float* result,\n      struct FLANNParameters* flann_params);\n\\end{Verbatim}\n\n\n\\bigskip\n\nSee section \\ref{sec:quickstart} for an example of how to use the C/C++\nbindings.\n\n\n\\subsection{Using FLANN from MATLAB}\n\nThe FLANN library can be used from MATLAB through the following wrapper\nfunctions: \\texttt{flann\\_build\\_index}, \\texttt{flann\\_search},\n\\texttt{flann\\_save\\_index}, \\texttt{flann\\_load\\_index},\n\\texttt{flann\\_set\\_distance\\_type} and \\texttt{flann\\_free\\_index}. \nThe \\texttt{flann\\_build\\_index} function\ncreates a search index from the dataset points, \\texttt{flann\\_search} uses\nthis index to perform nearest-neighbor searches, \\texttt{flann\\_save\\_index} \nand \\texttt{flann\\_load\\_index} can be used to save and load an index\nto/from disk, \\texttt{flann\\_set\\_distance\\_type} is used to set the\ndistance type to be used when building an index and\n\\texttt{flann\\_free\\_index} deletes the index and releases the memory it\nuses.\n\n% Note that in the binary distribution of FLANN the MEX file is linked against\n% the shared version of FLANN (\\texttt{flann.so} or \\texttt{flann.dll}), so on Linux you must set the \n% LD\\_LIBRARY\\_PATH environment variable accordingly prior to starting MATLAB. On Windows is enough\n% to have \\texttt{flann.dll} in the same directory with the MEX file.\n\nThe following sections describe in more detail the FLANN matlab wrapper\nfunctions and show examples of how they may be used.\n\n\\subsubsection{flann\\_build\\_index}\n\\label{sec:flann_build_index}\n\nThis function creates a search index from the initial dataset of points,\nindex used  later for fast nearest-neighbor searches in the dataset.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n[index, parameters, speedup] = flann_build_index(dataset, build_params);\n\\end{Verbatim}\n\n\nThe arguments passed to the \\texttt{flann\\_build\\_index} function have the\nfollowing meaning:\n\\begin{description}\n\n\\item [\\texttt{dataset}] is a $d \\times n$ matrix containing $n$\n$d$-dimensional points, stored in a column-major order (one feature on\neach column)\n\n\\item [\\texttt{build\\_params}] - is a MATLAB structure containing the\nparameters passed to the function.\n\n\\end{description}\n\n\nThe \\texttt{build\\_params} is used to specify the type of index to be built and the \nindex parameters.  These have a big impact on the performance of the new search\nindex (nearest-neighbor search time) and on the time and memory required to\nbuild the index. The optimum parameter values depend on the dataset\ncharacteristics (number of dimensions, distribution of points in the\ndataset) and on the application domain (desired precision for the\napproximate nearest neighbor searches). The \\texttt{build\\_params} argument is \na structure that contains one or more of the following fields:\n\n\\begin{description}\n\\item[\\texttt{algorithm}] - the algorithm to use for building the index.\nThe possible values are: \\texttt{'linear'}, \\texttt{'kdtree'},\n\\texttt{'kmeans'}, \\texttt{'composite'} or \\texttt{'autotuned'}. The \\texttt{'linear'} option\ndoes not create any index, it uses brute-force search in the original\ndataset points, \\texttt{'kdtree'} creates one or more randomized kd-trees,\n\\texttt{'kmeans'} creates a hierarchical kmeans clustering tree,\n\\texttt{'composite'} is a mix of both kdtree and kmeans trees and the\n\\texttt{'autotuned'} automatically determines the best index and optimum\nparameters using a cross-validation technique.\n\n\\vspace{0.5cm}\n\\hspace{-1cm} \\textbf{Autotuned index:} in case the algorithm field is \\texttt{'autotuned'}, the following fields\nshould also be present:\n\n\\item[\\texttt{target\\_precision}] - is a number between 0 and 1 specifying the\npercentage of the approximate nearest-neighbor searches that return the\nexact nearest-neighbor. Using a higher value for this parameter gives\nmore\naccurate results, but the search takes longer. The optimum value\nusually\ndepends on the application.\n\n\\item[\\texttt{build\\_weight}] - specifies the importance of the\nindex build time raported to the nearest-neighbor search time. In some\napplications it's acceptable for the index build step to take a long time\nif the subsequent searches in the index can be performed very fast. In\nother applications it's required that the index be build as fast as\npossible even if that leads to slightly longer search times. (Default\nvalue: 0.01)\n\n\\item[\\texttt{memory\\_weight}] - is used to specify the tradeoff between\ntime (index build time and search time) and memory used by the index. A\nvalue less than 1 gives more importance to the time spent and a value\ngreater than 1 gives more importance to the memory usage.\n\n\\item[\\texttt{sample\\_fraction}] - is a number between 0 and 1 indicating what fraction\nof the dataset to use in the automatic parameter configuration algorithm. Running the \nalgorithm on the full dataset gives the most accurate results, but for\nvery large datasets can take longer than desired. In such case, using just a fraction of the\ndata helps speeding up this algorithm, while still giving good approximations of the\noptimum parameters.\n\n\\vspace{0.5cm}\n\\hspace{-1cm} \\textbf{Randomized kd-trees index:} in case the algorithm field is \\texttt{'kdtree'}, the following fields\nshould also be present:\n\n\\item[\\texttt{trees}] - the number of randomized kd-trees to create.\n\n\\vspace{0.5cm}\n\\hspace{-1cm} \\textbf{Hierarchical k-means index:} in case the algorithm type is \\texttt{'means'}, the following fields\nshould also be present:\n\n\n\\item[\\texttt{branching}] - the branching factor to use for\nthe hierarchical kmeans tree creation. While kdtree is always a binary\ntree, each node in the kmeans tree may have several branches depending on\nthe value of this parameter. \n\n\\item[\\texttt{iterations}] - the maximum number of iterations to\nuse in the kmeans clustering stage when building the kmeans tree. A value\nof -1 used here means that the kmeans clustering should be performed until\nconvergence.\n\n\\item[\\texttt{centers\\_init}] - the algorithm to use for selecting the initial\ncenters when performing a kmeans clustering step. The possible values are\n'random' (picks the initial cluster centers randomly), 'gonzales' (picks the\ninitial centers using the Gonzales algorithm) and 'kmeanspp' (picks the initial\ncenters using the algorithm suggested in \\cite{arthur_kmeanspp_2007}). If this\nparameters is omitted, the default value is 'random'.\n\n\\item[\\texttt{cb\\_index}] - this parameter (cluster boundary index) influences the\nway exploration is performed in the hierarchical kmeans tree. When \\texttt{cb\\_index} is zero\nthe next kmeans domain to be explored is choosen to be the one with the closest center. \nA value greater then zero also takes into account the size of the domain.\n\n\\vspace{0.5cm}\n\\hspace{-1cm} \\textbf{Composite index:} in case the algorithm type is \\texttt{'composite'}, the fields from \nboth randomized kd-tree index and hierarchical k-means index should be present.\n\n\\end{description}\n\n\nThe \\texttt{flann\\_build\\_index} function returns the newly created\n\\texttt{index}, the \\texttt{parameters} used for creating the index and, if\nautomatic configuration was used, an estimation of the \\texttt{speedup}\nover linear search that is achieved when searching the index.  Since the \nparameter estimation step is costly, it is\npossible to save the computed parameters and reuse them the\nnext time an index is created from similar data points (coming from the\nsame distribution).\n\n\n\n\n\\subsubsection{flann\\_search}\n\nThis function performs nearest-neighbor searches using the index already\ncreated:\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n[result, dists] = flann_search(index, testset, k, parameters);\n\\end{Verbatim}\n\nThe arguments required by this function are:\n\\begin{description}\n\\item[\\texttt{index}] - the index returned by the\n\\texttt{flann\\_build\\_index} function\n\\item[\\texttt{testset}] - a $d \\times m$ matrix containing $m$ test points\nwhose k-nearest-neighbors need to be found\n\\item[\\texttt{k}] - the number of nearest neighbors to be returned for each\npoint from \\texttt{testset}\n\\item[\\texttt{parameters}] - structure containing the search parameters.\nCurrently it has only one member, \\texttt{parameters.checks}, denoting the\nnumber of times the tree(s) in the index should be recursively traversed. A\nhigher value for this parameter would give better search precision, but\nalso take more time. If automatic configuration was used when the\nindex was created, the number of checks required to achieve the specified\nprecision is also computed. In such case, the parameters structure returned\nby the \\texttt{flann\\_build\\_index} function can be passed directly to the\n\\texttt{flann\\_search} function.\n\\end{description}\n\nThe function returns two matrices, each of size $k \\times m$. The first one contains, in which each column, the indexes (in the dataset matrix) of the $k$ nearest neighbors of the corresponding point from testset, while the second one contains the corresponding distances. The second matrix can be omitted when making the call if the distances to the nearest neighbors are not needed. \n\nFor the case where a single search will be performed with each index, the\n\\texttt{flann\\_search} function accepts the dataset instead of the index as\nfirst argument, in which case the index is created searched and then\ndeleted in one step. In this case the parameters structure passed to the\n\\texttt{flann\\_search} function must also contain the fields of the\n\\texttt{build\\_params} structure that would normally be passed to the\n\\texttt{flann\\_build\\_index} function if the index was build separately.\n\\begin{Verbatim}\n[result, dists] = flann_search(dataset, testset, k, parameters);\n\\end{Verbatim}\n\n\\subsubsection{flann\\_save\\_index}\n\nThis function saves an index to a file so that it can be reused at a later time without\nthe need to recompute it. Only the index will be saved to the file, not also the data\npoints for which the index was created, so for the index to be reused the data \npoints must be saved separately.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflann_save_index(index, filename)\n\\end{Verbatim}\n\nThe argumenst required by this function are:\n\\begin{description}\n\\item[\\texttt{index}] - the index to be saved, created by \\texttt{flann\\_build\\_index}\n\\item[\\texttt{filename}] - the name of the file in which to save the index\n\\end{description}\n\n\n\n\\subsubsection{flann\\_load\\_index}\n\nThis function loads a previously saved index from a file. It needs to be passed as a second \nparameter the dataset for which the index was created, as this is not saved together with the\nindex.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nindex = flann_load_index(filename, dataset)\n\\end{Verbatim}\nThe argumenst required by this function are:\n\\begin{description}\n\\item[\\texttt{filename}] - the file from which to load the index\n\\item[\\texttt{dataset}] - the dataset for which the index was created\n\\end{description}\n\nThis function returns the index object.\n\n\n\\subsubsection{flann\\_set\\_distance\\_type}\n\\label{matlab:flannSetDistanceType}\n\nThis function chooses the distance function to use when computing distances between\ndata points.\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflann_set_distance_type(type, order)\n\\end{Verbatim}\nThe argumenst required by this function are:\n\\begin{description}\n\\item[\\texttt{type}] - the distance type to use. Possible values are: \\texttt{'euclidean'},\n\t\t      \\texttt{'manhattan'}, \\texttt{'minkowski'}, \\texttt{'max\\_dist'} ($L\\_{infinity}$ - distance\ntype is not valid for kd-tree index type since it's not dimensionwise additive), \n\\texttt{'hik'} (histogram intersection kernel), \\texttt{'hellinger'},\\texttt{'cs'} (chi-square) and \\texttt{'kl'} (Kullback-Leibler).\n\n\\item[\\texttt{order}] - only used if distance type is \\texttt{'minkowski'} and represents the order\n\t      of the minkowski distance.\n\\end{description}\n\n\n\n\\subsubsection{flann\\_free\\_index}\n\nThis function must be called to delete an index and release all the memory\nused by it:\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\nflann_free_index(index);\n\\end{Verbatim}\n\n\\subsubsection{Examples}\n\nLet's look at a few examples showing how the functions described above are\nused:\n\n\\subsubsection{Example 1:}\n\nIn this example the index is constructed using automatic parameter estimation, requesting 70\\% as desired precision and using the default values for the build time and memory usage factors. The index is then used to search for the nearest-neighbors of the points in the testset matrix and finally the index is deleted.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n\ndataset = single(rand(128,10000));\ntestset = single(rand(128,1000));\n\nbuild_params.algorithm = 'autotuned';\nbuild_params.target_precision = 0.7;\nbuild_params.build_weight = 0.01;\nbuild_params.memory_weight = 0;\n\n[index, parameters] = flann_build_index(dataset, build_params);\n\nresult = flann_search(index,testset,5,parameters);\n\nflann_free_index(index);\n\n\\end{Verbatim}\n\n\n\n\n% \\bibliographystyle{alpha}\n% \\bibliography{references}\n\n\n\\subsubsection{Example 2:}\n\nIn this example the index constructed with the parameters specified manually.\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n\ndataset = single(rand(128,10000));\ntestset = single(rand(128,1000));\n\nindex = flann_build_index(dataset,struct('algorithm','kdtree','trees',8));\n\nresult = flann_search(index,testset,5,struct('checks',128));\n\nflann_free_index(index);\n\n\\end{Verbatim}\n\n\\subsubsection{Example 3:}\n\nIn this example the index creation, searching and deletion are all performed in one step:\n\n\\begin{Verbatim}[fontsize=\\footnotesize,frame=single]\n\ndataset = single(rand(128,10000));\ntestset = single(rand(128,1000));\n\n[result,dists] = flann_search(dataset,testset,5,struct('checks',128,'algorithm',...\n    'kmeans','branching',64,'iterations',5));\n\n\\end{Verbatim}\n\n\n\n\\subsection{Using FLANN from python}\n\nThe python bindings are automatically installed on the system with the FLANN library\nif the option \\texttt{BUILD\\_PYTHON\\_BINDINGS} is enabled. You may need to set the \n\\texttt{PYTHONPATH} to the location of the bindings if you installed FLANN in a\nnon-standard location. The python bindings also require the numpy package to be installed.\n\nTo use the python FLANN bindings the package \\texttt{pyflann} must be imported\n(see the python example in section \\ref{sec:quickstart}). This package contains\na class called FLANN that handles the nearest-neighbor search operations. This\nclass containg the following methods:\n\\begin{description}\n\\item [\\texttt{def build\\_index(self, dataset, **kwargs)}] :\\\\\n    This method builds and internally stores an index to be used for future\nnearest neighbor matchings. It erases any previously stored index, so in order\nto work with multiple indexes, multiple instances of the FLANN class must be\nused. The \\texttt{dataset} argument must be a 2D numpy array or a matrix, stored in a\nrow-major order (a feature on each row of the matrix). The\nrest of the arguments that can be passed to the method are the same as\n those used in the \\texttt{build\\_params} structure from\nsection \\ref{sec:flann_build_index}. Similar to the MATLAB version, the index\ncan be created using manually specified parameters or the parameters can be\nautomatically computed (by specifying the target\\_precision, build\\_weight and\nmemory\\_weight arguments).\n\nThe method returns a dictionary containing the parameters used to construct the\nindex. In case automatic parameter selection is used, the dictionary will also\ncontain the number of checks required to achieve the desired target precision\nand an estimation of the speedup over linear search that the library will\nprovide.\n\n\n\\item [\\texttt{def nn\\_index(self, testset, num\\_neighbors = 1, **kwargs)}] :\\\\\n    This method searches for the \\texttt{num\\_neighbors} nearest neighbors of\neach point in \\texttt{testset} using the index computed by\n\\texttt{build\\_index}. Additionally, a parameter called checks, denoting the\nnumber of times the index tree(s) should be recursivelly searched, must be\ngiven.\n\nExample:\n\\begin{Verbatim}[fontsize=\\scriptsize,frame=single]\nfrom pyflann import *\nfrom numpy import *\nfrom numpy.random import *\n\ndataset = rand(10000, 128)\ntestset = rand(1000, 128)\n\nflann = FLANN()\nparams = flann.build_index(dataset, algorithm=\"autotuned\", target_precision=0.9, log_level = \"info\");\nprint params\n\nresult, dists = flann.nn_index(testset,5, checks=params[\"checks\"]);\n\\end{Verbatim}\n\n\\item[\\texttt{def nn(self, dataset, testset, num\\_neighbors = 1, **kwargs)}]:\\\\\n    This method builds the index, performs the nearest neighbor search and\ndeleted the index, all in one step.\n\n\\item [\\texttt{def save\\_index(self, filename)}] :\\\\\n    This method saves the index to a file. The dataset form which the index was\nbuild is not saved.\n\n\\item [\\texttt{def load\\_index(self, filename, pts)}] :\\\\\n    Load the index from a file. The dataset for which the index was build must also \nbe provided since is not saved with the index.\n\n\\item [\\texttt{def set\\_distance\\_type(distance\\_type, order = 0)}] :\\\\\n    This function (part of the pyflann module) sets the distance type to be used. See\n\\ref{matlab:flannSetDistanceType} for possible values of the distance\\_type.\n\n\\end{description}\n\n\n\nSee section \\ref{sec:quickstart} for an example of how to use the Python\nbindings.\n\n\n\\bibliographystyle{alpha}\n\\bibliography{references}\n\n\\end{document}\n"
  },
  {
    "path": "algorithms/flann/code/doc/references.bib",
    "content": "@inproceedings{arthur_kmeanspp_2007,\n    title = {k-means++: the advantages of careful seeding},\n    booktitle = {Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms},\n    publisher = {Society for Industrial and Applied Mathematics Philadelphia, PA, USA},\n    author = {D. Arthur and S. Vassilvitskii},\n    year = {2007},\n    pages = {1027--1035}\n},\n\n\n\n@inproceedings{winder_learning_2007,\n\ttitle = {Learning Local Image Descriptors},\n\tdoi = {10.1109/CVPR.2007.382971},\n\tabstract = {In this paper we study interest point descriptors for image matching and 3D reconstruction. We examine the building blocks of descriptor algorithms and evaluate numerous combinations of components. Various published descriptors such as SIFT, GLOH, and Spin images can be cast into our framework. For each candidate algorithm we learn good choices for parameters using a training set consisting of patches from a multi-image 3D reconstruction where accurate ground-truth matches are known. The best descriptors were those with log polar histogramming regions and feature vectors constructed from rectified outputs of steerable quadrature filters. At a 95\\% detection rate these gave one third of the incorrect matches produced by SIFT.},\n\tbooktitle = {CVPR},\n\tauthor = {S.A.J. Winder and M. Brown},\n\tyear = {2007},\n\tkeywords = {3D image reconstruction,feature vectors,GLOH images,image reconstruction,local image descriptors,log polar histogramming,SIFT images,Spin images,steerable quadrature filters,vectors},\n\tpages = {1-8}\n},\n\n@article{arya_optimal_1998,\n\ttitle = {An optimal algorithm for approximate nearest neighbor searching in fixed dimensions},\n\tvolume = {45},\n\turl = {citeseer.ist.psu.edu/article/arya94optimal.html},\n\tjournal = {Journal of the ACM},\n\tauthor = {Sunil Arya and David M. Mount and Nathan S. Netanyahu and Ruth Silverman and Angela Y. Wu},\n\tyear = {1998},\n\tpages = {891-923}\n},\n\n@article{lowe_sift_2004,\n\ttitle = {Distinctive image features from scale-invariant keypoints},\n\tvolume = {60},\n\tjournal = {Int. Journal of Computer Vision},\n\tauthor = {David G. Lowe},\n\tyear = {2004},\n\tpages = {91-110}\n},\n\n@inproceedings{liu_efficient_2003,\n\ttitle = {Efficient Exact k-NN and Nonparametric Classification in High Dimensions},\n\tbooktitle = {Neural Information Processing Systems},\n\tauthor = {T. Liu and A. W. Moore and A. Gray},\n\tyear = {2003}\n},\n\n@inproceedings{nister_scalable_2006,\n\ttitle = {Scalable Recognition with a Vocabulary Tree},\n\tisbn = {0-7695-2597-0},\n\tdoi = {http://dx.doi.org/10.1109/CVPR.2006.264},\n\tbooktitle = {CVPR},\n\tauthor = {David Nister and Henrik Stewenius},\n\tyear = {2006},\n\tpages = {2161-2168}\n},\n\n@inproceedings{beis_shape_1997,\n\ttitle = {Shape indexing using approximate nearest-neighbor search in high dimensional spaces},\n\turl = {citeseer.ist.psu.edu/beis97shape.html},\n\tbooktitle = {CVPR},\n\tauthor = {Jeffrey S. Beis and David G. Lowe},\n\tyear = {1997},\n\tpages = {1000-1006}\n},\n\n@inproceedings{leibe_efficient_2006,\n\ttitle = {Efficient Clustering and Matching for Object Class Recognition},\n\turl = {http://www.mis.informatik.tu-darmstadt.de/Publications/leibe-efficientclustering-bmvc06.pdf},\n\tabstract = {In this paper we address the problem of building object class representations based on local features and fast matching in a large database. We propose an efficient algorithm for hierarchical agglomerative clustering. We examine different agglomerative and partitional clustering strategies and compare the quality of obtained clusters. Our combination of partitional-agglomerative clustering gives significant improvement in terms of efficiency while maintaining the same quality of clusters. We also propose a method for building data structures for fast matching in high dimensional feature spaces. These improvements allow to deal with large sets of training data typically used in recognition of multiple object classes.},\n    booktitle = {BMVC},\n\tauthor = {B. Leibe and K. Mikolajczyk and B. Schiele},\n\tyear = {2006}\n},\n\n@inproceedings{schindler_city-scale_2007,\n\ttitle = {City-Scale Location Recognition},\n\tdoi = {10.1109/CVPR.2007.383150},\n\tabstract = {We look at the problem of location recognition in a large image dataset using a vocabulary tree. This entails finding the location of a query image in a large dataset containing 3times104 streetside images of a city. We investigate how the traditional invariant feature matching approach falls down as the size of the database grows. In particular we show that by carefully selecting the vocabulary using the most informative features, retrieval performance is significantly improved, allowing us to increase the number of database images by a factor of 10. We also introduce a generalization of the traditional vocabulary tree search algorithm which improves performance by effectively increasing the branching factor of a fixed vocabulary tree.},\n    booktitle = {CVPR},\n\tjournal = {Computer Vision and Pattern Recognition, 2007. CVPR '07. IEEE Conference on},\n\tauthor = {G. Schindler and M. Brown and R. Szeliski},\n\tyear = {2007},\n    keywords = {feature matching,image matching,image retrieval,query image,trees (mathematics)city-scale location recognition,vocabulary tree},\n\tpages = {1-7}\n},\n\n@article{freidman_algorithm_1977,\n\ttitle = {An Algorithm for Finding Best Matches in Logarithmic Expected Time},\n\tvolume = {3},\n\tissn = {0098-3500},\n\tdoi = {http://doi.acm.org/10.1145/355744.355745},\n\tjournal = {ACM Trans. Math. Softw.},\n\tauthor = {Jerome H. Freidman and Jon Louis Bentley and Raphael Ari Finkel},\n\tyear = {1977},\n\tpages = {209--226}\n},\n\n@inproceedings{brin_near_1995,\n\ttitle = {Near Neighbor Search in Large Metric Spaces},\n\tisbn = {1-55860-379-4},\n\tbooktitle = {VLDB},\n\tauthor = {Sergey Brin},\n\tyear = {1995},\n\tpages = {574-584}\n},\n\n@inproceedings{liu_investigation_2004,\n\ttitle = {An investigation of practical approximate nearest neighbor algorithms},\n\turl = {citeseer.ist.psu.edu/753047.html},\n\tbooktitle = {Neural Information Processing Systems},\n\tauthor = {T. Liu and A. Moore and A. Gray and K. Yang},\n\tyear = {2004}\n},\n\n@article{snavely_photo_2006,\n\ttitle = {Photo tourism: Exploring photo collections in 3{D}},\n\tvolume = {25},\n\tjournal = {ACM Transactions on Graphics (TOG)},\n\tauthor = {N. Snavely and S. M. Seitz and R. Szeliski},\n\tyear = {2006},\n\tpages = {835-846}\n},\n\n@inproceedings{silpa-anan_localization_2004,\n\ttitle = {Localization using an imagemap},\n\tbooktitle = {Australasian Conference on Robotics and Automation},\n\tauthor = {C. Silpa-Anan and R. Hartley},\n\tyear = {2004}\n},\n\n@inproceedings{sivic_videogoogle_2003,\n\ttitle = {Video {G}oogle: A Text Retrieval Approach to Object Matching in Videos},\n\tbooktitle = {ICCV},\n\tauthor = {J. Sivic and A. Zisserman},\n\tyear = {2003}\n},\n\n@techreport{torralba_tiny_2007,\n        Author = {A. Torralba and R. Fergus and W. T. Freeman},\n        Title = {Tiny Images},\n        Institution = {CSAIL, Massachusetts Institute of Technology},\n        Year = {2007},\n        URL = {http://dspace.mit.edu/handle/1721.1/37291},\n        Number = {MIT-CSAIL-TR-2007-024}\n},\n\n\n@article{torralba_80_million_2008,\n    author = {Antonio Torralba and Rob Fergus and William T. Freeman},\n    title = {80 Million Tiny Images: A Large Data Set for Nonparametric Object and Scene Recognition},\n    journal ={IEEE Transactions on Pattern Analysis and Machine Intelligence},\n    volume = {30},\n    number = {11},\n    issn = {0162-8828},\n    year = {2008},\n    pages = {1958-1970},\n    doi = {http://doi.ieeecomputersociety.org/10.1109/TPAMI.2008.128},\n    publisher = {IEEE Computer Society},\n    address = {Los Alamitos, CA, USA},\n}\n\n@inproceedings{philbin_oxford_2007,\n\ttitle = {Object retrieval with large vocabularies and fast spatial matching},\n\tbooktitle = {CVPR},\n\tauthor = {J. Philbin and O. Chum and M. Isard and J. Sivic and A. Zisserman},\n\tyear = {2007}\n}\n\n@article{andoni_near-optimal_2006,\n    title = {Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions},\n    journal = {Proceedings of the 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS'06)},\n    author = {A. Andoni},\n    year = {2006},\n    pages = {459-468}\n}\n\n@article{fukunaga_branch_1975,\n    title = {A Branch and Bound Algorithm for Computing k-Nearest Neighbors},\n    volume = {24},\n    url = {http://portal.acm.org/citation.cfm?id=1311063.1311121\\&coll=GUIDE\\&dl=\\&CFID=5674080\\&CFTOKEN=11648065},\n    abstract = {Computation of the k-nearest neighbors generally requires a large number of expensive distance computations. The method of branch and bound is implemented in the present algorithm to facilitate rapid calculation of the k-nearest neighbors, by eliminating the necesssity of calculating many distances. Experimental results demonstrate the efficiency of the algorithm. Typically, an average of only 61 distance computations were made to find the nearest neighbor of a test sample among 1000 design samples.},\n    journal = {IEEE Trans. Comput.},\n    author = {K. Fukunaga and P. M. Narendra},\n    year = {1975},\n    keywords = {branch and bound,distance computation,hierarchical decomposition,k-nearest neighbors,tree-search algorithm.},\n    pages = {750-753}\n}\n\n\n@inproceedings{mikolajczyk_improving_2007,\n    title = {Improving Descriptors for Fast Tree Matching by Optimal Linear Projection},\n    isbn = {1550-5499},\n    doi = {10.1109/ICCV.2007.4408871},\n    abstract = {In this paper we propose to transform an image descriptor so that nearest neighbor (NN) search for correspondences becomes the optimal matching strategy under the assumption that inter-image deviations of corresponding descriptors have Gaussian distribution. The Euclidean NN in the transformed domain corresponds to the NN according to a truncated Mahalanobis metric in the original descriptor space. We provide theoretical justification for the proposed approach and show experimentally that the transformation allows a significant dimensionality reduction and improves matching performance of a state-of-the art SIFT descriptor. We observe consistent improvement in precision-recall and speed of fast matching in tree structures at the expense of little overhead for projecting the descriptors into transformed space. In the context of SIFT vs. transformed M-SIFT comparison, tree search structures are evaluated according to different criteria and query types. All search tree experiments confirm that transformed M-SIFT performs better than the original SIFT.},\n    booktitle = {Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on},\n    journal = {Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on},\n    author = {Krystian Mikolajczyk and Jiri Matas},\n    year = {2007},\n    pages = {1-8}\n}\n\n@inproceedings{silpa-anan_optimized_2008,\n     author = {Silpa-Anan, C. and Hartley, R.} ,\n     title = \"Optimised {KD}-trees for fast image descriptor matching\" ,\n     booktitle = {CVPR} ,\n     year = 2008 ,\n     url = \"../Papers/PDF/SilpaAnan:CVPR08.pdf\" ,\n};"
  },
  {
    "path": "algorithms/flann/code/examples/CMakeLists.txt",
    "content": "add_custom_target(examples ALL)\n\n\n#if (BUILD_C_BINDINGS)\n    #add_executable(flann_example_c flann_example.c)\n    #target_link_libraries(flann_example_c flann)\n    #set_target_properties(flann_example_c PROPERTIES COMPILE_FLAGS -std=c99)\n\n    #add_dependencies(examples flann_example_c)\n    #install (TARGETS flann_example_c DESTINATION bin )\n#endif()\n\nif (HDF5_FOUND)\n    include_directories(${HDF5_INCLUDE_DIR})\n\n\t###build kdtree\n    add_executable(build_kdtree build_kdtree.cpp)\n    target_link_libraries(build_kdtree ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_kdtree ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_kdtree)\n    install (TARGETS build_kdtree DESTINATION bin)\n\n\t##search kdtree\n\tadd_executable(search_kdtree search_kdtree.cpp)\n    target_link_libraries(search_kdtree ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_kdtree ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_kdtree)\n    install (TARGETS search_kdtree DESTINATION bin)\n\n\t###build hkmeans\n    add_executable(build_hkmeans build_hkmeans.cpp)\n    target_link_libraries(build_hkmeans ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_hkmeans ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_hkmeans)\n    install (TARGETS build_hkmeans DESTINATION bin)\n\n\t##search hkmeans\n\tadd_executable(search_hkmeans search_hkmeans.cpp)\n    target_link_libraries(search_hkmeans ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_hkmeans ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_hkmeans)\n    install (TARGETS search_hkmeans DESTINATION bin)\n\n\t###build auto\n    add_executable(build_auto build_auto.cpp)\n    target_link_libraries(build_auto ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_auto ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_auto)\n    install (TARGETS build_auto DESTINATION bin)\n\n\t##search auto\n\tadd_executable(search_auto search_auto.cpp)\n    target_link_libraries(search_auto ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_auto ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_auto)\n    install (TARGETS search_auto DESTINATION bin)\n\n\n\t###linear\n    add_executable(linear linear.cpp)\n    target_link_libraries(linear ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(linear ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples linear)\n    install (TARGETS linear DESTINATION bin)\n\n\n    if (USE_MPI AND HDF5_IS_PARALLEL)\n        add_executable(flann_example_mpi flann_example_mpi.cpp)\n        target_link_libraries(flann_example_mpi flann_cpp ${HDF5_LIBRARIES} ${MPI_LIBRARIES} ${Boost_LIBRARIES})\n\n        add_dependencies(examples flann_example_mpi)\n        install (TARGETS flann_example_mpi DESTINATION bin)\n    endif()\nelse()\n    message(\"hdf5 library not found, not compiling flann_example.cpp\")\nendif()\n\n\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/CMakeLists.txt~",
    "content": "add_custom_target(examples ALL)\n\n\n#if (BUILD_C_BINDINGS)\n    #add_executable(flann_example_c flann_example.c)\n    #target_link_libraries(flann_example_c flann)\n    #set_target_properties(flann_example_c PROPERTIES COMPILE_FLAGS -std=c99)\n\n    #add_dependencies(examples flann_example_c)\n    #install (TARGETS flann_example_c DESTINATION bin )\n#endif()\n\nif (HDF5_FOUND)\n    include_directories(${HDF5_INCLUDE_DIR})\n\n\t###build kdtree\n    add_executable(build_kdtree build_kdtree.cpp)\n    target_link_libraries(build_kdtree ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_kdtree ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_kdtree)\n    install (TARGETS build_kdtree DESTINATION bin)\n\n\t##search kdtree\n\tadd_executable(search_kdtree search_kdtree.cpp)\n    target_link_libraries(search_kdtree ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_kdtree ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_kdtree)\n    install (TARGETS search_kdtree DESTINATION bin)\n\n\t###build hkmeans\n    add_executable(build_hkmeans build_hkmeans.cpp)\n    target_link_libraries(build_hkmeans ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_hkmeans ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_hkmeans)\n    install (TARGETS build_hkmeans DESTINATION bin)\n\n\t##search hkmeans\n\tadd_executable(search_hkmeans search_hkmeans.cpp)\n    target_link_libraries(search_hkmeans ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_hkmeans ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_hkmeans)\n    install (TARGETS search_hkmeans DESTINATION bin)\n\n\t###build auto\n    add_executable(build_auto build_auto.cpp)\n    target_link_libraries(build_auto ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(build_auto ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples build_auto)\n    install (TARGETS build_auto DESTINATION bin)\n\n\t##search auto\n\tadd_executable(search_auto search_auto.cpp)\n    target_link_libraries(search_auto ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(search_auto ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples search_auto)\n    install (TARGETS search_auto DESTINATION bin)\n\n\n\t###linear\n    add_executable(linear linear.cpp)\n    target_link_libraries(linear ${HDF5_LIBRARIES})\n    if (HDF5_IS_PARALLEL)\n        target_link_libraries(linear ${MPI_LIBRARIES})\n    endif()\n\n    add_dependencies(examples linear)\n    install (TARGETS linear DESTINATION bin)\n\n\n    if (USE_MPI AND HDF5_IS_PARALLEL)\n        add_executable(flann_example_mpi flann_example_mpi.cpp)\n        target_link_libraries(flann_example_mpi flann_cpp ${HDF5_LIBRARIES} ${MPI_LIBRARIES} ${Boost_LIBRARIES})\n\n        add_dependencies(examples flann_example_mpi)\n        install (TARGETS flann_example_mpi DESTINATION bin)\n    endif()\nelse()\n    message(\"hdf5 library not found, not compiling flann_example.cpp\")\nendif()\n\n\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/GIST_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"groundtruth\");    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/GIST1M/gist/exp_fig/result/Flann/flann_Auto_result.txt\");\n  \n    //build index\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(0.95,0.01,0,0.1));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n\tout<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/GIST_Auto_indices\"); \n    \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    //double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\n\t/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n\n    //flann::save_to_file(indices,\"auto/GIST_Auto_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/GIST_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"groundtruth\");\n \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/GIST1M/gist/exp_fig/result/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"hkmeans/gist1M_H_KMeans_indices\"); \n   \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000, 20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n\n    //flann::save_to_file(indices,\"hkmeans/gist1M_HKMEANS_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n\n    }\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/GIST_flann_kdtree_example (copy).cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"GIST_Auto_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"GIST_KDTree_indices\"); \n    \n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"GIST_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/GIST_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"groundtruth\");\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/GIST1M/gist/exp_fig/result/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = KDTree  trees=12\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"kdtree/GIST_KDTree_indices\"); \n    \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n\n    //flann::save_to_file(indices,\"GIST_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/GIST_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"query\");\n    \n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/GIST1M/gist/exp_fig/result/flann_Linear_result.txt\");\n    \n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/GIST1M/gist/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/MNIST_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/MNIST/exp_fig/result/flann_Auto_result.txt\");\n   \n    //build index\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(0.95,0.01,0,0.1));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/MNIST_Auto_indices\"); \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    \tstart_time_=clock();\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    \tdouble search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \t\n\t\t//compute the recall\n    \tfloat precision = compute_precision(indices,groundtruth);\n\t\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\t/*\n\t\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    \trecall[0]= compute_recall_at(1,indices,groundtruth);\n    \trecall[1]= compute_recall_at(10,indices,groundtruth);\n    \trecall[2]= compute_recall_at(100,indices,groundtruth);\n    \trecall[3]= compute_recall_at(1000,indices,groundtruth);\n    \trecall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    \tout<<\"#checks = \"<< checks[c] <<endl;\n    \tstd::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    \tout<<\"#precision = \"<< precision <<endl; \n    \tout<<\"#recall@1 = \"<< recall[0] <<endl; \n    \tout<<\"#recall@10 = \"<< recall[1] <<endl; \n    \tout<<\"#recall@100 = \"<< recall[2] <<endl; \n    \tout<<\"#recall@1000 = \"<< recall[3] <<endl; \n    \tout<<\"#recall@10000 = \"<< recall[4] <<endl;\n    \tout<< \"\\n\\n\" <<endl;\n    \t*/\n    \t//flann::save_to_file(indices,\"MNIST_Auto_result.hdf5\",\"result\");\n    \tdelete[] indices.ptr();\n    \tdelete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/MNIST_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"groundtruth\");    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/MNIST/exp_fig/result/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n \tout<< index_time <<\" #index_time \"<<endl;                                                                                 \n    index.save(\"hkmeans/MNIST_H_KMeans_indices\"); \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    { \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n\n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t/*\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"MNIST_H_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/MNIST_flann_kdtree_example (copy).cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"MNIST_KDTree_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = KDTree  trees=12\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"MNIST_KDTree_indices\"); \n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"MNIST_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/MNIST_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"groundtruth\");    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/MNIST/exp_fig/result/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = KDTree  trees=12\"<<endl;\n    \n\tout<< index_time <<\" #index_time  \"<<endl;                                                                            \n    index.save(\"kdtree/MNIST_KDTree_indices\"); \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n\n    //compute the recall \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"MNIST_KDTree_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/MNIST_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"query\");\n   \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/MNIST/exp_fig/result/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    clock_t start_time_=clock();\n    index.buildIndex();\n\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n                                                                                        \n  \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<< search_time/query.rows <<\" #search_time \"<<endl;\n    \n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/MNIST/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/README",
    "content": "\nThese examples use some datasets that are not included in the source distribution. You can download the datasets from here:\n\nhttp://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.hdf5\nhttp://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.dat\nhttp://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/testset.dat\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"groundtruth\");\n\n    ofstream out_recall;\n    out_recall.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_Auto_recall.txt\");\n\n\tofstream out_precision;\n    out_precision.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_Auto_precision.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(0.95,0.01,0,0.1));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out_recall<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n    out_recall<< index_time <<\" #index_time \"<<endl;\n\n\tout_precision<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n    out_precision<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/SIFT_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n\t{\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    \tstart_time_=clock();\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    \tdouble search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \t\n    \t//compute the precision\n    \tfloat precision = compute_precision(indices,groundtruth);\n\t\tout_precision<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\t\n\t\t//compute the recall\n\t\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    \trecall[0]= compute_recall_at(1,indices,groundtruth);\n    \trecall[1]= compute_recall_at(10,indices,groundtruth);\n    \trecall[2]= compute_recall_at(100,indices,groundtruth);\n    \trecall[3]= compute_recall_at(1000,indices,groundtruth);\n    \trecall[4]= compute_recall_at(10000,indices,groundtruth);\n\t\tout_recall<< recall[0]<<\" \"<<recall[1]<<\" \"<<recall[2]<<\" \"<<recall[3]<<\" \"<<recall[4]<<\" \"<<search_time/query.rows()<<\" #N_\"<<checks[c]<<\" \\n\";\n\n\t/*\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"SIFT_Auto_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"groundtruth\");\n    \n    ofstream out_recall;\n    out_recall.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_H_KMeans_recall.txt\");\n\n\tofstream out_precision;\n    out_precision.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_H_KMeans_precision.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\tout_recall<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out_recall<< index_time <<\" #index_time \"<<endl;\n\n\tout_precision<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out_precision<< index_time <<\" #index_time \"<<endl;\n                                                                                    \n    index.save(\"hkmeans/sift1M_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    { \n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    \tstart_time_=clock();\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    \tdouble search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\n    \t//compute the recall \n   \n    \tfloat precision = compute_precision(indices,groundtruth);\n\t\tout_precision<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\t\n\t\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    \trecall[0]= compute_recall_at(1,indices,groundtruth);\n    \trecall[1]= compute_recall_at(10,indices,groundtruth);\n    \trecall[2]= compute_recall_at(100,indices,groundtruth);\n    \trecall[3]= compute_recall_at(1000,indices,groundtruth);\n    \trecall[4]= compute_recall_at(10000,indices,groundtruth);\n\t\tout_recall<< recall[0]<<\" \"<<recall[1]<<\" \"<<recall[2]<<\" \"<<recall[3]<<\" \"<<recall[4]<<\" \"<<search_time/query.rows()<<\" #N_\"<<checks[c]<<\" \\n\";\n\n\t/* \n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"sift1M_H_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_kdtree_example (copy).cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"SIFT_KDTree_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = KDTree  trees=12\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"SIFT_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"SIFT_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n\tload_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"groundtruth\");\n    \n    ofstream out_recall;\n    out_recall.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_KDTree_recall.txt\");\n\n\tofstream out_precision;\n    out_precision.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/Flann/flann_KDTree_precision.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out_recall<<\"#Algorithm = KDTree  trees=12\"<<endl;\n    out_recall<< index_time <<\" #index_time \"<<endl;\n\n\tout_precision<<\"#Algorithm = KDTree  trees=12\"<<endl;\n    out_precision<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"kdtree/SIFT_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    \tstart_time_=clock();\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    \tdouble search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n    //compute the recall \n    \tfloat precision = compute_precision(indices,groundtruth);\n\n\t\tout_precision.setf(ios::fixed);\n\t\tout_precision<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\t\n\t\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    \trecall[0]= compute_recall_at(1,indices,groundtruth);\n    \trecall[1]= compute_recall_at(10,indices,groundtruth);\n    \trecall[2]= compute_recall_at(100,indices,groundtruth);\n    \trecall[3]= compute_recall_at(1000,indices,groundtruth);\n    \trecall[4]= compute_recall_at(10000,indices,groundtruth);\n\t\tout_recall.setf(ios::fixed);\n\n\t\tout_recall<< recall[0]<<\" \"<<recall[1]<<\" \"<<recall[2]<<\" \"<<recall[3]<<\" \"<<recall[4]<<\" \"<<search_time/query.rows<<\" #N_\"<<checks[c]<<\" \\n\";\n\n\t/*\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"SIFT_KDTree_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_linear_example (copy).cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat dist(float *a,float *b,size_t size)\n{\n\tfloat dist=0;\n\tfloat diff=0;\n\tfor(size_t i=0;i<size;i++)\n\t{\n\t\tdiff = *a++ - *b++;\n\t\tdist+= diff*diff;\n\t}\n\treturn dist;\n}\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\tload_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"query\");\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/flann_Linear_result.txt\");\n    \n    Matrix<float> meandists(new float[query.rows*1], query.rows, 1);\n\tMatrix<float> mindists(new float[query.rows*1],query.rows,1);\n\tfor(int i=0;i<query.rows;i++)\n\t{\n\t\tfor(int j=0\n\t\tfloat mindist= dist(query[i],\n\t}\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n \tout<< search_time/query.rows <<\" #search_time \"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/SIFT_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\tload_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"query\");\n    \n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/SIFT1M/sift/exp_fig/result/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = Linear\"<<endl;\n  \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n \tout<< search_time/query.rows <<\" #search_time \"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/SIFT1M/sift/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/audio_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/Flann/flann_Auto_result.txt\");\n\n\tofstream out_recall;\n    out_recall.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/Flann/flann_Auto_recall.txt\");\n    //build index\n\tdouble target_precision=0.95;\n\tdouble build_weight=0.01;\n\tdouble memory_weight=0;\n\tdouble sample_fraction=0.1;\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction ));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1 \"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/audio_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\n\t//float recall = compute_recall_at(1,indices,groundtruth);\n\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\tout_recall << recall[0] << \" \" << recall[1] << \" \" << recall[2] << \" \" << recall[3] << \" \" << recall[4] << \" \" << search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\n    /*\n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    */\n    flann::save_to_file(indices,\"auto/audio_Auto_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/audio_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n    \n\n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"hkmeans/audio_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    //recall[0]= compute_recall_at(1,indices,groundtruth);\n    //recall[1]= compute_recall_at(10,indices,groundtruth);\n    //recall[2]= compute_recall_at(100,indices,groundtruth);\n    //recall[3]= compute_recall_at(1000,indices,groundtruth);\n    //recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n    //out<<\"#checks = \"<< checks[c] <<endl;\n    //std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    //out<<\"#precision = \"<< precision <<endl; \n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hkmeans/audio_H_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/audio_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n   \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = KDTree trees=12\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;                                                               \n    index.save(\"kdtree/audio_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    //double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n    flann::save_to_file(indices,\"kdtree/audio_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/audio_flann_kdtree_tunning.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n    \n\tint trees[6]={1,2, 4 ,8 ,12 ,16};\n\tfor(int t=0;t<6;t++)\n    {\n    ofstream out;\n\tchar result_path[100];\n\tsprintf(result_path,\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/Flann/flann_KDTree_%dtrees.txt\",trees[t]);\n    out.open(result_path);\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(trees[t]));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = KDTree trees=\"<<trees<<\" \"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n\t\n\tchar index_path[100];\n    sprintf(index_path,\"kdtree/audio_KDTree_indices_%dtrees\",trees[t]);                                                             \n    index.save(index_path); \n\n    //do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n    float precision = compute_precision(indices,groundtruth);\n\tout.setf(ios::fixed);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    }\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/audio_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    \n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/flann_Linear_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    //double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\t/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Audio/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_auto.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"wb\",                          required_argument, 0, 'b'},\n    {\"wm\",                          required_argument, 0, 'm'},\n    {\"tp\",                          required_argument, 0, 't'},\n    {\"sf\",                          required_argument, 0, 's'},\n  };\n\tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint nn;\n\tdouble build_weight;\n\tdouble memory_weight;\n\tdouble target_precision;\n\tdouble sample_fraction;\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:b:m:t:s:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          build_weight = atof(optarg);\n        }\n        break;\n      case 'm':\n        if (optarg) {\n          memory_weight = atof(optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          target_precision = atof(optarg);\n        }\n        break;\n      case 's':\n        if (optarg) {\n         sample_fraction = atof(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n   \n    load_from_file(dataset,file_path ,\"dataset\");    \n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    cerr<< index_time <<\" #index_time \"<<endl;\n    \n\tindex.save(index_path); \n  \n    delete[] dataset.ptr();    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_auto.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"wb\",                          required_argument, 0, 'b'},\n    {\"wm\",                          required_argument, 0, 'm'},\n    {\"tp\",                          required_argument, 0, 't'},\n    {\"sf\",                          required_argument, 0, 's'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n\tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint nn;\n\tdouble build_weight;\n\tdouble memory_weight;\n\tdouble target_precision;\n\tdouble sample_fraction;\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:b:m:t:s:k:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          build_weight = atof(optarg);\n        }\n        break;\n      case 'm':\n        if (optarg) {\n          memory_weight = atof(optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          target_precision = atof(optarg);\n        }\n        break;\n      case 's':\n        if (optarg) {\n         sample_fraction = atof(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n   \n    load_from_file(dataset,file_path ,\"dataset\");    \n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    cerr<< index_time <<\" #index_time \"<<endl;\n    \n\tindex.save(index_path); \n  \n    delete[] dataset.ptr();    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_hkmeans.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <time.h>\n#include <fstream>\n#include <stdio.h>\n#include <sys/time.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"branches\",                    required_argument, 0, 'b'},\n    {\"iteration\",                   required_argument, 0, 't'},\n  };\n  \tint id;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint branches;\n\tint iteration;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:t:b:h\",longopts, &id);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n\t  case 't':\n        if (optarg) {\n            iteration = atoi(optarg);\n        }\n      case 'b':\n        if (optarg) {\n          branches = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n\tload_from_file(dataset, file_path,\"dataset\");\n    \n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(branches,iteration,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    cerr<< index_time <<\" #index_time \"<<endl;                                                               \n    index.save(index_path);\n \n    delete[] dataset.ptr();\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_hkmeans.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <time.h>\n#include <fstream>\n#include <stdio.h>\n#include <sys/time.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"branches\",                    required_argument, 0, 'b'},\n    {\"iteration\",                   required_argument, 0, 't'},\n  };\n  \tint id;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint branches;\n\tint iteration;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:t:b:h\",longopts, &id);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n\t  case 't':\n        if (optarg) {\n            iteration = atoi(optarg);\n        }\n      case 'b':\n        if (optarg) {\n          branches = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n\tload_from_file(dataset, file_path,\"dataset\");\n    \n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(branches,iteration,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    cerr<< index_time <<\" #index_time \"<<endl;                                                               \n    index.save(index_path);\n \n    delete[] dataset.ptr();\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_kdtree.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n#include <getopt.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"index_path\",                  required_argument, 0, 'i'},\n    {\"trees\",                       required_argument, 0, 't'},\n  };\n  \tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint trees;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:t:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n     case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          trees = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    load_from_file(dataset, file_path,\"dataset\");\n    \n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(trees));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    cerr<< index_time <<\" #index_time \"<<endl;                              \n    index.save(index_path); \n    delete[] dataset.ptr();    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/build_kdtree.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n#include <getopt.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"index_path\",                  required_argument, 0, 'i'},\n    {\"trees\",                       required_argument, 0, 't'},\n  };\n  \tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tint trees;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:t:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n     case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          trees = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    load_from_file(dataset, file_path,\"dataset\");\n    \n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(trees));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    rrce<< index_time <<\" #index_time \"<<endl;                              \n    index.save(index_path); \n    delete[] dataset.ptr();    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/cifar10_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/flann_Auto_result.txt\");\n\n    //build index\n\tdouble target_precision=0.95;\n\tdouble build_weight=0.01;\n\tdouble memory_weight=0;\n\tdouble sample_fraction=0.1;\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction ));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1 \"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/audio_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    \n    \n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    */\n    flann::save_to_file(indices,\"auto/audio_Auto_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/cifar10_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n    \n\n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"hkmeans/audio_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    //recall[0]= compute_recall_at(1,indices,groundtruth);\n    //recall[1]= compute_recall_at(10,indices,groundtruth);\n    //recall[2]= compute_recall_at(100,indices,groundtruth);\n    //recall[3]= compute_recall_at(1000,indices,groundtruth);\n    //recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n    //out<<\"#checks = \"<< checks[c] <<endl;\n    //std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    //out<<\"#precision = \"<< precision <<endl; \n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hkmeans/audio_H_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/cifar10_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"groundtruth\");\n   \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Audio/exp_fig/result/Flann/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = KDTree trees=12\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;                                                               \n    index.save(\"kdtree/audio_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    //double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n    flann::save_to_file(indices,\"kdtree/audio_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/cifar10_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/CIFAR/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/CIFAR/data/dataset.hdf5\",\"query\");\n    \n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/CIFAR/exp_fig/result/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\t\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/CIFAR/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_auto_example.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat get_distance(float* point, float* query, int dim)\n{\n\tfloat dist=0.0;\n\tfor(int i=0;i<dim;i++)\n\t{\n\t\tfloat diff = (*point++ - *query++);\n\t\tdist += diff*diff;\n\t}\n\treturn dist;\n}\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\nfloat compute_relative_distance_error(int k, const flann::Matrix<float>& dataset, const flann::Matrix<float>& query, const flann::Matrix<float>& dists, const flann::Matrix<int>& gnds) \n{\n\tfloat avg = 0.0;\n    for (int i = 0; i <dists.rows; ++i) //dists.rows\n\t{\n\t\tfloat dist = 0.0;\n        for(int j=0; j<k; j++)\n\t\t{\n\t\t\tfloat d_qr = dists[i][j];   //query.cols\n\t\t\tfloat d_qg = get_distance(dataset[gnds[i][j]],query[i],query.cols);\n            float d=(d_qr - d_qg)/d_qg;\n\t\t\tif(d<=4)\n\t\t\t\tdist += d;\n\t\t\telse\n\t\t\t\tdist += 4; \n\t\t}\n\t\tavg += dist;\n    } \n\treturn avg/k/dists.rows;     \n}\n\nfloat compute_mean_average_precision (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n     float sum = 0;\n     for (int i = 0; i < results.rows; ++i) {\n\t\tfloat rate = 0.0;\n\t\tint count = 0;\n\t\tstd::set<unsigned> gnd_row;\n\t\tint found_last=0;\n\t\tfor(unsigned gs_n=0; gs_n < k; gs_n++)\n\t\t{\n\t\t\tgnd_row.insert(gnds[i][gs_n]);\n\t\t\tint count=0;\n\t\t\tfor(unsigned j=0;j<=gs_n;j++)\n\t\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\trate += count*(count-found_last)/(gs_n+1);\n\t\t\tfound_last=count;\n\t\t}\n        sum += rate/k;\n    }\n    return sum / results.rows;\n}\n\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"wb\",                          required_argument, 0, 'b'},\n    {\"wm\",                          required_argument, 0, 'm'},\n    {\"tp\",                          required_argument, 0, 't'},\n    {\"sf\",                          required_argument, 0, 's'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n\tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tdouble build_weight;\n\tdouble memory_weight;\n\tdouble target_precision;\n\tdouble sample_fraction;\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:b:m:t:s:k:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          build_weight = atof(optarg);\n        }\n        break;\n      case 'm':\n        if (optarg) {\n          memory_weight = atof(optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          target_precision = atof(optarg);\n        }\n        break;\n      case 's':\n        if (optarg) {\n         sample_fraction = atof(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n   \n    load_from_file(dataset,file_path ,\"dataset\");\n    load_from_file(query, file_path ,\"query\");\n    load_from_file(groundtruth, file_path ,\"groundtruth\");\n    \n\tofstream out;\n\tchar result_name[100];\n\tsprintf(result_name,\"%s/%.2fPrecision_%.2fBuild_%.0fMemory_%dK.txt\",result_path,target_precision,build_weight,memory_weight,nn);\n    out.open(result_name,ios::app);\n    \n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<< index_time <<\" #index_time \"<<endl;\n    \n\tchar index_name[100];\n\tsprintf(index_name,\"%s/%.2fPrecision_%.2fBuild_%.0fMemory.index\",index_path,target_precision,build_weight,memory_weight);                                                                       \n    index.save(index_name); \n  \n    int checks[20]= {100,300,500,700,1000,2000,3000,4000,5000,7000,8000,10000,15000,20000,30000,50000,70000,80000,90000,100000}; // \n    for(int c=0;c<20;c++)\n    {\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\t\ttimeval start;\n        gettimeofday(&start, NULL);\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n\t\ttimeval end;\n        gettimeofday(&end, NULL);\n        double search_time = diff_timeval(end, start);\n\n    \t//compute the recall \n    \tfloat recall = compute_recall(nn,indices,groundtruth);\n\t\tfloat rde = compute_relative_distance_error(nn,dataset,query,dists,groundtruth);\n\t\tfloat map = compute_mean_average_precision(nn,indices,groundtruth);\n\n\t\tout.setf(ios::fixed);\n\t\tout << recall << \" \" << rde << \" \" << search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<map<<\" \"<<endl;\n\n    \tdelete[] indices.ptr();\n    \tdelete[] dists.ptr();\n\t\tif(recall==1)\n\t\t\tbreak;\n\t}\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/GIST1M/gist/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"gist1M_KMeans_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(2^14,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = KMeans  Centroids_count = 2^14 iterations=10 cb_index = 0.4\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"gist1M_KMeans_indices\"); \n\n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"gist_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_example.c~",
    "content": "\n\n#include <flann/flann.h>\n\n#include <stdio.h>\n#include <stdlib.h>\n\n\nfloat* read_points(const char* filename, int rows, int cols)\n{\n\tfloat* data;\n\tfloat *p;\n\tFILE* fin;\n\tint i,j;\n\n    fin = fopen(filename,\"r\");\n    if (!fin) {\n        printf(\"Cannot open input file.\\n\");\n        exit(1);\n    }\n    \n    data = (float*) malloc(rows*cols*sizeof(float));\n    if (!data) {\n        printf(\"Cannot allocate memory.\\n\");\n        exit(1);\n    }\n    p = data;\n    \n    for (i=0;i<rows;++i) {\n        for (j=0;j<cols;++j) {\n            fscanf(fin,\"%g \",p);\n            p++;\n        }\n    }\n    \n    fclose(fin);\n    \n    return data;\n}\n\nvoid write_results(const char* filename, int *data, int rows, int cols)\n{\n\tFILE* fout;\n\tint* p;\n\tint i,j;\n\n    fout = fopen(filename,\"w\");\n    if (!fout) {\n        printf(\"Cannot open output file.\\n\");\n        exit(1);\n    }\n    \n    p = data;\n    for (i=0;i<rows;++i) {\n        for (j=0;j<cols;++j) {\n            fprintf(fout,\"%d \",*p);\n            printf(\"i %d j %d %d\\n\",i,j,*p);\n            p++;\n        }\n        fprintf(fout,\"\\n\");\n    }\n    fclose(fout);\n}\n\n\n\nint main(int argc, char** argv)\n{\n\tfloat* dataset;\n\tfloat* testset;\n\tint nn;\n\tint* result;\n\tfloat* dists;\n\tstruct FLANNParameters p;\n\tfloat speedup;\n\tflann_index_t index_id;\n\n    int rows = 10000;\n    int cols = 128;\n    int tcount = 100;\n\n    /*\n     * The files dataset.dat and testset.dat can be downloaded from:\n     * http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.dat\n     * http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/testset.dat\n     */\n    printf(\"Reading input data file.\\n\");\n    dataset = read_points(\"dataset.dat\", rows, cols);\n    printf(\"Reading test data file.\\n\");\n    testset = read_points(\"testset.dat\", tcount, cols);\n    \n    nn = 3;\n    result = (int*) malloc(tcount*nn*sizeof(int));\n    dists = (float*) malloc(tcount*nn*sizeof(float));\n    \n    p = DEFAULT_FLANN_PARAMETERS;\n    p.algorithm = FLANN_INDEX_KDTREE;\n    p.trees = 8;\n    p.log_level = FLANN_LOG_INFO;\n\tp.checks = 64;\n    \n    printf(\"Computing index.\\n\");\n    index_id = flann_build_index(dataset, rows, cols, &speedup, &p);\n    flann_find_nearest_neighbors_index(index_id, testset, tcount, result, dists, nn, &p);\n    \n    write_results(\"results.dat\",result, tcount, nn);\n    \n    flann_free_index(index_id, &p);\n    free(dataset);\n    free(testset);\n    free(result);\n    free(dists);\n    \n    return 0;\n}\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <time.h>\n#include <fstream>\n#include <stdio.h>\n#include <sys/time.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\n\nfloat get_distance(float* point, float* query, int dim)\n{\n\tfloat dist=0.0;\n\tfor(int i=0;i<dim;i++)\n\t{\n\t\tfloat diff = (*point++ - *query++);\n\t\tdist += diff*diff;\n\t}\n\treturn dist;\n}\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\n\nfloat compute_relative_distance_error(int k, const flann::Matrix<float>& dataset, const flann::Matrix<float>& query, const flann::Matrix<float>& dists, const flann::Matrix<int>& gnds) \n{\n\tfloat avg = 0.0;\n    for (int i = 0; i <dists.rows; ++i) //dists.rows\n\t{\n\t\tfloat dist = 0.0;\n        for(int j=0; j<k; j++)\n\t\t{\n\t\t\tfloat d_qr = dists[i][j];   //query.cols\n\t\t\tfloat d_qg = get_distance(dataset[gnds[i][j]],query[i],query.cols);\n            float d=(d_qr - d_qg)/d_qg;\n\t\t\tif(d<=4)\n\t\t\t\tdist += d;\n\t\t\telse\n\t\t\t\tdist += 4; \n\t\t}\n\t\tavg += dist;\n    } \n\treturn avg/k/dists.rows;     \n}\n\nfloat compute_mean_average_precision (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n     float sum = 0;\n     for (int i = 0; i < results.rows; ++i) {\n\t\tfloat rate = 0.0;\n\t\tint count = 0;\n\t\tstd::set<unsigned> gnd_row;\n\t\tint found_last=0;\n\t\tfor(unsigned gs_n=0; gs_n < k; gs_n++)\n\t\t{\n\t\t\tgnd_row.insert(gnds[i][gs_n]);\n\t\t\tint count=0;\n\t\t\tfor(unsigned j=0;j<=gs_n;j++)\n\t\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\trate += count*(count-found_last)*1.0/(gs_n+1);\n\t\t\tfound_last=count;\n\t\t}\n        sum += rate/k;\n    }\n    return sum / results.rows;\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'd'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"branches\",                    required_argument, 0, 'b'},\n    {\"nn\",                          required_argument, 0, 'k'},\n\t{\"iteration\",                   required_argument, 0, 'i'},\n  };\n  \tint id;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint branches;\n\tint iteration;\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:d:r:i:k:b:h\",longopts, &id);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'd':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n\t  case 'i':\n        if (optarg) {\n            iteration = atoi(optarg);\n        }\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          branches = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n\tload_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n    //*\n    ofstream out;\n    out.open(result_path);\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(branches,iteration,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                          \n    index.save(index_path); \n\n    // do a knn search, using 128 chec\n    int checks[19]={20,40,60,80,100,200,300,500,700,1000,1500,2000,3000,4000,5000,7000,10000,15000,20000}; \n    for(int c=0;c<19;c++) //100,200,300,500,700,\n    {\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\t\ttimeval start;\n        gettimeofday(&start, NULL);\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n\t\ttimeval end;\n        gettimeofday(&end, NULL);\n        double search_time = diff_timeval(end, start);\n    \t//compute the recall\n    \n\t\tfloat recall = compute_recall(nn,indices,groundtruth);\n\t\tfloat rde = compute_relative_distance_error(nn,dataset,query,dists,groundtruth);\n\t\tfloat map = compute_mean_average_precision(nn,indices,groundtruth);\n\n\t\tsearch_time=search_time/query.rows;\n\t\tout.setf(ios::fixed);\n\t\tout << recall << \" \" << rde << \" \" << search_time<<\" #N_\"<< checks[c] <<\" \"<<map<<\" \"<<endl;\n\n    \tdelete[] indices.ptr();\n    \tdelete[] dists.ptr();\n\t\tif(recall==1)\n\t\t\tbreak;\n    }\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/MNIST/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"MNIST_H_KMeans_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"MNIST_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"MNIST_H_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_kdtree_tunning.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n#include <getopt.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat get_distance(float* point, float* query, int dim)\n{\n\tfloat dist=0.0;\n\tfor(int i=0;i<dim;i++)\n\t{\n\t\tfloat diff = (*point++ - *query++);\n\t\tdist += diff*diff;\n\t}\n\treturn dist;\n}\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (unsigned i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\nfloat compute_relative_distance_error(int k, const flann::Matrix<float>& dataset, const flann::Matrix<float>& query, const flann::Matrix<float>& dists, const flann::Matrix<int>& gnds) \n{\n\tfloat avg = 0.0;\n    for (unsigned i = 0; i <dists.rows; ++i) //dists.rows\n\t{\n\t\tfloat dist = 0.0;\n        for(unsigned j=0; j<k; j++)\n\t\t{\n\t\t\tfloat d_qr = dists[i][j];   //query.cols\n\t\t\tfloat d_qg = get_distance(dataset[gnds[i][j]],query[i],query.cols);\n            float d=(d_qr - d_qg)/d_qg;\n\t\t\tif(d<=4)\n\t\t\t\tdist += d;\n\t\t\telse\n\t\t\t\tdist += 4; \n\t\t}\n\t\tavg += dist;\n    } \n\treturn avg/k/dists.rows;     \n}\n\nfloat compute_mean_average_precision (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n     float sum = 0;\n     for (unsigned i = 0; i < results.rows; ++i) {\n\t\tfloat rate = 0.0;\n\t\tint count = 0;\n\t\tstd::set<unsigned> gnd_row;\n\t\tint found_last=0;\n\t\tfor(unsigned gs_n=0; gs_n < k; gs_n++)\n\t\t{\n\t\t\tgnd_row.insert(gnds[i][gs_n]);\n\t\t\tint count=0;\n\t\t\tfor(unsigned j=0;j<=gs_n;j++)\n\t\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\trate += count*(count-found_last)*1.0/(gs_n+1);\n\t\t\tfound_last=count;\n\t\t}\n        sum += rate/k;\n    }\n    return sum / results.rows;\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"trees\",                       required_argument, 0, 't'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n  \tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint trees;\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:t:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n     case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 't':\n        if (optarg) {\n          trees = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n\n    ofstream out;\n    out.open(result_path);\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(trees));\n\tclock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<< index_time <<\" #index_time \"<<endl;                              \n    index.save(index_path); \n\n    //do a knn search, using 128 checks\n    int checks[19]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000,35000,40000,45000,50000}; \n    for(int c=0;c<19;c++)\n    {\n\n    \tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    \tMatrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\t\ttimeval start;\n    \tgettimeofday(&start, NULL);\n    \tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n\t\ttimeval end;\n    \tgettimeofday(&end, NULL);\n    \tdouble search_time = diff_timeval(end, start);\n   \n    \tfloat recall = compute_recall(nn,indices,groundtruth);\n\t\tfloat rde = compute_relative_distance_error(nn,dataset,query,dists,groundtruth);\n\t    float map = compute_mean_average_precision(nn,indices,groundtruth);\n\t\tsearch_time=search_time/query.rows;\n\t\n\t\tout.setf(ios::fixed);\n\t\tout << recall << \" \" << rde <<\" \"<< search_time <<\" #N_\"<< checks[c] <<\" \"<<map<<\" \"<<endl;\n\n    \tdelete[] indices.ptr();\n    \tdelete[] dists.ptr();\n\t\tif(recall==1)\n\t\t\tbreak;\n    }\n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/flann_linear_example.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\n\nint main(int argc, char** argv)\n{\n   \n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"gnd_path\",                    required_argument, 0, 'g'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n  \tint index;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar result_path[100];\n\tchar gnd_path[100];\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:r:g:k:p:s:h\",longopts, &index);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'g':\n        if (optarg) {\n\t\t\tstrcpy(gnd_path, optarg);\n        }\n        break;\n\t  case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n\t{\n    Matrix<float> dataset;\n    Matrix<float> query;\n    load_from_file(dataset, file_path ,\"dataset\");\n    load_from_file(query, file_path ,\"query\");\n    \n    ofstream out;\n    out.open(result_path );\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n    \n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n    flann::save_to_file(indices, gnd_path ,\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    }\n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/get_kdtree_level.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\n\nint main(int argc, char** argv)\n{\n    //Audio\n    {\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Audio/data/dataset.hdf5\",\"dataset\");\n    cout<<\"Audio   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr();   \n    } \n/* \n    //Ran_data\n    {\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"dataset\");\n    cout<<\"MNIST   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr();   \n    }\n\n\t{\n    //SIFT1M\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1M/sift/data/dataset.hdf5\",\"dataset\");\n    cout<<\"SIFT1M   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> >  index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr();  \n    }\n    {\n\t//GIST1M\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/GIST1M/gist/data/dataset.hdf5\",\"dataset\");\n    cout<<\"GIST1M   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> >  index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr();  \n    }\n\t{\n\t//MNIST\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/MNIST/data/dataset.hdf5\",\"dataset\");\n    cout<<\"MNIST   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> >  index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr();\n    }\n\t{\n    //SIFT10M\n    Matrix<float> dataset;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/SIFT1B/data/dataset10M.hdf5\",\"dataset\");\n    cout<<\"SIFT10M   rows= \"<<dataset.rows<<endl;\n    //build index\n    Index<L2<float> >  index(dataset, flann::KDTreeIndexParams(4));\n    index.buildIndex();\n    delete[] dataset.ptr(); \n\t}*/\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/glove_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Glove/exp_fig/result/flann_Auto_result.txt\");\n\n    //build index\n\tdouble target_precision=0.95;\n\tdouble build_weight=0.01;\n\tdouble memory_weight=0;\n\tdouble sample_fraction=0.1;\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(target_precision, build_weight, memory_weight, sample_fraction ));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1 \"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"auto/glove_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    \n    \n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    */\n    //flann::save_to_file(indices,\"auto/audio_Auto_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/glove_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"groundtruth\");\n    \n\n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Glove/exp_fig/result/Flann/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                           \n    index.save(\"hkmeans/glove_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    //recall[0]= compute_recall_at(1,indices,groundtruth);\n    //recall[1]= compute_recall_at(10,indices,groundtruth);\n    //recall[2]= compute_recall_at(100,indices,groundtruth);\n    //recall[3]= compute_recall_at(1000,indices,groundtruth);\n    //recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n    //out<<\"#checks = \"<< checks[c] <<endl;\n    //std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    //out<<\"#precision = \"<< precision <<endl; \n    //out<<\"#recall@1 = \"<< recall[0] <<endl; \n    //out<<\"#recall@10 = \"<< recall[1] <<endl; \n    //out<<\"#recall@100 = \"<< recall[2] <<endl; \n    //out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    //out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    //out<< \"\\n\\n\" <<endl;\n    \n    //flann::save_to_file(indices,\"hkmeans/audio_H_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/glove_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Glove/exp_fig/result/Flann/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = KDTree trees=12\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;                                                                       \n    index.save(\"kdtree/glove_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[13]={100,300,500,700,1000,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<13;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n   \n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n    //flann::save_to_file(indices,\"kdtree/audio_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/glove_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    \n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Glove/data/dataset.hdf5\",\"query\");\n    \n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Glove/exp_fig/result/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    //double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\t/*\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Glove/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/hard_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/HardData/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/HardData/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/HardData/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/HardData/exp_fig/result/flann_Auto_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(0.95,0.01,0,0.1));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n   out<< index_time <<\" #index_time \"<<endl;\n                                                                                     \n    index.save(\"auto/hard_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[14]={100,200,300,500,700,1000,2000,3000,5000,10000,15000,20000,30000}; \n    for(int c=0;c<14;c++)\n    {\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    for(int t=0;t<1000;t++)\n    {\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    }\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hard/hard_Auto_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/hard_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"hard/hard_H_KMeans_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n    std::cout<<\"#search_iteration=1000\"<<endl;  \n                                                                               \n    index.save(\"hard/hard_H_KMeans_indices\"); \n    std::cout<<\"H_kmeans\"<<endl;\n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n    \n    \n    start_time_=clock();\n    for(int t=0;t<1000;t++)\n    {\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    }\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hard/hard_H_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/hard_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"hard/hard_KDTree_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    double start_time_=clock();\n    index.buildIndex();\n    double finish_time_=clock();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = KDTree  trees=12\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n    std::cout<<\"#CLOCKS_PER_SEC=\"<<CLOCKS_PER_SEC<<endl;\n    std::cout<<\"#search_iteration=1000\"<<endl;\n                                                                             \n    index.save(\"hard/hard_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[11]={100,300,500,700,1000,2000,3000,5000,10000,20000,30000}; \n    for(int c=0;c<11;c++)\n    {\n    std::cout<<c<<endl; \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n    \n\n    start_time_=clock();\n    for(int t=0;t<1000;t++)\n    {\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    }\n    finish_time_=clock();\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time_clocks = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hard/hard_KDTree_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/hard_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/HardData/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"hard/hard_Linear_result.txt\");\n    // construct an kmeans index using 2^14 centroids\n    //Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = Linear\"<<endl;\n    out<<\"#index_time = \"<< index_time<<endl;\n                                                                                           \n    index.save(\"hard/hard_Linear_indices\"); \n  \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#search_time = \"<< search_time<<endl;\n\tout<<\"index raws:\"<< indices.rows<< \"index cols\"<< indices.cols<<endl;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    float precision = compute_precision(indices,groundtruth);\n\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"hard/hard_Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/linear.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\n\nint main(int argc, char** argv)\n{\n   \n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"gnd_path\",                    required_argument, 0, 'g'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n  \tint index;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar gnd_path[100];\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:g:k:h\",longopts, &index);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'g':\n        if (optarg) {\n\t\t\tstrcpy(gnd_path, optarg);\n        }\n        break;\n\t  case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n\t{\n    Matrix<float> dataset;\n    Matrix<float> query;\n    load_from_file(dataset, file_path ,\"dataset\");\n    load_from_file(query, file_path ,\"query\");\n    \n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n    \n\tcerr<< search_time/query.rows <<\" #search_time\"<<endl;\n    flann::save_to_file(indices, gnd_path ,\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    }\n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/measure_flann.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"data_name\",                   required_argument, 0, 'd'},\n    {\"branches\",                    required_argument, 0, 'b'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n  \tint index;\n  \tint iarg = 0;\n\tchar file_path[20];\n\tchar data_name[10];\n\tint branches;\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:d:k:b:h\",longopts, &index);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'd':\n        if (optarg) {\n\t\t\tstrcpy(data_name, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          branches = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\tMatrix<int> indices;\n\n\tchar data_path[100];\n\tsprintf(data_path,\"/home/liwen/Downloads/Dataset/%s/data/dataset.hdf5\",file_path);\n    load_from_file(dataset, data_path,\"dataset\");\n    load_from_file(query, data_path,\"query\");\n    load_from_file(groundtruth,data_path,\"groundtruth\");\n    \n\tchar indices_path[100];\n\tsprintf(indices_path,\"/home/liwen/Downloads/Dataset/%s/result/hkmeans_result_%dbranches_%dk.hdf5\",file_path,branches,nn);\n    load_from_file(indices,indices_path,\"result\");\n\tcout<< indices.rows << \" \" << indices.cols<<endl;\n\n    ofstream out;\n\tchar result_path[100];\n\tsprintf(result_path,\"/home/liwen/Downloads/Dataset/%s/exp_fig/result/Flann/flann_HKMeans_%dbranches_%dk_measure.txt\",file_path,branches,nn);\n    //out.open(result_path);\n    \n\t//float recall = \n\t//float rde = \n\t//float mrr = \n\t//float nc = \n\t//float map = \n\t//float dcg = \n\n\t//compute_precision(indices,groundtruth);\n\t//out_recall.setf(ios::fixed);\n\t//out_recall << recall[0] << \" \" << recall[1] << \" \" << recall[2] << \" \" << recall[3] << \" \" << recall[4] << \" \" << search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/measure_hkmeans.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tassert(match.rows == indices.rows);\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tint re_n=0;\n\t\tint gs_n=0;\n\t\twhile(re_n<k && gs_n<k)\n\t\t{\n\t\t\tif(results[i][re_n] == gnds[i][gs_n])\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t\tre_n++;\n\t\t\t\tgs_n++;\n\t\t\t}\n\t\t\telse\n\t\t\t\tgs_n++;\n\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\nvoid compute_relative_distance_error(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds) \n{\n\tfloat avg = 0;\n    for (int i = 0; i <results.rows; ++i) {\n        for(int j=0; j<k; j++)\n\t\t\tfloat d_qr=0;\n           float d=(re_row[re_n]-gs_row[gs_n])/gs_row[gs_n];\n\t\t\t\tif(d<=4)\n\t\t\t\t\tdist += d;\n\t\t\t\telse\n\t\t\t\t\tdist+=4; \n  \t\t\t\t++gs_n;\n                ++re_n;\n\t\t\t}\n\t\t\tavg += dist/K;\n        }\n        \n    }\n\nfloat compute_number_closer (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{        \n\tfloat sum = 0;\n    for (int i = 0; i < results.rows; ++i) {\n\t\tfloat rate = 0.0;\n\t\tfor (int gs_n=0;gs_n < k ;gs_n++)\n\t\t{\n\t\t\tfor(int re_n=0; re_n < k; re_n++)\n\t\t\t{\n\t\t\t\tif(gnds[i][gs_n]==results[i][re_n])\n\t\t\t\t{\n\t\t\t\t\trate += (float)(gs_n+1)/(re_n+1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n        sum += rate/k;\n    }\n    return sum / results.rows;\n}\n\nfloat compute_mean_reciprocal_rank (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tfloat sum = 0;\n    for (int i = 0; i < results.rows; ++i) {\n\t\tfloat rate = 0.0;\n\t\tfor(int re_n=0; re_n < k; re_n++)\n\t\t{\n\t\t\tif(gnds[i][0]==results[re_n])\n\t\t\t{\n\t\t\t\trate += 1.0/(re_n+1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n        sum += rate;\n    }\n    return sum / results.rows;\n}\n\nfloat compute_mean_average_precision (int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n     float sum = 0;\n     for (int i = 0; i < results.rows; ++i) {\n\t\t\tfloat rate = 0.0;\n\t\t\tunsigned re_n = 0;\n\t\t\tint count = 0;\n\t\t\tfor(unsigned gs_n=0; gs_n < k; gs_n++)\n\t\t\t{\n\t\t\t\tif(gs_row[gs_n]==re_row[re_n])\n\t\t\t\t{\n\t\t\t\t\tcount++;\n\t\t\t\t\trate += 1.0*(count)/(gs_n+1);\n\t\t\t\t\tre_n ++;\n\t\t\t\t}\n\t\t\t}\n            sum += rate/k;\n        }\n        return sum / results.rows;\n    }\n\nfloat compute_discounted_culmulative_gain(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n    float sum = 0;\n    for (unsigned i = 0; i < results.rows; ++i) {\n        \n\t\tfloat rate = 0.0;\n\t\tunsigned re_n = 0;\n\t\tfor(unsigned gs_n=0; gs_n <k; gs_n++)\n\t\t{\n\t\t\tif(gnds[i][gs_n]==results[i][re_n])\n\t\t\t{\n\t\t\t\trate += 1.0/log2(gs_n+2);\n\t\t\t\tre_n ++;\n\t\t\t}\n\t\t}\n        sum += rate;\n    }\n    return sum / results.rows;\n}\n\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"data_name\",                   required_argument, 0, 'd'},\n    {\"branches\",                    required_argument, 0, 'b'},\n    {\"nn\",                          required_argument, 0, 'k'},\n  };\n  \tint index;\n  \tint iarg = 0;\n\tchar file_path[20];\n\tchar data_name[10];\n\tint branches;\n\tint nn;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:d:k:b:h\",longopts, &index);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'd':\n        if (optarg) {\n\t\t\tstrcpy(data_name, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'b':\n        if (optarg) {\n          branches = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\tMatrix<int> indices;\n\n\tchar data_path[100];\n\tsprintf(data_path,\"/home/liwen/Downloads/Dataset/%s/data/dataset.hdf5\",file_path);\n    load_from_file(dataset, data_path,\"dataset\");\n    load_from_file(query, data_path,\"query\");\n    load_from_file(groundtruth,data_path,\"groundtruth\");\n    \n\tchar indices_path[100];\n\tsprintf(indices_path,\"/home/liwen/Downloads/Dataset/%s/result/hkmeans_result_%dbranches_%dk.hdf5\",file_path,branches,nn);\n    load_from_file(indices,indices_path,\"result\");\n\tcout<< indices.rows << \" \" << indices.cols<<endl;\n\n    ofstream out;\n\tchar result_path[100];\n\tsprintf(result_path,\"/home/liwen/Downloads/Dataset/%s/exp_fig/result/Flann/flann_HKMeans_%dbranches_%dk_measure.txt\",file_path,branches,nn);\n    //out.open(result_path);\n    \n\tfloat recall = compute_recall(nn,indices,groundtruth);\n\tfloat rde = compute_relative_distance_error(nn,indices,groundtruth);\n\tfloat mrr = compute_mean_reciprocal_rank(nn,indices,groundtruth);\n\tfloat nc = compute_number_closer(nn,indices,groundtruth);\n\tfloat map = compute_mean_average_precision(nn,indices,groundtruth);\n\tfloat dcg = compute_discounted_culmulative_gain(nn,indices,groundtruth);\n\n\t//compute_precision(indices,groundtruth);\n\t//out_recall.setf(ios::fixed);\n\t//out_recall << recall[0] << \" \" << recall[1] << \" \" << recall[2] << \" \" << recall[3] << \" \" << recall[4] << \" \" << search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/ran_flann_auto_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"groundtruth\");\n    \n    \n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Ran_Data/exp_fig/result/Flann/flann_Auto_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::AutotunedIndexParams(0.95,0.01,0,0.1));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    out<<\"#Algorithm = Auto  target_precision = 0.95, build_weight = 0.01, memory_weight = 0, sample_fraction = 0.1\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;\n                                                                                     \n    index.save(\"auto/ran_Auto_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    { \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    \n    float precision = compute_precision(indices,groundtruth);\n\tout.setf(ios::fixed);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t/*\t\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl; \n    flann::save_to_file(indices,\"ran/ran_Auto_result.hdf5\",\"result\");\n\t*/\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/ran_flann_h_kmeans_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"groundtruth\");\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Ran_Data/exp_fig/result/Flann/flann_H_KMeans_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KMeansIndexParams(64,10,FLANN_CENTERS_RANDOM ,0.4));\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"Algorithm = H_KMeans  Centroids_count = 64 iterations=10 cb_index = 0.4\"<<endl;\n\tout<< index_time <<\" #index_time \"<<endl;\n                                                                               \n    index.save(\"hkmeans/ran_H_KMeans_indices\"); \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n    \n    \n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n    //compute the recall \n\n    \n    float precision = compute_precision(indices,groundtruth);\n\tout.setf(ios::fixed);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t\n\t/*\t\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"ran/ran_H_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/ran_flann_kdtree_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 1;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n\tload_from_file(dataset, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"query\");\n    load_from_file(groundtruth,\"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"groundtruth\");\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Ran_Data/exp_fig/result/Flann/flann_KDTree_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::KDTreeIndexParams(12));\n    double start_time_=clock();\n    index.buildIndex();\n    double finish_time_=clock();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = KDTree  trees=12\"<<endl;\n    out<< index_time <<\" #index_time \"<<endl;                                                                        \n    index.save(\"kdtree/ran_KDTree_indices\"); \n  \n    // do a knn search, using 128 checks\n    int checks[15]={100,200,300,500,700,1000,1500,2000,3000,5000,7000,10000,15000,20000,30000}; \n    for(int c=0;c<15;c++)\n    {\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n    \n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(checks[c]));\n    finish_time_=clock();\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\n    //compute the recall \n    float precision = compute_precision(indices,groundtruth);\n\tout.setf(ios::fixed);\n\tout<< precision <<\" \"<< search_time/query.rows <<\" #N_\"<< checks[c] <<\" \"<<endl;\n\t/*\n    double recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    out<<\"#checks = \"<< checks[c] <<endl;\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    \n    flann::save_to_file(indices,\"ran/ran_KDTree_result.hdf5\",\"result\");\n\t*/\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    }\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/ran_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\nfloat compute_recall_at(const size_t nn, const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\t//size_t nn = match.cols; //std::min(match.cols, indices.cols);\n\n\tfor (size_t i=0; i<match.rows; ++i) \n\t{\n\t\tfor (size_t j=0;j<nn;++j) \n\t\t{\n\t\t\tif (match[i][j]==indices[i][0]) \n\t\t\t{\n\t\t\t\tcount ++;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(match.rows);\n}\n\n\nint main(int argc, char** argv)\n{\n    int nn = 100;\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Ran_Data/data/dataset.hdf5\",\"query\");\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Ran_Data/exp_fig/result/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    clock_t start_time_=clock();\n    index.buildIndex();\n    double index_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    out<<\"#Algorithm = Linear\"<<endl;\n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n\n    //compute the recall \n    //std::ofstream out(\"result.txt\");\n    \n    float precision = compute_precision(indices,groundtruth);\n\tout<< search_time/query.rows <<\" #search_time \"<<endl;\n\t/*\n\tdouble recall[5]={0.0,0.0,0.0,0.0,0.0};\n    recall[0]= compute_recall_at(1,indices,groundtruth);\n    recall[1]= compute_recall_at(10,indices,groundtruth);\n    recall[2]= compute_recall_at(100,indices,groundtruth);\n    recall[3]= compute_recall_at(1000,indices,groundtruth);\n    recall[4]= compute_recall_at(10000,indices,groundtruth);\n\n    std::cout<<\"#result_count = \"<< indices.rows <<\" cols :\"<< indices.cols << endl;\n    out<<\"#precision = \"<< precision <<endl; \n    out<<\"#recall@1 = \"<< recall[0] <<endl; \n    out<<\"#recall@10 = \"<< recall[1] <<endl; \n    out<<\"#recall@100 = \"<< recall[2] <<endl; \n    out<<\"#recall@1000 = \"<< recall[3] <<endl; \n    out<<\"#recall@10000 = \"<< recall[4] <<endl;\n    out<< \"\\n\\n\" <<endl;\n    */\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Ran_Data/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_auto.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n\tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n            c = atof(optarg);\n        }\n        break;\n      }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n   \n    load_from_file(dataset,file_path ,\"dataset\");\n    load_from_file(query, file_path ,\"query\");\n    load_from_file(groundtruth, file_path ,\"groundtruth\");\n    \n\tofstream out;\n    out.open(result_path,ios::app);\t\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path));  \n  \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n\n    \t//compute the recall \n    float recall = compute_recall(nn,indices,groundtruth);\n\n\tout.setf(ios::fixed);\n\tout << recall << \" \" << search_time/query.rows <<\" #N_\"<< c <<\" \"<<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n\tdelete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_auto.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <sys/time.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n\tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n            c = atof(optarg);\n        }\n        break;\n      }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n   \n    load_from_file(dataset,file_path ,\"dataset\");\n    load_from_file(query, file_path ,\"query\");\n    load_from_file(groundtruth, file_path ,\"groundtruth\");\n    \n\tofstream out;\n    out.open(result_path,ios::app);\t\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path));  \n  \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n\n    \t//compute the recall \n    float recall = compute_recall(nn,indices,groundtruth);\n\n\tout.setf(ios::fixed);\n\tout << recall << \" \" <<  << search_time/query.rows <<\" #N_\"<< c <<\" \"<<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n\tdelete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_hkmeans.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <time.h>\n#include <fstream>\n#include <stdio.h>\n#include <sys/time.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n  \tint id;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &id);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n\t  \n      case 'c':\n        if (optarg) {\n\t\t\tc = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n\tload_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n    //*\n    ofstream out;\n    out.open(result_path,ios::app);\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path)); \n\n    // do a knn search, using 128 chec\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n    \t//compute the recall\n    \n\tfloat recall = compute_recall(nn,indices,groundtruth);\n\t\n\tsearch_time=search_time/query.rows;\n\tout.setf(ios::fixed);\n\tout << recall << \" \" << search_time<<\" #N_\"<< c <<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_hkmeans.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <getopt.h>\n#include <time.h>\n#include <fstream>\n#include <stdio.h>\n#include <sys/time.h>\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (int i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\n\n\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n\t{\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n  \tint id;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &id);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n      case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n\t  \n      case 'c':\n        if (optarg) {\n\t\t\tc = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n\tload_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n    //*\n    ofstream out;\n    out.open(result_path,iso:app);\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path)); \n\n    // do a knn search, using 128 chec\n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n    \t//compute the recall\n    \n\tfloat recall = compute_recall(nn,indices,groundtruth);\n\t\n\tsearch_time=search_time/query.rows;\n\tout.setf(ios::fixed);\n\tout << recall << \" \" << search_time<<\" #N_\"<< c <<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n\n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_kdtree.cpp",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n#include <getopt.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (unsigned i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n  \tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n     case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n          c = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n\n    ofstream out;\n    out.open(result_path,ios::app);\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path)); \n\n\n    //do a knn search, using 128 checks\n\tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n   \n    float recall = compute_recall(nn,indices,groundtruth);\n\tsearch_time=search_time/query.rows;\n\t\n\tout.setf(ios::fixed);\n\tout << recall <<\" \"<< search_time <<\" #N_\"<< c <<\" \"<<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n\tdelete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/search_kdtree.cpp~",
    "content": "#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n#include <sys/time.h>\n#include <getopt.h>\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nfloat compute_recall(int k,const flann::Matrix<int>& results, const flann::Matrix<int>& gnds)\n{\n\tint count = 0;\n\tfor (unsigned i=0; i<results.rows; ++i) {\n\t\tstd::set<unsigned> gnd_row;\n\t\tfor(int j=0;j<k;j++)\n\t\t\tgnd_row.insert(gnds[i][j]);\n\t\tfor(unsigned j=0;j<k;j++)\n\t\t\tif(gnd_row.find(results[i][j])!=gnd_row.end())\n\t\t\t{\n\t\t\t\tcount++;\n\t\t\t}\n\t}\n\treturn float(count)/(k*results.rows);\n}\nfloat diff_timeval(timeval t1, timeval t2) {\r\n  return (float) (t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) * 1e-6;\r\n}\n\nint main(int argc, char** argv)\n{\n\n\tconst struct option longopts[] ={\n    {\"help\",                        no_argument,       0, 'h'},\n    {\"file_path\",                   required_argument, 0, 'f'},\n    {\"index_path\",                  required_argument, 0, 'i'},\n    {\"result_path\",                 required_argument, 0, 'r'},\n    {\"nn\",                          required_argument, 0, 'k'},\n    {\"checks\",                      required_argument, 0, 'c'},\n  };\n  \tint ind;\n  \tint iarg = 0;\n\tchar file_path[100];\n\tchar index_path[100];\n\tchar result_path[100];\n\tint nn;\n\tint c;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:i:r:k:c:h\",longopts, &ind);\n\n    switch (iarg) {\n      case 'f':\n        if (optarg) {\n\t\t\tstrcpy(file_path, optarg);\n        }\n        break;\n     case 'i':\n        if (optarg) {\n\t\t\tstrcpy(index_path, optarg);\n        }\n        break;\n      case 'r':\n        if (optarg) {\n\t\t\tstrcpy(result_path, optarg);\n        }\n        break;\n      case 'k':\n        if (optarg) {\n\t\t\tnn = atoi(optarg);\n        }\n        break;\n      case 'c':\n        if (optarg) {\n          c = atoi(optarg);\n        }\n        break;\n    }\n\t}\n\n    Matrix<float> dataset;\n    Matrix<float> query;\n    Matrix<int> groundtruth;\n\n    load_from_file(dataset, file_path,\"dataset\");\n    load_from_file(query, file_path,\"query\");\n    load_from_file(groundtruth, file_path,\"groundtruth\");\n\n    ofstream out;\n    out.open(result_path,iso::app);\n\tIndex<L2<float> > index(dataset, flann::SavedIndexParams(index_path)); \n\n\n    //do a knn search, using 128 checks\n\tMatrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\ttimeval start;\n    gettimeofday(&start, NULL);\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams(c));\n\ttimeval end;\n    gettimeofday(&end, NULL);\n    double search_time = diff_timeval(end, start);\n   \n    float recall = compute_recall(nn,indices,groundtruth);\n\tsearch_time=search_time/query.rows;\n\t\n\tout.setf(ios::fixed);\n\tout << recall <<\" \"<< search_time <<\" #N_\"<< c <<\" \"<<endl;\n\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n\tdelete[] dataset.ptr();\n    delete[] query.ptr();\n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/sun_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nint main(int argc, char** argv)\n{\n   \n    Matrix<float> dataset;\n    Matrix<float> query;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Sun397/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Sun397/data/dataset.hdf5\",\"query\");\n    cout<<\"read\"<<endl;\n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Sun397/exp_fig/result/Flann/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Sun397/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/trevi_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing std::endl;\nusing std::ofstream;\n\nint main(int argc, char** argv)\n{\n   \n    Matrix<float> dataset;\n    Matrix<float> query;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Trevi/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Trevi/data/dataset.hdf5\",\"query\");\n    cout<<\"read\"<<endl;\n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Trevi/exp_fig/result/Flann/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Trevi/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/examples/youtube_flann_linear_example.cpp~",
    "content": "\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\n\n#include <fstream>\n#include <stdio.h>\n\n\nusing namespace flann;\nusing namespace std;\nusing std::endl;\nusing std::ofstream;\n\nint main(int argc, char** argv)\n{\n   \n    Matrix<float> dataset;\n    Matrix<float> query;\n\n    load_from_file(dataset, \"/home/liwen/Downloads/Dataset/Youtube_Faces/data/dataset.hdf5\",\"dataset\");\n    load_from_file(query, \"/home/liwen/Downloads/Dataset/Youtube_Faces/data/dataset.hdf5\",\"query\");\n    cout<<\"read\"<<endl;\n    int nn =100;\n    \n    ofstream out;\n    out.open(\"/home/liwen/Downloads/Dataset/Youtube_Faces/exp_fig/result/Flann/flann_Linear_result.txt\");\n\n    //build index\n    Index<L2<float> > index(dataset, flann::LinearIndexParams());\n    index.buildIndex();\n    out<<\"#Algorithm = Linear\"<<endl;\n                                                                                            \n    // do a knn search, using 128 checks\n    \n    Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n    Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n    clock_t start_time_=clock();\n    index.knnSearch(query, indices, dists, nn, flann::SearchParams());\n    double search_time = double(clock()-start_time_)/CLOCKS_PER_SEC;\n    \n\tout<< search_time/query.rows <<\" #search_time\"<<endl;\n\n    flann::save_to_file(indices,\"/home/liwen/Downloads/Dataset/Youtube Faces/gnd/Linear_result.hdf5\",\"result\");\n    delete[] indices.ptr();\n    delete[] dists.ptr();\n    \n\n    delete[] dataset.ptr();\n    delete[] query.ptr();\n    \n  \n    \n    return 0;\n}\n\n\n"
  },
  {
    "path": "algorithms/flann/code/src/CMakeLists.txt",
    "content": "\nadd_subdirectory( cpp )\n\nif (BUILD_MATLAB_BINDINGS)\n    add_subdirectory( matlab )\nendif()\n\nif (BUILD_PYTHON_BINDINGS)\n    add_subdirectory( python )\nendif()\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/CMakeLists.txt",
    "content": "#include_directories(${CMAKE_SOURCE_DIR}/include algorithms util nn .)\n\nadd_definitions(-D_FLANN_VERSION=${FLANN_VERSION})\n\nconfigure_file(${CMAKE_CURRENT_SOURCE_DIR}/flann/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/flann/config.h)\n\nfile(GLOB_RECURSE C_SOURCES flann.cpp)\nfile(GLOB_RECURSE CPP_SOURCES flann_cpp.cpp)\nfile(GLOB_RECURSE CU_SOURCES *.cu)\n\nadd_library(flann_cpp_s STATIC ${CPP_SOURCES})\nif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)\n    set_target_properties(flann_cpp_s PROPERTIES COMPILE_FLAGS -fPIC)\nendif()\nset_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC FLANN_USE_CUDA)\n\nif (BUILD_CUDA_LIB)\n    SET(CUDA_NVCC_FLAGS -DFLANN_USE_CUDA)\n    if(CMAKE_COMPILER_IS_GNUCC)\n\t\tset(CUDA_NVCC_FLAGS \"${CUDA_NVCC_FLAGS};-Xcompiler;-fPIC;-arch=sm_13\" )\n        if (NVCC_COMPILER_BINDIR)\n            set(CUDA_NVCC_FLAGS \"${CUDA_NVCC_FLAGS};--compiler-bindir=${NVCC_COMPILER_BINDIR}\")\n        endif()\n    else()\n\t    set(CUDA_NVCC_FLAGS \"${CUDA_NVCC_FLAGS};-arch=sm_13\" )\n    endif()\n    cuda_add_library(flann_cuda_s STATIC ${CU_SOURCES})\n    set_property(TARGET flann_cuda_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)\nendif()\n\nif(CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_COMPILER_IS_GNUCC)\n    add_library(flann_cpp SHARED \"\")\n    set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)\n    target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)\n\n    if (BUILD_CUDA_LIB)\n\t    cuda_add_library(flann_cuda SHARED \"\")\n        set_target_properties(flann_cuda PROPERTIES LINKER_LANGUAGE CXX)\n        target_link_libraries(flann_cuda -Wl,-whole-archive flann_cuda_s -Wl,-no-whole-archive)\n        set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA)\n    # \ttarget_link_libraries(flann_cuda cudpp_x86_64)\n    endif()\nelse()\n    add_library(flann_cpp SHARED ${CPP_SOURCES})\n    if (BUILD_CUDA_LIB)\n\t\tcuda_add_library(flann_cuda SHARED ${CPP_SOURCES})\n        set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA)\n    endif()\nendif()\n\nset_target_properties(flann_cpp PROPERTIES\n   VERSION ${FLANN_VERSION}\n   SOVERSION ${FLANN_SOVERSION}\n   DEFINE_SYMBOL FLANN_EXPORTS\n) \n\nif (BUILD_CUDA_LIB)\n    set_target_properties(flann_cuda PROPERTIES\n       VERSION ${FLANN_VERSION}\n       SOVERSION ${FLANN_SOVERSION}\n       DEFINE_SYMBOL FLANN_EXPORTS\n    ) \nendif()\n\n\nif (USE_MPI AND HDF5_IS_PARALLEL)\n    add_executable(flann_mpi_server flann/mpi/flann_mpi_server.cpp)\n    target_link_libraries(flann_mpi_server flann_cpp ${HDF5_LIBRARIES} ${MPI_LIBRARIES} ${Boost_LIBRARIES})\n\n    add_executable(flann_mpi_client flann/mpi/flann_mpi_client.cpp)\n    target_link_libraries(flann_mpi_client flann_cpp ${HDF5_LIBRARIES} ${MPI_LIBRARIES} ${Boost_LIBRARIES})\n\n    install (TARGETS flann_mpi_client flann_mpi_server\n        DESTINATION bin)\nendif()\n\n\nif (BUILD_C_BINDINGS)\n    add_library(flann_s STATIC ${C_SOURCES})\n    if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)\n        set_target_properties(flann_s PROPERTIES COMPILE_FLAGS -fPIC)\n    endif()\n    set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)\n\n    if(CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_COMPILER_IS_GNUCC)\n        add_library(flann SHARED \"\")\n        set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)\n        target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)\n    else()\n        add_library(flann SHARED ${C_SOURCES})\n    endif()\n\n    set_target_properties(flann PROPERTIES\n       VERSION ${FLANN_VERSION}\n       SOVERSION ${FLANN_SOVERSION}\n       DEFINE_SYMBOL FLANN_EXPORTS\n    ) \nendif()\n\nif(WIN32)\nif (BUILD_C_BINDINGS)\n    install (\n        TARGETS flann\n        RUNTIME DESTINATION share/flann/matlab\n    )\nendif()\nendif(WIN32)\n\n\ninstall (\n    TARGETS flann_cpp flann_cpp_s\n    RUNTIME DESTINATION bin\n    LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}\n    ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}\n)\n \nif (BUILD_CUDA_LIB)\n    install (\n        TARGETS flann_cuda flann_cuda_s\n        RUNTIME DESTINATION bin\n        LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}\n        ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}\n    )\nendif()\n\nif (BUILD_C_BINDINGS)\n    install (\n        TARGETS flann flann_s\n        RUNTIME DESTINATION bin\n        LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}\n        ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}\n    )\nendif()\n\ninstall (\n    DIRECTORY flann\n    DESTINATION include\n    FILES_MATCHING PATTERN \"*.h\" PATTERN \"*.hpp\"\n)\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/#kmeans_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\nusing namespace std;\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n\n    int kk;\n\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        \n        computeNodeStatistics(root_, indices);\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n\t\t\n        /*\n        for(int i=0;i<branching_;i++)\n        {\n\t\t\tNodePtr node=root_->childs[i];\n            std::cout<<node->size<<endl;\n        }*/\n\t\t/*\n\t\tcout<<size_<<endl;\n\t\tcout<<counts.size()<<endl;\n\t\tsort(counts.begin(),counts.end());\n\t\tfloat var = 0;\n\t\tfloat avg = size_*1.0 / counts.size();\n\t\tfor(int i=counts.size()-1; i>=0 ;i--)\n\t\t{\n\t\t\tfloat tmp = avg - counts[i];\n\t\t\tvar += tmp*tmp;\n\t\t}\n\t\tvar /= counts.size();\n\t\tcout<<counts[0]<<\" \"<<counts[counts.size()-1]<<\" \"<<avg<<\" \"<<var<<endl;\n\t\tfor(int i=counts.size()-1;i>=0;i--)\n\t\t\tcout<<counts[i]<<\" \";\n\t\tcout<<\"\\n\";\n\n\n\t\t//write index\n\t\tFILE * fp=fopen(\"index.km\",\"wb\");\n\t\t//cout<<clusters.size()<<\" \"<<veclen_<<endl;\n\t\tint cluster_size = clusters.size();\n\t\tfwrite(&cluster_size,sizeof(int),1,fp);\n\t\tfor(int i=0;i<cluster_size;i++)\n\t\t{\n\t\t\t_clus cc=clusters[i];\n\t\t\tfloat * center=cc.center;\n\t\t\tint * ids=cc.ids;\n\t\t\tint size = cc.size;\n\t\t\tfwrite(center,sizeof(float),veclen_,fp);\n\t\t\tfwrite(&size,sizeof(int),1,fp);\n\t\t\tfwrite(ids,sizeof(int),size,fp);\n\t\t}\n\t\tfclose(fp);*/\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n\tvector<int> counts;\n\tstruct _clus\n\t{\n\t\tint size;\n\t\tfloat * center;\n\t\tint * ids;\n\t};\n\tvector<_clus> clusters;\n    \n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n        if (indices_length < branching) {    \n            node->points.resize(indices_length);\n\t\t\t/*\n\t\t\tcounts.push_back(indices_length);\n\t\t\tfloat* mean = new float[veclen_];\n        \tmemset(mean,0,veclen_*sizeof(float));\n        \tfor (size_t i=0; i<indices_length; ++i) {\n            \tElementType* vec = points_[indices[i]];\n            \tfor (size_t j=0; j<veclen_; ++j) {\n                \tmean[j] += vec[j];\n            \t}\n        \t}\n\t\t\tfor(int i=0;i<veclen_;i++)\n\t\t\t\tmean[i]=mean[i]/indices_length;\n\t\t\tint* ids = new int[indices_length];\n\t\t\t*/\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n\t\t\t\t//ids[i]=indices[i];\n            }\n\t\t\t/*\n\t\t\t_clus cc;\n\t\t\tcc.size = indices_length;\n\t\t\tcc.center = mean;\n\t\t\tcc.ids = ids;\n\t\t\tclusters.push_back(cc);\n\t\t\t*/\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<=branching) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n        \n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            kk++;\n            start=end;\n        }\n        \n\n        delete[] dcenters.ptr();\n    }\n  \n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/#kmeans_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\nusing namespace std;\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n\n    int kk;\n\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        \n        computeNodeStatistics(root_, indices);\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n\t\t\n        /*\n        for(int i=0;i<branching_;i++)\n        {\n\t\t\tNodePtr node=root_->childs[i];\n            std::cout<<node->size<<endl;\n        }*/\n\t\t/*\n\t\tcout<<size_<<endl;\n\t\tcout<<counts.size()<<endl;\n\t\tsort(counts.begin(),counts.end());\n\t\tfloat var = 0;\n\t\tfloat avg = size_*1.0 / counts.size();\n\t\tfor(int i=counts.size()-1; i>=0 ;i--)\n\t\t{\n\t\t\tfloat tmp = avg - counts[i];\n\t\t\tvar += tmp*tmp;\n\t\t}\n\t\tvar /= counts.size();\n\t\tcout<<counts[0]<<\" \"<<counts[counts.size()-1]<<\" \"<<avg<<\" \"<<var<<endl;\n\t\tfor(int i=counts.size()-1;i>=0;i--)\n\t\t\tcout<<counts[i]<<\" \";\n\t\tcout<<\"\\n\";\n\n\n\t\t//write index\n\t\tFILE * fp=fopen(\"index.km\",\"wb\");\n\t\t//cout<<clusters.size()<<\" \"<<veclen_<<endl;\n\t\tint cluster_size = clusters.size();\n\t\tfwrite(&cluster_size,sizeof(int),1,fp);\n\t\tfor(int i=0;i<cluster_size;i++)\n\t\t{\n\t\t\t_clus cc=clusters[i];\n\t\t\tfloat * center=cc.center;\n\t\t\tint * ids=cc.ids;\n\t\t\tint size = cc.size;\n\t\t\tfwrite(center,sizeof(float),veclen_,fp);\n\t\t\tfwrite(&size,sizeof(int),1,fp);\n\t\t\tfwrite(ids,sizeof(int),size,fp);\n\t\t}\n\t\tfclose(fp);*/\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n\tvector<int> counts;\n\tstruct _clus\n\t{\n\t\tint size;\n\t\tfloat * center;\n\t\tint * ids;\n\t};\n\tvector<_clus> clusters;\n    \n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n        if (indices_length < branching) {    \n            node->points.resize(indices_length);\n\t\t\t/*\n\t\t\tcounts.push_back(indices_length);\n\t\t\tfloat* mean = new float[veclen_];\n        \tmemset(mean,0,veclen_*sizeof(float));\n        \tfor (size_t i=0; i<indices_length; ++i) {\n            \tElementType* vec = points_[indices[i]];\n            \tfor (size_t j=0; j<veclen_; ++j) {\n                \tmean[j] += vec[j];\n            \t}\n        \t}\n\t\t\tfor(int i=0;i<veclen_;i++)\n\t\t\t\tmean[i]=mean[i]/indices_length;\n\t\t\tint* ids = new int[indices_length];\n\t\t\t*/\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n\t\t\t\t//ids[i]=indices[i];\n            }\n\t\t\t/*\n\t\t\t_clus cc;\n\t\t\tcc.size = indices_length;\n\t\t\tcc.center = mean;\n\t\t\tcc.ids = ids;\n\t\t\tclusters.push_back(cc);\n\t\t\t*/\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<=branching) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n        \n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            kk++;\n            start=end;\n        }\n        \n\n        delete[] dcenters.ptr();\n    }\n  \n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/#nn_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_NNINDEX_H\n#define FLANN_NNINDEX_H\n\n#include <vector>\n//#include <iostream>\n#include \"flann/general.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/params.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/saving.h\"\n\n\nnamespace flann\n{\n\n#define KNN_HEAP_THRESHOLD 250\n\n\nclass IndexBase\n{\npublic:\n    virtual ~IndexBase() {};\n\n    virtual size_t veclen() const = 0;\n\n    virtual size_t size() const = 0;\n\n    virtual flann_algorithm_t getType() const = 0;\n\n    virtual int usedMemory() const = 0;\n\n    virtual IndexParams getParameters() const = 0;\n\n    virtual void loadIndex(FILE* stream) = 0;\n\n    virtual void saveIndex(FILE* stream) = 0;\n};\n\n/**\n * Nearest-neighbour index base class\n */\ntemplate <typename Distance>\nclass NNIndex : public IndexBase\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n\tNNIndex(Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tremoved_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const IndexParams& params, Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tindex_params_(params), removed_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const NNIndex& other) :\n\t\tdistance_(other.distance_),\n\t\tlast_id_(other.last_id_),\n\t\tsize_(other.size_),\n\t\tsize_at_build_(other.size_at_build_),\n\t\tveclen_(other.veclen_),\n\t\tindex_params_(other.index_params_),\n\t\tremoved_(other.removed_),\n\t\tremoved_points_(other.removed_points_),\n\t\tremoved_count_(other.removed_count_),\n\t\tids_(other.ids_),\n\t\tpoints_(other.points_),\n\t\tdata_ptr_(NULL)\n\t{\n\t\tif (other.data_ptr_) {\n\t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n\t\t\tstd::copy(other.data_ptr_, other.data_ptr_+size_*veclen_, data_ptr_);\n\t\t\tfor (size_t i=0;i<size_;++i) {\n\t\t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n\t\t\t}\n\t\t}\n\t}\n\n\tvirtual ~NNIndex()\n\t{\n\t\tif (data_ptr_) {\n\t\t\tdelete[] data_ptr_;\n\t\t}\n\t}\n\n\n\tvirtual NNIndex* clone() const = 0;\n\n\t/**\n\t * Builds the index\n\t */\n\tvirtual void buildIndex()\n\t{\n    \tfreeIndex();\n    \tcleanRemovedPoints();\n\n    \t// building index\n\t\tbuildIndexImpl();\n\n        size_at_build_ = size_;\n\n\t}\n\n\t/**\n\t * Builds th index using using the specified dataset\n\t * @param dataset the dataset to use\n\t */\n    virtual void buildIndex(const Matrix<ElementType>& dataset)\n    {\n        setDataset(dataset);\n        this->buildIndex();\n    }\n\n\t/**\n\t * @brief Incrementally add points to the index.\n\t * @param points Matrix with points to be added\n\t * @param rebuild_threshold\n\t */\n    virtual void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        throw FLANNException(\"Functionality not supported by this index\");\n    }\n\n    /**\n     * Remove point from the index\n     * @param index Index of point to be removed\n     */\n    virtual void removePoint(size_t id)\n    {\n    \tif (!removed_) {\n    \t\tids_.resize(size_);\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tids_[i] = i;\n    \t\t}\n    \t\tremoved_points_.resize(size_);\n    \t\tremoved_points_.reset();\n    \t\tlast_id_ = size_;\n        \tremoved_ = true;\n    \t}\n\n    \tsize_t point_index = id_to_index(id);\n    \tif (point_index!=size_t(-1) && !removed_points_.test(point_index)) {\n    \t\tremoved_points_.set(point_index);\n    \t\tremoved_count_++;\n    \t}\n    }\n\n\n    /**\n     * Get point with specific id\n     * @param id\n     * @return\n     */\n    virtual ElementType* getPoint(size_t id)\n    {\n    \tsize_t index = id_to_index(id);\n    \tif (index!=size_t(-1)) {\n    \t\treturn points_[index];\n    \t}\n    \telse {\n    \t\treturn NULL;\n    \t}\n    }\n\n    /**\n     * @return number of features in this index.\n     */\n    inline size_t size() const\n    {\n    \treturn size_ - removed_count_;\n    }\n\n    /**\n     * @return The dimensionality of the features in this index.\n     */\n    inline size_t veclen() const\n    {\n        return veclen_;\n    }\n\n    /**\n     * Returns the parameters used by the index.\n     *\n     * @return The index parameters\n     */\n    IndexParams getParameters() const\n    {\n        return index_params_;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tIndexHeader header;\n\n    \tif (Archive::is_saving::value) {\n    \t\theader.data_type = flann_datatype_value<ElementType>::value;\n    \t\theader.index_type = getType();\n    \t\theader.rows = size_;\n    \t\theader.cols = veclen_;\n    \t}\n    \tar & header;\n\n    \t// sanity checks\n    \tif (Archive::is_loading::value) {\n    \t    if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) {\n    \t        throw FLANNException(\"Invalid index file, wrong signature\");\n    \t    }\n            if (header.data_type != flann_datatype_value<ElementType>::value) {\n                throw FLANNException(\"Datatype of saved index is different than of the one to be created.\");\n            }\n            if (header.index_type != getType()) {\n                throw FLANNException(\"Saved index type is different then the current index type.\");\n            }\n            // TODO: check for distance type\n\n    \t}\n\n    \tar & size_;\n    \tar & veclen_;\n    \tar & size_at_build_;\n\n    \tbool save_dataset;\n    \tif (Archive::is_saving::value) {\n    \t\tsave_dataset = get_param(index_params_,\"save_dataset\", false);\n    \t}\n    \tar & save_dataset;\n\n    \tif (save_dataset) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tif (data_ptr_) {\n    \t\t\t\tdelete[] data_ptr_;\n    \t\t\t}\n    \t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n    \t\t\tpoints_.resize(size_);\n        \t\tfor (size_t i=0;i<size_;++i) {\n        \t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n        \t\t}\n    \t\t}\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tar & serialization::make_binary_object (points_[i], veclen_*sizeof(ElementType));\n    \t\t}\n    \t} else {\n    \t\tif (points_.size()!=size_) {\n    \t\t\tthrow FLANNException(\"Saved index does not contain the dataset and no dataset was provided.\");\n    \t\t}\n    \t}\n\n    \tar & last_id_;\n    \tar & ids_;\n    \tar & removed_;\n    \tif (removed_) {\n    \t\tar & removed_points_;\n    \t}\n    \tar & removed_count_;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    virtual int knnSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tsize_t knn,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tassert(indices.rows >= queries.rows);\n    \tassert(dists.rows >= queries.rows);\n    \tassert(indices.cols >= knn);\n    \tassert(dists.cols >= knn);\n    \tbool use_heap;\n    \tif (params.use_heap==FLANN_Undefined) {\n    \t\tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n    \t}\n    \telse {\n    \t\tuse_heap = (params.use_heap==FLANN_True)?true:false;\n    \t}\n    \tint count = 0;\n    \tif (use_heap) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);//params.sorted\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n\t\t\t\t//this way\n    \t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<int>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n\t\t\t\t\tstd::vector< std::vector<size_t> >& indices,\n\t\t\t\t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\t\t\tsize_t knn,\n    \t\t\t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n        bool use_heap;\n        if (params.use_heap==FLANN_Undefined) {\n        \tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n        }\n        else {\n        \tuse_heap = (params.use_heap==FLANN_True)?true:false;\n        }\n\n        if (indices.size() < queries.rows ) indices.resize(queries.rows);\n\t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n\t\tint count = 0;\n\t\tif (use_heap) {\n#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<int> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tint count = 0;\n    \tsize_t num_neighbors = std::min(indices.cols, dists.cols);\n    \tint max_neighbors = params.max_neighbors;\n    \tif (max_neighbors<0) max_neighbors = num_neighbors;\n    \telse max_neighbors = std::min(max_neighbors,(int)num_neighbors);\n\n    \tif (max_neighbors==0) {\n#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\t// explicitly indicated to use unbounded radius result set\n    \t\t// and we know there'll be enough room for resulting indices and dists\n    \t\tif (params.max_neighbors<0 && (num_neighbors>=size())) {\n#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif (n>num_neighbors) n = num_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, max_neighbors);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>max_neighbors) n = max_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n        return count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<int>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tstd::vector< std::vector<size_t> >& indices,\n    \t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n    \tint count = 0;\n    \t// just count neighbors\n    \tif (params.max_neighbors==0) {\n#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\tif (indices.size() < queries.rows ) indices.resize(queries.rows);\n    \t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n    \t\tif (params.max_neighbors<0) {\n    \t\t\t// search for all neighbors\n#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, params.max_neighbors);\n#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>params.max_neighbors) n = params.max_neighbors;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<int> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n\n    virtual void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const = 0;\n\nprotected:\n\n    virtual void freeIndex() = 0;\n\n    virtual void buildIndexImpl() = 0;\n\n    size_t id_to_index(size_t id)\n    {\n    \tif (ids_.size()==0) {\n    \t\treturn id;\n    \t}\n    \tsize_t point_index = size_t(-1);\n    \tif (ids_[id]==id) {\n    \t\treturn id;\n    \t}\n    \telse {\n    \t\t// binary search\n    \t\tsize_t start = 0;\n    \t\tsize_t end = ids_.size();\n\n    \t\twhile (start<end) {\n    \t\t\tsize_t mid = (start+end)/2;\n    \t\t\tif (ids_[mid]==id) {\n    \t\t\t\tpoint_index = mid;\n    \t\t\t\tbreak;\n    \t\t\t}\n    \t\t\telse if (ids_[mid]<id) {\n    \t\t\t\tstart = mid + 1;\n    \t\t\t}\n    \t\t\telse {\n    \t\t\t\tend = mid;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn point_index;\n    }\n\n\n    void indices_to_ids(const size_t* in, size_t* out, size_t size) const\n    {\n\t\tif (removed_) {\n\t\t\tfor (size_t i=0;i<size;++i) {\n\t\t\t\tout[i] = ids_[in[i]];\n\t\t\t}\n\t\t}\n    }\n\n    void setDataset(const Matrix<ElementType>& dataset)\n    {\n    \tsize_ = dataset.rows;\n    \tveclen_ = dataset.cols;\n    \tlast_id_ = 0;\n\n    \tids_.clear();\n    \tremoved_points_.clear();\n    \tremoved_ = false;\n    \tremoved_count_ = 0;\n\n    \tpoints_.resize(size_);\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tpoints_[i] = dataset[i];\n    \t}\n    }\n\n    void extendDataset(const Matrix<ElementType>& new_points)\n    {\n    \tsize_t new_size = size_ + new_points.rows;\n    \tif (removed_) {\n    \t\tremoved_points_.resize(new_size);\n    \t\tids_.resize(new_size);\n    \t}\n    \tpoints_.resize(new_size);\n    \tfor (size_t i=size_;i<new_size;++i) {\n    \t\tpoints_[i] = new_points[i-size_];\n    \t\tif (removed_) {\n    \t\t\tids_[i] = last_id_++;\n    \t\t\tremoved_points_.reset(i);\n    \t\t}\n    \t}\n    \tsize_ = new_size;\n    }\n\n\n    void cleanRemovedPoints()\n    {\n    \tif (!removed_) return;\n\n    \tsize_t last_idx = 0;\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tif (!removed_points_.test(i)) {\n    \t\t\tpoints_[last_idx] = points_[i];\n    \t\t\tids_[last_idx] = ids_[i];\n    \t\t\tremoved_points_.reset(last_idx);\n    \t\t\t++last_idx;\n    \t\t}\n    \t}\n    \tpoints_.resize(last_idx);\n    \tids_.resize(last_idx);\n    \tremoved_points_.resize(last_idx);\n    \tsize_ = last_idx;\n    \tremoved_count_ = 0;\n    }\n\n    void swap(NNIndex& other)\n    {\n    \tstd::swap(distance_, other.distance_);\n    \tstd::swap(last_id_, other.last_id_);\n    \tstd::swap(size_, other.size_);\n    \tstd::swap(size_at_build_, other.size_at_build_);\n    \tstd::swap(veclen_, other.veclen_);\n    \tstd::swap(index_params_, other.index_params_);\n    \tstd::swap(removed_, other.removed_);\n    \tstd::swap(removed_points_, other.removed_points_);\n    \tstd::swap(removed_count_, other.removed_count_);\n    \tstd::swap(ids_, other.ids_);\n    \tstd::swap(points_, other.points_);\n    \tstd::swap(data_ptr_, other.data_ptr_);\n    }\n\nprotected:\n\n    /**\n     * The distance functor\n     */\n    Distance distance_;\n\n\n    /**\n     * Each index point has an associated ID. IDs are assigned sequentially in\n     * increasing order. This indicates the ID assigned to the last point added to the\n     * index.\n     */\n    size_t last_id_;\n\n    /**\n     * Number of points in the index (and database)\n     */\n    size_t size_;\n\n    /**\n     * Number of features in the dataset when the index was last built.\n     */\n    size_t size_at_build_;\n\n    /**\n     * Size of one point in the index (and database)\n     */\n    size_t veclen_;\n\n    /**\n     * Parameters of the index.\n     */\n    IndexParams index_params_;\n\n    /**\n     * Flag indicating if at least a point was removed from the index\n     */\n    bool removed_;\n\n    /**\n     * Array used to mark points removed from the index\n     */\n    DynamicBitset removed_points_;\n\n    /**\n     * Number of points removed from the index\n     */\n    size_t removed_count_;\n\n    /**\n     * Array of point IDs, returned by nearest-neighbour operations\n     */\n    std::vector<size_t> ids_;\n\n    /**\n     * Point data\n     */\n    std::vector<ElementType*> points_;\n\n    /**\n     * Pointer to dataset memory if allocated by this index, otherwise NULL\n     */\n    ElementType* data_ptr_;\n\n\n};\n\n\n#define USING_BASECLASS_SYMBOLS \\\n\t\tusing NNIndex<Distance>::distance_;\\\n\t\tusing NNIndex<Distance>::size_;\\\n\t\tusing NNIndex<Distance>::size_at_build_;\\\n\t\tusing NNIndex<Distance>::veclen_;\\\n\t\tusing NNIndex<Distance>::index_params_;\\\n\t\tusing NNIndex<Distance>::removed_points_;\\\n\t\tusing NNIndex<Distance>::ids_;\\\n\t\tusing NNIndex<Distance>::removed_;\\\n\t\tusing NNIndex<Distance>::points_;\\\n\t\tusing NNIndex<Distance>::extendDataset;\\\n\t\tusing NNIndex<Distance>::setDataset;\\\n\t\tusing NNIndex<Distance>::cleanRemovedPoints;\\\n\t\tusing NNIndex<Distance>::indices_to_ids;\n\n\n\n}\n\n\n#endif //FLANN_NNINDEX_H\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/all_indices.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_ALL_INDICES_H_\n#define FLANN_ALL_INDICES_H_\n\n#include \"flann/general.h\"\n\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/kdtree_index.h\"\n#include \"flann/algorithms/kdtree_single_index.h\"\n#include \"flann/algorithms/kmeans_index.h\"\n#include \"flann/algorithms/composite_index.h\"\n#include \"flann/algorithms/linear_index.h\"\n#include \"flann/algorithms/hierarchical_clustering_index.h\"\n#include \"flann/algorithms/lsh_index.h\"\n#include \"flann/algorithms/autotuned_index.h\"\n#ifdef FLANN_USE_CUDA\n#include \"flann/algorithms/kdtree_cuda_3d_index.h\"\n#endif\n\n\nnamespace flann\n{\n\n/**\n * enable_if sfinae helper\n */\ntemplate<bool, typename T = void> struct enable_if{};\ntemplate<typename T> struct enable_if<true,T> { typedef T type; };\n\n/**\n * disable_if sfinae helper\n */\ntemplate<bool, typename T> struct disable_if{ typedef T type; };\ntemplate<typename T> struct disable_if<true,T> { };\n\n/**\n * Check if two type are the same\n */\ntemplate <typename T, typename U>\nstruct same_type\n{\n    enum {value = false};\n};\n\ntemplate<typename T>\nstruct same_type<T,T>\n{\n    enum {value = true};\n};\n\n#define HAS_MEMBER(member) \\\n    template<typename T> \\\n    struct member { \\\n        typedef char No; \\\n        typedef long Yes; \\\n        template<typename C> static Yes test( typename C::member* ); \\\n        template<typename C> static No test( ... ); \\\n        enum { value = sizeof (test<T>(0))==sizeof(Yes) }; \\\n    };\n\nHAS_MEMBER(needs_kdtree_distance)\nHAS_MEMBER(needs_vector_space_distance)\nHAS_MEMBER(is_kdtree_distance)\nHAS_MEMBER(is_vector_space_distance)\n\nstruct DummyDistance\n{\n    typedef float ElementType;\n    typedef float ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n        return ResultType(0);\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return ResultType(0);\n    }\n};\n\n/**\n * Checks if an index and a distance can be used together\n */\ntemplate<template <typename> class Index, typename Distance, typename ElemType>\nstruct valid_combination\n{\n    static const bool value = same_type<ElemType,typename Distance::ElementType>::value &&\n    \t\t\t\t(!needs_kdtree_distance<Index<DummyDistance> >::value || is_kdtree_distance<Distance>::value) &&\n    \t\t\t\t(!needs_vector_space_distance<Index<DummyDistance> >::value || is_kdtree_distance<Distance>::value || is_vector_space_distance<Distance>::value);\n\n};\n\n\n/*********************************************************\n * Create index\n **********************************************************/\ntemplate <template<typename> class Index, typename Distance, typename T>\ninline NNIndex<Distance>* create_index_(flann::Matrix<T> data, const flann::IndexParams& params, const Distance& distance,\n\t\ttypename enable_if<valid_combination<Index,Distance,T>::value,void>::type* = 0)\n{\n    return new Index<Distance>(data, params, distance);\n}\n\ntemplate <template<typename> class Index, typename Distance, typename T>\ninline NNIndex<Distance>* create_index_(flann::Matrix<T> data, const flann::IndexParams& params, const Distance& distance,\n\t\ttypename disable_if<valid_combination<Index,Distance,T>::value,void>::type* = 0)\n{\n    return NULL;\n}\n\ntemplate<typename Distance>\ninline NNIndex<Distance>*\n  create_index_by_type(const flann_algorithm_t index_type,\n\t\tconst Matrix<typename Distance::ElementType>& dataset, const IndexParams& params, const Distance& distance)\n{\n\ttypedef typename Distance::ElementType ElementType;\n\n\tNNIndex<Distance>* nnIndex;\n\n\tswitch (index_type) {\n\n\tcase FLANN_INDEX_LINEAR:\n\t\tnnIndex = create_index_<LinearIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_KDTREE_SINGLE:\n\t\tnnIndex = create_index_<KDTreeSingleIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_KDTREE:\n\t\tnnIndex = create_index_<KDTreeIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\t\t//! #define this symbol before including flann.h to enable GPU search algorithms. But you have\n\t\t//! to link libflann_cuda then!\n#ifdef FLANN_USE_CUDA\n\tcase FLANN_INDEX_KDTREE_CUDA:\n\t\tnnIndex = create_index_<KDTreeCuda3dIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n#endif\n\n\tcase FLANN_INDEX_KMEANS:\n\t\tnnIndex = create_index_<KMeansIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_COMPOSITE:\n\t\tnnIndex = create_index_<CompositeIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_AUTOTUNED:\n\t\tnnIndex = create_index_<AutotunedIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_HIERARCHICAL:\n\t\tnnIndex = create_index_<HierarchicalClusteringIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tcase FLANN_INDEX_LSH:\n\t\tnnIndex = create_index_<LshIndex,Distance,ElementType>(dataset, params, distance);\n\t\tbreak;\n\tdefault:\n\t\tthrow FLANNException(\"Unknown index type\");\n\t}\n\n    if (nnIndex==NULL) {\n    \tthrow FLANNException(\"Unsupported index/distance combination\");\n    }\n    return nnIndex;\n}\n\n}\n\n#endif /* FLANN_ALL_INDICES_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/autotuned_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n#ifndef FLANN_AUTOTUNED_INDEX_H_\n#define FLANN_AUTOTUNED_INDEX_H_\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/nn/ground_truth.h\"\n#include \"flann/nn/index_testing.h\"\n#include \"flann/util/sampling.h\"\n#include \"flann/algorithms/kdtree_index.h\"\n#include \"flann/algorithms/kdtree_single_index.h\"\n#include \"flann/algorithms/kmeans_index.h\"\n#include \"flann/algorithms/composite_index.h\"\n#include \"flann/algorithms/linear_index.h\"\n#include \"flann/util/logger.h\"\n#include <iostream>\n\nusing namespace std;\nnamespace flann\n{\n\ntemplate<typename Distance>\ninline NNIndex<Distance>*\n  create_index_by_type(const flann_algorithm_t index_type,\n        const Matrix<typename Distance::ElementType>& dataset, const IndexParams& params, const Distance& distance = Distance());\n\n\nstruct AutotunedIndexParams : public IndexParams\n{\n    AutotunedIndexParams(float target_precision = 0.8, float build_weight = 0.01, float memory_weight = 0, float sample_fraction = 0.1)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_AUTOTUNED;\n        // precision desired (used for autotuning, -1 otherwise)\n        (*this)[\"target_precision\"] = target_precision;\n        // build tree time weighting factor\n        (*this)[\"build_weight\"] = build_weight;\n        // index memory weighting factor\n        (*this)[\"memory_weight\"] = memory_weight;\n        // what fraction of the dataset to use for autotuning\n        (*this)[\"sample_fraction\"] = sample_fraction;\n    }\n};\n\n\ntemplate <typename Distance>\nclass AutotunedIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    \n    typedef NNIndex<Distance> BaseClass;\n\n    typedef AutotunedIndex<Distance> IndexType;\n\n    typedef bool needs_kdtree_distance;\n\n    AutotunedIndex(const Matrix<ElementType>& inputData, const IndexParams& params = AutotunedIndexParams(), Distance d = Distance()) :\n        BaseClass(params, d), bestIndex_(NULL), speedup_(0), dataset_(inputData)\n    {\n        target_precision_ = get_param(params, \"target_precision\",0.8f);\n        build_weight_ =  get_param(params,\"build_weight\", 0.01f);\n        memory_weight_ = get_param(params, \"memory_weight\", 0.0f);\n        sample_fraction_ = get_param(params,\"sample_fraction\", 0.1f);\n    }\n\n    AutotunedIndex(const IndexParams& params = AutotunedIndexParams(), Distance d = Distance()) :\n        BaseClass(params, d), bestIndex_(NULL), speedup_(0)\n    {\n        target_precision_ = get_param(params, \"target_precision\",0.8f);\n        build_weight_ =  get_param(params,\"build_weight\", 0.01f);\n        memory_weight_ = get_param(params, \"memory_weight\", 0.0f);\n        sample_fraction_ = get_param(params,\"sample_fraction\", 0.1f);\n    }\n\n    AutotunedIndex(const AutotunedIndex& other) : BaseClass(other),\n    \t\tbestParams_(other.bestParams_),\n    \t\tbestSearchParams_(other.bestSearchParams_),\n    \t\tspeedup_(other.speedup_),\n    \t\tdataset_(other.dataset_),\n    \t\ttarget_precision_(other.target_precision_),\n    \t\tbuild_weight_(other.build_weight_),\n    \t\tmemory_weight_(other.memory_weight_),\n    \t\tsample_fraction_(other.sample_fraction_)\n    {\n    \t\tbestIndex_ = other.bestIndex_->clone();\n    }\n\n    AutotunedIndex& operator=(AutotunedIndex other)\n    {\n    \tthis->swap(other);\n    \treturn * this;\n    }\n\n    virtual ~AutotunedIndex()\n    {\n    \tdelete bestIndex_;\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new AutotunedIndex(*this);\n    }\n\n    /**\n     *          Method responsible with building the index.\n     */\n    void buildIndex()\n    {\n\t\t\n        bestParams_ = estimateBuildParams();\n\t\t//cout<<\"params print \\n\";\n        Logger::info(\"----------------------------------------------------\\n\");\n        Logger::info(\"Autotuned parameters:\\n\");\n\t\tcout<<\"Autotuned parameters:\\n\";\n        //if (Logger::getLevel()>=FLANN_LOG_INFO)\n        \tprint_params(bestParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n        bestIndex_ = create_index_by_type(index_type, dataset_, bestParams_, distance_);\n        bestIndex_->buildIndex();\n\t\t/*\n        speedup_ = estimateSearchParams(bestSearchParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n        Logger::info(\"Search parameters:\\n\");\n\t\tcout<<\"Search parameters:\\n\";\n        //if (Logger::getLevel()>=FLANN_LOG_INFO)\n        \tprint_params(bestSearchParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n        bestParams_[\"search_params\"] = bestSearchParams_;\n        bestParams_[\"speedup\"] = speedup_;*/\n    }\n    \n    void buildIndex(const Matrix<ElementType>& dataset)\n    {\n    \tdataset_ = dataset;\n\t\tcout<<\"build Index \\n\";\n    \tthis->buildIndex();\n    }\n\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        if (bestIndex_) {\n            bestIndex_->addPoints(points, rebuild_threshold);\n        }\n    }\n    \n    void removePoint(size_t id)\n    {\n        if (bestIndex_) {\n            bestIndex_->removePoint(id);\n        }\n    }\n\n    \n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & target_precision_;\n    \tar & build_weight_;\n    \tar & memory_weight_;\n    \tar & sample_fraction_;\n\n    \tflann_algorithm_t index_type;\n    \tif (Archive::is_saving::value) {\n    \t\tindex_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n    \t}\n    \tar & index_type;\n    \tar & bestSearchParams_.checks;\n\n    \tif (Archive::is_loading::value) {\n    \t\tbestParams_[\"algorithm\"] = index_type;\n\n    \t\tindex_params_[\"algorithm\"] = getType();\n            index_params_[\"target_precision_\"] = target_precision_;\n            index_params_[\"build_weight_\"] = build_weight_;\n            index_params_[\"memory_weight_\"] = memory_weight_;\n            index_params_[\"sample_fraction_\"] = sample_fraction_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n\n    \tbestIndex_->saveIndex(stream);\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n\n        IndexParams params;\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n        bestIndex_ = create_index_by_type<Distance>((flann_algorithm_t)index_type, dataset_, params, distance_);\n        bestIndex_->loadIndex(stream);\n    }\n\n    int knnSearch(const Matrix<ElementType>& queries,\n            Matrix<size_t>& indices,\n            Matrix<DistanceType>& dists,\n            size_t knn,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, params);\n        }\n    }\n\n    int knnSearch(const Matrix<ElementType>& queries,\n            std::vector< std::vector<size_t> >& indices,\n            std::vector<std::vector<DistanceType> >& dists,\n            size_t knn,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, params);\n        }\n\n    }\n    \n    int radiusSearch(const Matrix<ElementType>& queries,\n            Matrix<size_t>& indices,\n            Matrix<DistanceType>& dists,\n            DistanceType radius,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, params);\n        }\n    }\n\n    int radiusSearch(const Matrix<ElementType>& queries,\n            std::vector< std::vector<size_t> >& indices,\n            std::vector<std::vector<DistanceType> >& dists,\n            DistanceType radius,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, params);\n        }        \n    }\n\n    \n    \n    /**\n     *      Method that searches for nearest-neighbors\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        // should not get here\n        assert(false);\n    }\n\n    IndexParams getParameters() const\n    {\n        return bestParams_;\n    }\n\n    FLANN_DEPRECATED SearchParams getSearchParameters() const\n    {\n        return bestSearchParams_;\n    }\n\n    FLANN_DEPRECATED float getSpeedup() const\n    {\n        return speedup_;\n    }\n\n\n    /**\n     *      Number of features in this index.\n     */\n    size_t size() const\n    {\n        return bestIndex_->size();\n    }\n\n    /**\n     *  The length of each vector in this index.\n     */\n    size_t veclen() const\n    {\n        return bestIndex_->veclen();\n    }\n\n    /**\n     * The amount of memory (in bytes) this index uses.\n     */\n    int usedMemory() const\n    {\n        return bestIndex_->usedMemory();\n    }\n\n    /**\n     * Algorithm name\n     */\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_AUTOTUNED;\n    }\n\nprotected:\n    void buildIndexImpl()\n    {\n        /* nothing to do here */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here */\n    }\n\nprivate:\n\n    struct CostData\n    {\n        float searchTimeCost;\n        float buildTimeCost;\n        float memoryCost;\n        float totalCost;\n        IndexParams params;\n    };\n\n    void evaluate_kmeans(CostData& cost)\n    {\n        StartStopTimer t;\n        int checks;\n        const int nn = 1;\n\n        Logger::info(\"KMeansTree using params: max_iterations=%d, branching=%d\\n\",\n                     get_param<int>(cost.params,\"iterations\"),\n                     get_param<int>(cost.params,\"branching\"));\n        KMeansIndex<Distance> kmeans(sampledDataset_, cost.params, distance_);\n        // measure index build time\n        t.start();\n        kmeans.buildIndex();\n        t.stop();\n        float buildTime = (float)t.value;\n\n        // measure search time\n        float searchTime = test_index_precision(kmeans, sampledDataset_, testDataset_, gt_matches_, target_precision_, checks, distance_, nn);\n\n        float datasetMemory = float(sampledDataset_.rows * sampledDataset_.cols * sizeof(float));\n        cost.memoryCost = (kmeans.usedMemory() + datasetMemory) / datasetMemory;\n        cost.searchTimeCost = searchTime;\n        cost.buildTimeCost = buildTime;\n        Logger::info(\"KMeansTree buildTime=%g, searchTime=%g, build_weight=%g\\n\", buildTime, searchTime, build_weight_);\n    }\n\n\n    void evaluate_kdtree(CostData& cost)\n    {\n        StartStopTimer t;\n        int checks;\n        const int nn = 1;\n\n        Logger::info(\"KDTree using params: trees=%d\\n\", get_param<int>(cost.params,\"trees\"));\n        KDTreeIndex<Distance> kdtree(sampledDataset_, cost.params, distance_);\n\n        t.start();\n        kdtree.buildIndex();\n        t.stop();\n        float buildTime = (float)t.value;\n\n        //measure search time\n        float searchTime = test_index_precision(kdtree, sampledDataset_, testDataset_, gt_matches_, target_precision_, checks, distance_, nn);\n\n        float datasetMemory = float(sampledDataset_.rows * sampledDataset_.cols * sizeof(float));\n        cost.memoryCost = (kdtree.usedMemory() + datasetMemory) / datasetMemory;\n        cost.searchTimeCost = searchTime;\n        cost.buildTimeCost = buildTime;\n        Logger::info(\"KDTree buildTime=%g, searchTime=%g\\n\", buildTime, searchTime);\n    }\n\n\n    //    struct KMeansSimpleDownhillFunctor {\n    //\n    //        Autotune& autotuner;\n    //        KMeansSimpleDownhillFunctor(Autotune& autotuner_) : autotuner(autotuner_) {};\n    //\n    //        float operator()(int* params) {\n    //\n    //            float maxFloat = numeric_limits<float>::max();\n    //\n    //            if (params[0]<2) return maxFloat;\n    //            if (params[1]<0) return maxFloat;\n    //\n    //            CostData c;\n    //            c.params[\"algorithm\"] = KMEANS;\n    //            c.params[\"centers-init\"] = CENTERS_RANDOM;\n    //            c.params[\"branching\"] = params[0];\n    //            c.params[\"max-iterations\"] = params[1];\n    //\n    //            autotuner.evaluate_kmeans(c);\n    //\n    //            return c.timeCost;\n    //\n    //        }\n    //    };\n    //\n    //    struct KDTreeSimpleDownhillFunctor {\n    //\n    //        Autotune& autotuner;\n    //        KDTreeSimpleDownhillFunctor(Autotune& autotuner_) : autotuner(autotuner_) {};\n    //\n    //        float operator()(int* params) {\n    //            float maxFloat = numeric_limits<float>::max();\n    //\n    //            if (params[0]<1) return maxFloat;\n    //\n    //            CostData c;\n    //            c.params[\"algorithm\"] = KDTREE;\n    //            c.params[\"trees\"] = params[0];\n    //\n    //            autotuner.evaluate_kdtree(c);\n    //\n    //            return c.timeCost;\n    //\n    //        }\n    //    };\n\n\n\n    void optimizeKMeans(std::vector<CostData>& costs)\n    {\n        Logger::info(\"KMEANS, Step 1: Exploring parameter space\\n\");\n\n        // explore kmeans parameters space using combinations of the parameters below\n        int maxIterations[] = { 1, 5, 10, 15 };\n        int branchingFactors[] = { 16, 32, 64, 128, 256 };\n\n        int kmeansParamSpaceSize = FLANN_ARRAY_LEN(maxIterations) * FLANN_ARRAY_LEN(branchingFactors);\n        costs.reserve(costs.size() + kmeansParamSpaceSize);\n\n        // evaluate kmeans for all parameter combinations\n        for (size_t i = 0; i < FLANN_ARRAY_LEN(maxIterations); ++i) {\n            for (size_t j = 0; j < FLANN_ARRAY_LEN(branchingFactors); ++j) {\n                CostData cost;\n                cost.params[\"algorithm\"] = FLANN_INDEX_KMEANS;\n                cost.params[\"centers_init\"] = FLANN_CENTERS_RANDOM;\n                cost.params[\"iterations\"] = maxIterations[i];\n                cost.params[\"branching\"] = branchingFactors[j];\n\n                evaluate_kmeans(cost);\n                costs.push_back(cost);\n            }\n        }\n\n        //         Logger::info(\"KMEANS, Step 2: simplex-downhill optimization\\n\");\n        //\n        //         const int n = 2;\n        //         // choose initial simplex points as the best parameters so far\n        //         int kmeansNMPoints[n*(n+1)];\n        //         float kmeansVals[n+1];\n        //         for (int i=0;i<n+1;++i) {\n        //             kmeansNMPoints[i*n] = (int)kmeansCosts[i].params[\"branching\"];\n        //             kmeansNMPoints[i*n+1] = (int)kmeansCosts[i].params[\"max-iterations\"];\n        //             kmeansVals[i] = kmeansCosts[i].timeCost;\n        //         }\n        //         KMeansSimpleDownhillFunctor kmeans_cost_func(*this);\n        //         // run optimization\n        //         optimizeSimplexDownhill(kmeansNMPoints,n,kmeans_cost_func,kmeansVals);\n        //         // store results\n        //         for (int i=0;i<n+1;++i) {\n        //             kmeansCosts[i].params[\"branching\"] = kmeansNMPoints[i*2];\n        //             kmeansCosts[i].params[\"max-iterations\"] = kmeansNMPoints[i*2+1];\n        //             kmeansCosts[i].timeCost = kmeansVals[i];\n        //         }\n    }\n\n\n    void optimizeKDTree(std::vector<CostData>& costs)\n    {\n        Logger::info(\"KD-TREE, Step 1: Exploring parameter space\\n\");\n\n        // explore kd-tree parameters space using the parameters below\n        int testTrees[] = { 1, 4, 8, 16, 32 };\n\n        // evaluate kdtree for all parameter combinations\n        for (size_t i = 0; i < FLANN_ARRAY_LEN(testTrees); ++i) {\n            CostData cost;\n            cost.params[\"algorithm\"] = FLANN_INDEX_KDTREE;\n            cost.params[\"trees\"] = testTrees[i];\n\n            evaluate_kdtree(cost);\n            costs.push_back(cost);\n        }\n\n        //         Logger::info(\"KD-TREE, Step 2: simplex-downhill optimization\\n\");\n        //\n        //         const int n = 1;\n        //         // choose initial simplex points as the best parameters so far\n        //         int kdtreeNMPoints[n*(n+1)];\n        //         float kdtreeVals[n+1];\n        //         for (int i=0;i<n+1;++i) {\n        //             kdtreeNMPoints[i] = (int)kdtreeCosts[i].params[\"trees\"];\n        //             kdtreeVals[i] = kdtreeCosts[i].timeCost;\n        //         }\n        //         KDTreeSimpleDownhillFunctor kdtree_cost_func(*this);\n        //         // run optimization\n        //         optimizeSimplexDownhill(kdtreeNMPoints,n,kdtree_cost_func,kdtreeVals);\n        //         // store results\n        //         for (int i=0;i<n+1;++i) {\n        //             kdtreeCosts[i].params[\"trees\"] = kdtreeNMPoints[i];\n        //             kdtreeCosts[i].timeCost = kdtreeVals[i];\n        //         }\n    }\n\n    /**\n     *  Chooses the best nearest-neighbor algorithm and estimates the optimal\n     *  parameters to use when building the index (for a given precision).\n     *  Returns a dictionary with the optimal parameters.\n     */\n    IndexParams estimateBuildParams()\n    {\n        std::vector<CostData> costs;\n\n        int sampleSize = int(sample_fraction_ * dataset_.rows);\n        int testSampleSize = std::min(sampleSize / 10, 1000);\n\n        Logger::info(\"Entering autotuning, dataset size: %d, sampleSize: %d, testSampleSize: %d, target precision: %g\\n\", dataset_.rows, sampleSize, testSampleSize, target_precision_);\n\n        // For a very small dataset, it makes no sense to build any fancy index, just\n        // use linear search\n        if (testSampleSize < 10) {\n            Logger::info(\"Choosing linear, dataset too small\\n\");\n            return LinearIndexParams();\n        }\n\n        // We use a fraction of the original dataset to speedup the autotune algorithm\n        sampledDataset_ = random_sample(dataset_, sampleSize);\n        // We use a cross-validation approach, first we sample a testset from the dataset\n        testDataset_ = random_sample(sampledDataset_, testSampleSize, true);\n\n        // We compute the ground truth using linear search\n        Logger::info(\"Computing ground truth... \\n\");\n        gt_matches_ = Matrix<size_t>(new size_t[testDataset_.rows], testDataset_.rows, 1);\n        StartStopTimer t;\n        int repeats = 0;\n        t.reset();\n        while (t.value<0.2) {\n        \trepeats++;\n            t.start();\n        \tcompute_ground_truth<Distance>(sampledDataset_, testDataset_, gt_matches_, 0, distance_);\n            t.stop();\n        }\n\n        CostData linear_cost;\n        linear_cost.searchTimeCost = (float)t.value/repeats;\n        linear_cost.buildTimeCost = 0;\n        linear_cost.memoryCost = 0;\n        linear_cost.params[\"algorithm\"] = FLANN_INDEX_LINEAR;\n\n        costs.push_back(linear_cost);\n\n        // Start parameter autotune process\n        Logger::info(\"Autotuning parameters...\\n\");\n\n        optimizeKMeans(costs);\n        optimizeKDTree(costs);\n\n        float bestTimeCost = costs[0].buildTimeCost * build_weight_ + costs[0].searchTimeCost;\n        for (size_t i = 0; i < costs.size(); ++i) {\n            float timeCost = costs[i].buildTimeCost * build_weight_ + costs[i].searchTimeCost;\n            Logger::debug(\"Time cost: %g\\n\", timeCost);\n            if (timeCost < bestTimeCost) {\n                bestTimeCost = timeCost;\n            }\n        }\n        Logger::debug(\"Best time cost: %g\\n\", bestTimeCost);\n\n    \tIndexParams bestParams = costs[0].params;\n        if (bestTimeCost > 0) {\n            //change + \n        \tfloat bestCost = (costs[0].buildTimeCost * build_weight_ + costs[0].searchTimeCost) / bestTimeCost;\n            //i=0 ->1\n        \tfor (size_t i = 0; i < costs.size(); ++i) {\n        \t\tfloat crtCost = (costs[i].buildTimeCost * build_weight_ + costs[i].searchTimeCost) / bestTimeCost +\n        \t\t\t\tmemory_weight_ * costs[i].memoryCost;\n        \t\tLogger::debug(\"Cost: %g\\n\", crtCost);\n        \t\tif (crtCost < bestCost) {\n        \t\t\tbestCost = crtCost;\n        \t\t\tbestParams = costs[i].params;\n        \t\t}\n        \t}\n            Logger::debug(\"Best cost: %g\\n\", bestCost);\n        }\n\n        delete[] gt_matches_.ptr();\n        delete[] testDataset_.ptr();\n        delete[] sampledDataset_.ptr();\n\n        return bestParams;\n    }\n\n\n\n    /**\n     *  Estimates the search time parameters needed to get the desired precision.\n     *  Precondition: the index is built\n     *  Postcondition: the searchParams will have the optimum params set, also the speedup obtained over linear search.\n     */\n    float estimateSearchParams(SearchParams& searchParams)\n    {\n        const int nn = 1;\n        const size_t SAMPLE_COUNT = 1000;\n\n        assert(bestIndex_ != NULL); // must have a valid index\n\n        float speedup = 0;\n\n        int samples = (int)std::min(dataset_.rows / 10, SAMPLE_COUNT);\n        if (samples > 0) {\n            Matrix<ElementType> testDataset = random_sample(dataset_, samples);\n\n            Logger::info(\"Computing ground truth\\n\");\n\n            // we need to compute the ground truth first\n            Matrix<size_t> gt_matches(new size_t[testDataset.rows], testDataset.rows, 1);\n            StartStopTimer t;\n            int repeats = 0;\n            t.reset();\n            while (t.value<0.2) {\n            \trepeats++;\n                t.start();\n            \tcompute_ground_truth<Distance>(dataset_, testDataset, gt_matches, 1, distance_);\n                t.stop();\n            }\n            float linear = (float)t.value/repeats;\n\n            int checks;\n            Logger::info(\"Estimating number of checks\\n\");\n\n            float searchTime;\n            float cb_index;\n            if (bestIndex_->getType() == FLANN_INDEX_KMEANS) {\n                Logger::info(\"KMeans algorithm, estimating cluster border factor\\n\");\n                KMeansIndex<Distance>* kmeans = static_cast<KMeansIndex<Distance>*>(bestIndex_);\n                float bestSearchTime = -1;\n                float best_cb_index = -1;\n                int best_checks = -1;\n                for (cb_index = 0; cb_index < 1.1f; cb_index += 0.2f) {\n                    kmeans->set_cb_index(cb_index);\n                    searchTime = test_index_precision(*kmeans, dataset_, testDataset, gt_matches, target_precision_, checks, distance_, nn, 1);\n                    if ((searchTime < bestSearchTime) || (bestSearchTime == -1)) {\n                        bestSearchTime = searchTime;\n                        best_cb_index = cb_index;\n                        best_checks = checks;\n                    }\n                }\n                searchTime = bestSearchTime;\n                cb_index = best_cb_index;\n                checks = best_checks;\n\n                kmeans->set_cb_index(best_cb_index);\n                Logger::info(\"Optimum cb_index: %g\\n\", cb_index);\n                bestParams_[\"cb_index\"] = cb_index;\n            }\n            else {\n                searchTime = test_index_precision(*bestIndex_, dataset_, testDataset, gt_matches, target_precision_, checks, distance_, nn, 1);\n            }\n\n            Logger::info(\"Required number of checks: %d \\n\", checks);\n            searchParams.checks = checks;\n\n            speedup = linear / searchTime;\n\n            delete[] gt_matches.ptr();\n            delete[] testDataset.ptr();\n        }\n\n        return speedup;\n    }\n\n\n    void swap(AutotunedIndex& other)\n    {\n    \tBaseClass::swap(other);\n    \tstd::swap(bestIndex_, other.bestIndex_);\n    \tstd::swap(bestParams_, other.bestParams_);\n    \tstd::swap(bestSearchParams_, other.bestSearchParams_);\n    \tstd::swap(speedup_, other.speedup_);\n    \tstd::swap(dataset_, other.dataset_);\n    \tstd::swap(target_precision_, other.target_precision_);\n    \tstd::swap(build_weight_, other.build_weight_);\n    \tstd::swap(memory_weight_, other.memory_weight_);\n    \tstd::swap(sample_fraction_, other.sample_fraction_);\n    }\n\nprivate:\n    NNIndex<Distance>* bestIndex_;\n\n    IndexParams bestParams_;\n    SearchParams bestSearchParams_;\n\n    Matrix<ElementType> sampledDataset_;\n    Matrix<ElementType> testDataset_;\n    Matrix<size_t> gt_matches_;\n\n    float speedup_;\n\n    /**\n     * The dataset used by this index\n     */\n    Matrix<ElementType> dataset_;\n\n    /**\n     * Index parameters\n     */\n    float target_precision_;\n    float build_weight_;\n    float memory_weight_;\n    float sample_fraction_;\n\n    USING_BASECLASS_SYMBOLS\n};\n}\n\n#endif /* FLANN_AUTOTUNED_INDEX_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/autotuned_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n#ifndef FLANN_AUTOTUNED_INDEX_H_\n#define FLANN_AUTOTUNED_INDEX_H_\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/nn/ground_truth.h\"\n#include \"flann/nn/index_testing.h\"\n#include \"flann/util/sampling.h\"\n#include \"flann/algorithms/kdtree_index.h\"\n#include \"flann/algorithms/kdtree_single_index.h\"\n#include \"flann/algorithms/kmeans_index.h\"\n#include \"flann/algorithms/composite_index.h\"\n#include \"flann/algorithms/linear_index.h\"\n#include \"flann/util/logger.h\"\n#include <iostream>\n\nusing namespace std;\nnamespace flann\n{\n\ntemplate<typename Distance>\ninline NNIndex<Distance>*\n  create_index_by_type(const flann_algorithm_t index_type,\n        const Matrix<typename Distance::ElementType>& dataset, const IndexParams& params, const Distance& distance = Distance());\n\n\nstruct AutotunedIndexParams : public IndexParams\n{\n    AutotunedIndexParams(float target_precision = 0.8, float build_weight = 0.01, float memory_weight = 0, float sample_fraction = 0.1)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_AUTOTUNED;\n        // precision desired (used for autotuning, -1 otherwise)\n        (*this)[\"target_precision\"] = target_precision;\n        // build tree time weighting factor\n        (*this)[\"build_weight\"] = build_weight;\n        // index memory weighting factor\n        (*this)[\"memory_weight\"] = memory_weight;\n        // what fraction of the dataset to use for autotuning\n        (*this)[\"sample_fraction\"] = sample_fraction;\n    }\n};\n\n\ntemplate <typename Distance>\nclass AutotunedIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    \n    typedef NNIndex<Distance> BaseClass;\n\n    typedef AutotunedIndex<Distance> IndexType;\n\n    typedef bool needs_kdtree_distance;\n\n    AutotunedIndex(const Matrix<ElementType>& inputData, const IndexParams& params = AutotunedIndexParams(), Distance d = Distance()) :\n        BaseClass(params, d), bestIndex_(NULL), speedup_(0), dataset_(inputData)\n    {\n        target_precision_ = get_param(params, \"target_precision\",0.8f);\n        build_weight_ =  get_param(params,\"build_weight\", 0.01f);\n        memory_weight_ = get_param(params, \"memory_weight\", 0.0f);\n        sample_fraction_ = get_param(params,\"sample_fraction\", 0.1f);\n    }\n\n    AutotunedIndex(const IndexParams& params = AutotunedIndexParams(), Distance d = Distance()) :\n        BaseClass(params, d), bestIndex_(NULL), speedup_(0)\n    {\n        target_precision_ = get_param(params, \"target_precision\",0.8f);\n        build_weight_ =  get_param(params,\"build_weight\", 0.01f);\n        memory_weight_ = get_param(params, \"memory_weight\", 0.0f);\n        sample_fraction_ = get_param(params,\"sample_fraction\", 0.1f);\n    }\n\n    AutotunedIndex(const AutotunedIndex& other) : BaseClass(other),\n    \t\tbestParams_(other.bestParams_),\n    \t\tbestSearchParams_(other.bestSearchParams_),\n    \t\tspeedup_(other.speedup_),\n    \t\tdataset_(other.dataset_),\n    \t\ttarget_precision_(other.target_precision_),\n    \t\tbuild_weight_(other.build_weight_),\n    \t\tmemory_weight_(other.memory_weight_),\n    \t\tsample_fraction_(other.sample_fraction_)\n    {\n    \t\tbestIndex_ = other.bestIndex_->clone();\n    }\n\n    AutotunedIndex& operator=(AutotunedIndex other)\n    {\n    \tthis->swap(other);\n    \treturn * this;\n    }\n\n    virtual ~AutotunedIndex()\n    {\n    \tdelete bestIndex_;\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new AutotunedIndex(*this);\n    }\n\n    /**\n     *          Method responsible with building the index.\n     */\n    void buildIndex()\n    {\n\t\t\n        bestParams_ = estimateBuildParams();\n\t\t//cout<<\"params print \\n\";\n        Logger::info(\"----------------------------------------------------\\n\");\n        Logger::info(\"Autotuned parameters:\\n\");\n\t\tcout<<\"Autotuned parameters:\\n\";\n        //if (Logger::getLevel()>=FLANN_LOG_INFO)\n        \tprint_params(bestParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n        bestIndex_ = create_index_by_type(index_type, dataset_, bestParams_, distance_);\n        bestIndex_->buildIndex();\n\t\t/*\n        speedup_ = estimateSearchParams(bestSearchParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n        Logger::info(\"Search parameters:\\n\");\n\t\tcout<<\"Search parameters:\\n\";\n        //if (Logger::getLevel()>=FLANN_LOG_INFO)\n        \tprint_params(bestSearchParams_);\n        Logger::info(\"----------------------------------------------------\\n\");\n        bestParams_[\"search_params\"] = bestSearchParams_;\n        bestParams_[\"speedup\"] = speedup_;*/\n    }\n    \n    void buildIndex(const Matrix<ElementType>& dataset)\n    {\n    \tdataset_ = dataset;\n\t\tcout<<\"build Index \\n\";\n    \tthis->buildIndex();\n    }\n\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        if (bestIndex_) {\n            bestIndex_->addPoints(points, rebuild_threshold);\n        }\n    }\n    \n    void removePoint(size_t id)\n    {\n        if (bestIndex_) {\n            bestIndex_->removePoint(id);\n        }\n    }\n\n    \n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & target_precision_;\n    \tar & build_weight_;\n    \tar & memory_weight_;\n    \tar & sample_fraction_;\n\n    \tflann_algorithm_t index_type;\n    \tif (Archive::is_saving::value) {\n    \t\tindex_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n    \t}\n    \tar & index_type;\n    \tar & bestSearchParams_.checks;\n\n    \tif (Archive::is_loading::value) {\n    \t\tbestParams_[\"algorithm\"] = index_type;\n\n    \t\tindex_params_[\"algorithm\"] = getType();\n            index_params_[\"target_precision_\"] = target_precision_;\n            index_params_[\"build_weight_\"] = build_weight_;\n            index_params_[\"memory_weight_\"] = memory_weight_;\n            index_params_[\"sample_fraction_\"] = sample_fraction_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n\n    \tbestIndex_->saveIndex(stream);\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n\n        IndexParams params;\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(bestParams_,\"algorithm\");\n        bestIndex_ = create_index_by_type<Distance>((flann_algorithm_t)index_type, dataset_, params, distance_);\n        bestIndex_->loadIndex(stream);\n    }\n\n    int knnSearch(const Matrix<ElementType>& queries,\n            Matrix<size_t>& indices,\n            Matrix<DistanceType>& dists,\n            size_t knn,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, params);\n        }\n    }\n\n    int knnSearch(const Matrix<ElementType>& queries,\n            std::vector< std::vector<size_t> >& indices,\n            std::vector<std::vector<DistanceType> >& dists,\n            size_t knn,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->knnSearch(queries, indices, dists, knn, params);\n        }\n\n    }\n    \n    int radiusSearch(const Matrix<ElementType>& queries,\n            Matrix<size_t>& indices,\n            Matrix<DistanceType>& dists,\n            DistanceType radius,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, params);\n        }\n    }\n\n    int radiusSearch(const Matrix<ElementType>& queries,\n            std::vector< std::vector<size_t> >& indices,\n            std::vector<std::vector<DistanceType> >& dists,\n            DistanceType radius,\n            const SearchParams& params) const\n    {\n        if (params.checks == FLANN_CHECKS_AUTOTUNED) {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, bestSearchParams_);\n        }\n        else {\n            return bestIndex_->radiusSearch(queries, indices, dists, radius, params);\n        }        \n    }\n\n    \n    \n    /**\n     *      Method that searches for nearest-neighbors\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        // should not get here\n        assert(false);\n    }\n\n    IndexParams getParameters() const\n    {\n        return bestParams_;\n    }\n\n    FLANN_DEPRECATED SearchParams getSearchParameters() const\n    {\n        return bestSearchParams_;\n    }\n\n    FLANN_DEPRECATED float getSpeedup() const\n    {\n        return speedup_;\n    }\n\n\n    /**\n     *      Number of features in this index.\n     */\n    size_t size() const\n    {\n        return bestIndex_->size();\n    }\n\n    /**\n     *  The length of each vector in this index.\n     */\n    size_t veclen() const\n    {\n        return bestIndex_->veclen();\n    }\n\n    /**\n     * The amount of memory (in bytes) this index uses.\n     */\n    int usedMemory() const\n    {\n        return bestIndex_->usedMemory();\n    }\n\n    /**\n     * Algorithm name\n     */\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_AUTOTUNED;\n    }\n\nprotected:\n    void buildIndexImpl()\n    {\n        /* nothing to do here */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here */\n    }\n\nprivate:\n\n    struct CostData\n    {\n        float searchTimeCost;\n        float buildTimeCost;\n        float memoryCost;\n        float totalCost;\n        IndexParams params;\n    };\n\n    void evaluate_kmeans(CostData& cost)\n    {\n        StartStopTimer t;\n        int checks;\n        const int nn = 1;\n\n        Logger::info(\"KMeansTree using params: max_iterations=%d, branching=%d\\n\",\n                     get_param<int>(cost.params,\"iterations\"),\n                     get_param<int>(cost.params,\"branching\"));\n        KMeansIndex<Distance> kmeans(sampledDataset_, cost.params, distance_);\n        // measure index build time\n        t.start();\n        kmeans.buildIndex();\n        t.stop();\n        float buildTime = (float)t.value;\n\n        // measure search time\n        float searchTime = test_index_precision(kmeans, sampledDataset_, testDataset_, gt_matches_, target_precision_, checks, distance_, nn);\n\n        float datasetMemory = float(sampledDataset_.rows * sampledDataset_.cols * sizeof(float));\n        cost.memoryCost = (kmeans.usedMemory() + datasetMemory) / datasetMemory;\n        cost.searchTimeCost = searchTime;\n        cost.buildTimeCost = buildTime;\n        Logger::info(\"KMeansTree buildTime=%g, searchTime=%g, build_weight=%g\\n\", buildTime, searchTime, build_weight_);\n    }\n\n\n    void evaluate_kdtree(CostData& cost)\n    {\n        StartStopTimer t;\n        int checks;\n        const int nn = 1;\n\n        Logger::info(\"KDTree using params: trees=%d\\n\", get_param<int>(cost.params,\"trees\"));\n        KDTreeIndex<Distance> kdtree(sampledDataset_, cost.params, distance_);\n\n        t.start();\n        kdtree.buildIndex();\n        t.stop();\n        float buildTime = (float)t.value;\n\n        //measure search time\n        float searchTime = test_index_precision(kdtree, sampledDataset_, testDataset_, gt_matches_, target_precision_, checks, distance_, nn);\n\n        float datasetMemory = float(sampledDataset_.rows * sampledDataset_.cols * sizeof(float));\n        cost.memoryCost = (kdtree.usedMemory() + datasetMemory) / datasetMemory;\n        cost.searchTimeCost = searchTime;\n        cost.buildTimeCost = buildTime;\n        Logger::info(\"KDTree buildTime=%g, searchTime=%g\\n\", buildTime, searchTime);\n    }\n\n\n    //    struct KMeansSimpleDownhillFunctor {\n    //\n    //        Autotune& autotuner;\n    //        KMeansSimpleDownhillFunctor(Autotune& autotuner_) : autotuner(autotuner_) {};\n    //\n    //        float operator()(int* params) {\n    //\n    //            float maxFloat = numeric_limits<float>::max();\n    //\n    //            if (params[0]<2) return maxFloat;\n    //            if (params[1]<0) return maxFloat;\n    //\n    //            CostData c;\n    //            c.params[\"algorithm\"] = KMEANS;\n    //            c.params[\"centers-init\"] = CENTERS_RANDOM;\n    //            c.params[\"branching\"] = params[0];\n    //            c.params[\"max-iterations\"] = params[1];\n    //\n    //            autotuner.evaluate_kmeans(c);\n    //\n    //            return c.timeCost;\n    //\n    //        }\n    //    };\n    //\n    //    struct KDTreeSimpleDownhillFunctor {\n    //\n    //        Autotune& autotuner;\n    //        KDTreeSimpleDownhillFunctor(Autotune& autotuner_) : autotuner(autotuner_) {};\n    //\n    //        float operator()(int* params) {\n    //            float maxFloat = numeric_limits<float>::max();\n    //\n    //            if (params[0]<1) return maxFloat;\n    //\n    //            CostData c;\n    //            c.params[\"algorithm\"] = KDTREE;\n    //            c.params[\"trees\"] = params[0];\n    //\n    //            autotuner.evaluate_kdtree(c);\n    //\n    //            return c.timeCost;\n    //\n    //        }\n    //    };\n\n\n\n    void optimizeKMeans(std::vector<CostData>& costs)\n    {\n        Logger::info(\"KMEANS, Step 1: Exploring parameter space\\n\");\n\n        // explore kmeans parameters space using combinations of the parameters below\n        int maxIterations[] = { 1, 5, 10, 15 };\n        int branchingFactors[] = { 16, 32, 64, 128, 256 };\n\n        int kmeansParamSpaceSize = FLANN_ARRAY_LEN(maxIterations) * FLANN_ARRAY_LEN(branchingFactors);\n        costs.reserve(costs.size() + kmeansParamSpaceSize);\n\n        // evaluate kmeans for all parameter combinations\n        for (size_t i = 0; i < FLANN_ARRAY_LEN(maxIterations); ++i) {\n            for (size_t j = 0; j < FLANN_ARRAY_LEN(branchingFactors); ++j) {\n                CostData cost;\n                cost.params[\"algorithm\"] = FLANN_INDEX_KMEANS;\n                cost.params[\"centers_init\"] = FLANN_CENTERS_RANDOM;\n                cost.params[\"iterations\"] = maxIterations[i];\n                cost.params[\"branching\"] = branchingFactors[j];\n\n                evaluate_kmeans(cost);\n                costs.push_back(cost);\n            }\n        }\n\n        //         Logger::info(\"KMEANS, Step 2: simplex-downhill optimization\\n\");\n        //\n        //         const int n = 2;\n        //         // choose initial simplex points as the best parameters so far\n        //         int kmeansNMPoints[n*(n+1)];\n        //         float kmeansVals[n+1];\n        //         for (int i=0;i<n+1;++i) {\n        //             kmeansNMPoints[i*n] = (int)kmeansCosts[i].params[\"branching\"];\n        //             kmeansNMPoints[i*n+1] = (int)kmeansCosts[i].params[\"max-iterations\"];\n        //             kmeansVals[i] = kmeansCosts[i].timeCost;\n        //         }\n        //         KMeansSimpleDownhillFunctor kmeans_cost_func(*this);\n        //         // run optimization\n        //         optimizeSimplexDownhill(kmeansNMPoints,n,kmeans_cost_func,kmeansVals);\n        //         // store results\n        //         for (int i=0;i<n+1;++i) {\n        //             kmeansCosts[i].params[\"branching\"] = kmeansNMPoints[i*2];\n        //             kmeansCosts[i].params[\"max-iterations\"] = kmeansNMPoints[i*2+1];\n        //             kmeansCosts[i].timeCost = kmeansVals[i];\n        //         }\n    }\n\n\n    void optimizeKDTree(std::vector<CostData>& costs)\n    {\n        Logger::info(\"KD-TREE, Step 1: Exploring parameter space\\n\");\n\n        // explore kd-tree parameters space using the parameters below\n        int testTrees[] = { 1, 4, 8, 16, 32 };\n\n        // evaluate kdtree for all parameter combinations\n        for (size_t i = 0; i < FLANN_ARRAY_LEN(testTrees); ++i) {\n            CostData cost;\n            cost.params[\"algorithm\"] = FLANN_INDEX_KDTREE;\n            cost.params[\"trees\"] = testTrees[i];\n\n            evaluate_kdtree(cost);\n            costs.push_back(cost);\n        }\n\n        //         Logger::info(\"KD-TREE, Step 2: simplex-downhill optimization\\n\");\n        //\n        //         const int n = 1;\n        //         // choose initial simplex points as the best parameters so far\n        //         int kdtreeNMPoints[n*(n+1)];\n        //         float kdtreeVals[n+1];\n        //         for (int i=0;i<n+1;++i) {\n        //             kdtreeNMPoints[i] = (int)kdtreeCosts[i].params[\"trees\"];\n        //             kdtreeVals[i] = kdtreeCosts[i].timeCost;\n        //         }\n        //         KDTreeSimpleDownhillFunctor kdtree_cost_func(*this);\n        //         // run optimization\n        //         optimizeSimplexDownhill(kdtreeNMPoints,n,kdtree_cost_func,kdtreeVals);\n        //         // store results\n        //         for (int i=0;i<n+1;++i) {\n        //             kdtreeCosts[i].params[\"trees\"] = kdtreeNMPoints[i];\n        //             kdtreeCosts[i].timeCost = kdtreeVals[i];\n        //         }\n    }\n\n    /**\n     *  Chooses the best nearest-neighbor algorithm and estimates the optimal\n     *  parameters to use when building the index (for a given precision).\n     *  Returns a dictionary with the optimal parameters.\n     */\n    IndexParams estimateBuildParams()\n    {\n        std::vector<CostData> costs;\n\n        int sampleSize = int(sample_fraction_ * dataset_.rows);\n        int testSampleSize = std::min(sampleSize / 10, 1000);\n\n        Logger::info(\"Entering autotuning, dataset size: %d, sampleSize: %d, testSampleSize: %d, target precision: %g\\n\", dataset_.rows, sampleSize, testSampleSize, target_precision_);\n\n        // For a very small dataset, it makes no sense to build any fancy index, just\n        // use linear search\n        if (testSampleSize < 10) {\n            Logger::info(\"Choosing linear, dataset too small\\n\");\n            return LinearIndexParams();\n        }\n\n        // We use a fraction of the original dataset to speedup the autotune algorithm\n        sampledDataset_ = random_sample(dataset_, sampleSize);\n        // We use a cross-validation approach, first we sample a testset from the dataset\n        testDataset_ = random_sample(sampledDataset_, testSampleSize, true);\n\n        // We compute the ground truth using linear search\n        Logger::info(\"Computing ground truth... \\n\");\n        gt_matches_ = Matrix<size_t>(new size_t[testDataset_.rows], testDataset_.rows, 1);\n        StartStopTimer t;\n        int repeats = 0;\n        t.reset();\n        while (t.value<0.2) {\n        \trepeats++;\n            t.start();\n        \tcompute_ground_truth<Distance>(sampledDataset_, testDataset_, gt_matches_, 0, distance_);\n            t.stop();\n        }\n\n        CostData linear_cost;\n        linear_cost.searchTimeCost = (float)t.value/repeats;\n        linear_cost.buildTimeCost = 0;\n        linear_cost.memoryCost = 0;\n        linear_cost.params[\"algorithm\"] = FLANN_INDEX_LINEAR;\n\n        costs.push_back(linear_cost);\n\n        // Start parameter autotune process\n        Logger::info(\"Autotuning parameters...\\n\");\n\n        optimizeKMeans(costs);\n        optimizeKDTree(costs);\n\n        float bestTimeCost = costs[0].buildTimeCost * build_weight_ + costs[0].searchTimeCost;\n        for (size_t i = 0; i < costs.size(); ++i) {\n            float timeCost = costs[i].buildTimeCost * build_weight_ + costs[i].searchTimeCost;\n            Logger::debug(\"Time cost: %g\\n\", timeCost);\n            if (timeCost < bestTimeCost) {\n                bestTimeCost = timeCost;\n            }\n        }\n        Logger::debug(\"Best time cost: %g\\n\", bestTimeCost);\n\n    \tIndexParams bestParams = costs[0].params;\n        if (bestTimeCost > 0) {\n            //change + \n        \tfloat bestCost = (costs[0].buildTimeCost * build_weight_ + costs[0].searchTimeCost) / bestTimeCost;\n            //i=0 ->1\n        \tfor (size_t i = 0; i < costs.size(); ++i) {\n        \t\tfloat crtCost = (costs[i].buildTimeCost * build_weight_ + costs[i].searchTimeCost) / bestTimeCost +\n        \t\t\t\tmemory_weight_ * costs[i].memoryCost;\n        \t\tLogger::debug(\"Cost: %g\\n\", crtCost);\n        \t\tif (crtCost < bestCost) {\n        \t\t\tbestCost = crtCost;\n        \t\t\tbestParams = costs[i].params;\n        \t\t}\n        \t}\n            Logger::debug(\"Best cost: %g\\n\", bestCost);\n        }\n\n        delete[] gt_matches_.ptr();\n        delete[] testDataset_.ptr();\n        delete[] sampledDataset_.ptr();\n\n        return bestParams;\n    }\n\n\n\n    /**\n     *  Estimates the search time parameters needed to get the desired precision.\n     *  Precondition: the index is built\n     *  Postcondition: the searchParams will have the optimum params set, also the speedup obtained over linear search.\n     */\n    float estimateSearchParams(SearchParams& searchParams)\n    {\n        const int nn = 1;\n        const size_t SAMPLE_COUNT = 1000;\n\n        assert(bestIndex_ != NULL); // must have a valid index\n\n        float speedup = 0;\n\n        int samples = (int)std::min(dataset_.rows / 10, SAMPLE_COUNT);\n        if (samples > 0) {\n            Matrix<ElementType> testDataset = random_sample(dataset_, samples);\n\n            Logger::info(\"Computing ground truth\\n\");\n\n            // we need to compute the ground truth first\n            Matrix<size_t> gt_matches(new size_t[testDataset.rows], testDataset.rows, 1);\n            StartStopTimer t;\n            int repeats = 0;\n            t.reset();\n            while (t.value<0.2) {\n            \trepeats++;\n                t.start();\n            \tcompute_ground_truth<Distance>(dataset_, testDataset, gt_matches, 1, distance_);\n                t.stop();\n            }\n            float linear = (float)t.value/repeats;\n\n            int checks;\n            Logger::info(\"Estimating number of checks\\n\");\n\n            float searchTime;\n            float cb_index;\n            if (bestIndex_->getType() == FLANN_INDEX_KMEANS) {\n                Logger::info(\"KMeans algorithm, estimating cluster border factor\\n\");\n                KMeansIndex<Distance>* kmeans = static_cast<KMeansIndex<Distance>*>(bestIndex_);\n                float bestSearchTime = -1;\n                float best_cb_index = -1;\n                int best_checks = -1;\n                for (cb_index = 0; cb_index < 1.1f; cb_index += 0.2f) {\n                    kmeans->set_cb_index(cb_index);\n                    searchTime = test_index_precision(*kmeans, dataset_, testDataset, gt_matches, target_precision_, checks, distance_, nn, 1);\n                    if ((searchTime < bestSearchTime) || (bestSearchTime == -1)) {\n                        bestSearchTime = searchTime;\n                        best_cb_index = cb_index;\n                        best_checks = checks;\n                    }\n                }\n                searchTime = bestSearchTime;\n                cb_index = best_cb_index;\n                checks = best_checks;\n\n                kmeans->set_cb_index(best_cb_index);\n                Logger::info(\"Optimum cb_index: %g\\n\", cb_index);\n                bestParams_[\"cb_index\"] = cb_index;\n            }\n            else {\n                searchTime = test_index_precision(*bestIndex_, dataset_, testDataset, gt_matches, target_precision_, checks, distance_, nn, 1);\n            }\n\n            Logger::info(\"Required number of checks: %d \\n\", checks);\n            searchParams.checks = checks;\n\n            speedup = linear / searchTime;\n\n            delete[] gt_matches.ptr();\n            delete[] testDataset.ptr();\n        }\n\n        return speedup;\n    }\n\n\n    void swap(AutotunedIndex& other)\n    {\n    \tBaseClass::swap(other);\n    \tstd::swap(bestIndex_, other.bestIndex_);\n    \tstd::swap(bestParams_, other.bestParams_);\n    \tstd::swap(bestSearchParams_, other.bestSearchParams_);\n    \tstd::swap(speedup_, other.speedup_);\n    \tstd::swap(dataset_, other.dataset_);\n    \tstd::swap(target_precision_, other.target_precision_);\n    \tstd::swap(build_weight_, other.build_weight_);\n    \tstd::swap(memory_weight_, other.memory_weight_);\n    \tstd::swap(sample_fraction_, other.sample_fraction_);\n    }\n\nprivate:\n    NNIndex<Distance>* bestIndex_;\n\n    IndexParams bestParams_;\n    SearchParams bestSearchParams_;\n\n    Matrix<ElementType> sampledDataset_;\n    Matrix<ElementType> testDataset_;\n    Matrix<size_t> gt_matches_;\n\n    float speedup_;\n\n    /**\n     * The dataset used by this index\n     */\n    Matrix<ElementType> dataset_;\n\n    /**\n     * Index parameters\n     */\n    float target_precision_;\n    float build_weight_;\n    float memory_weight_;\n    float sample_fraction_;\n\n    USING_BASECLASS_SYMBOLS\n};\n}\n\n#endif /* FLANN_AUTOTUNED_INDEX_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/center_chooser.h",
    "content": "/*\n * center_chooser.h\n *\n *  Created on: 2012-11-04\n *      Author: marius\n */\n\n#ifndef CENTER_CHOOSER_H_\n#define CENTER_CHOOSER_H_\n\n#include <flann/util/matrix.h>\n\nnamespace flann\n{\n\ntemplate <typename Distance>\nclass CenterChooser\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    CenterChooser(const Distance& distance) : distance_(distance) {};\n\n    void setDataset(const flann::Matrix<ElementType>& dataset)\n    {\n    \tdataset_ = dataset;\n    }\n\n    virtual ~CenterChooser() {};\n\n    /**\n     * Chooses cluster centers\n     *\n     * @param k number of centers to choose\n     * @param indices indices of points to choose the centers from\n     * @param indices_length length of indices\n     * @param centers indices of chosen centers\n     * @param centers_length length of centers array\n     */\n\tvirtual void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length) = 0;\n\nprotected:\n\tflann::Matrix<ElementType> dataset_;\n\tDistance distance_;\n};\n\n\ntemplate <typename Distance>\nclass RandomCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    RandomCenterChooser(const Distance& distance) :\n    \tCenterChooser<Distance>(distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        UniqueRandom r(indices_length);\n\n        int index;\n        for (index=0; index<k; ++index) {\n            bool duplicate = true;\n            int rnd;\n            while (duplicate) {\n                duplicate = false;\n                rnd = r.next();\n                if (rnd<0) {\n                    centers_length = index;\n                    return;\n                }\n\n                centers[index] = indices[rnd];\n\n                for (int j=0; j<index; ++j) {\n                    DistanceType sq = distance_(dataset_[centers[index]], dataset_[centers[j]], dataset_.cols);\n                    if (sq<1e-16) {\n                        duplicate = true;\n                    }\n                }\n            }\n        }\n        centers_length = index;\n    }\n};\n\n\n\n/**\n * Chooses the initial centers using the Gonzales algorithm.\n */\ntemplate <typename Distance>\nclass GonzalesCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    GonzalesCenterChooser(const Distance& distance) : CenterChooser<Distance>( distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        int n = indices_length;\n\n        int rnd = rand_int(n);\n        assert(rnd >=0 && rnd < n);\n\n        centers[0] = indices[rnd];\n\n        int index;\n        for (index=1; index<k; ++index) {\n\n            int best_index = -1;\n            DistanceType best_val = 0;\n            for (int j=0; j<n; ++j) {\n            \tDistanceType dist = distance_(dataset_[centers[0]],dataset_[indices[j]],dataset_.cols);\n                for (int i=1; i<index; ++i) {\n                    DistanceType tmp_dist = distance_(dataset_[centers[i]],dataset_[indices[j]],dataset_.cols);\n                    if (tmp_dist<dist) {\n                        dist = tmp_dist;\n                    }\n                }\n                if (dist>best_val) {\n                    best_val = dist;\n                    best_index = j;\n                }\n            }\n            if (best_index!=-1) {\n                centers[index] = indices[best_index];\n            }\n            else {\n                break;\n            }\n        }\n        centers_length = index;\n    }\n};\n\n\n/**\n * Chooses the initial centers using the algorithm proposed in the KMeans++ paper:\n * Arthur, David; Vassilvitskii, Sergei - k-means++: The Advantages of Careful Seeding\n */\ntemplate <typename Distance>\nclass KMeansppCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    KMeansppCenterChooser(const Distance& distance) : CenterChooser<Distance>(distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        int n = indices_length;\n\n        double currentPot = 0;\n        DistanceType* closestDistSq = new DistanceType[n];\n\n        // Choose one random center and set the closestDistSq values\n        int index = rand_int(n);\n        assert(index >=0 && index < n);\n        centers[0] = indices[index];\n\n        for (int i = 0; i < n; i++) {\n            closestDistSq[i] = distance_(dataset_[indices[i]], dataset_[indices[index]], dataset_.cols);\n            currentPot += closestDistSq[i];\n        }\n\n\n        const int numLocalTries = 1;\n\n        // Choose each center\n        int centerCount;\n        for (centerCount = 1; centerCount < k; centerCount++) {\n\n            // Repeat several trials\n            double bestNewPot = -1;\n            int bestNewIndex = 0;\n            for (int localTrial = 0; localTrial < numLocalTries; localTrial++) {\n\n                // Choose our center - have to be slightly careful to return a valid answer even accounting\n                // for possible rounding errors\n                double randVal = rand_double(currentPot);\n                for (index = 0; index < n-1; index++) {\n                    if (randVal <= closestDistSq[index]) break;\n                    else randVal -= closestDistSq[index];\n                }\n\n                // Compute the new potential\n                double newPot = 0;\n                for (int i = 0; i < n; i++) newPot += std::min( distance_(dataset_[indices[i]], dataset_[indices[index]], dataset_.cols), closestDistSq[i] );\n\n                // Store the best result\n                if ((bestNewPot < 0)||(newPot < bestNewPot)) {\n                    bestNewPot = newPot;\n                    bestNewIndex = index;\n                }\n            }\n\n            // Add the appropriate center\n            centers[centerCount] = indices[bestNewIndex];\n            currentPot = bestNewPot;\n            for (int i = 0; i < n; i++) closestDistSq[i] = std::min( distance_(dataset_[indices[i]], dataset_[indices[bestNewIndex]], dataset_.cols), closestDistSq[i] );\n        }\n\n        centers_length = centerCount;\n\n        delete[] closestDistSq;\n    }\n};\n\n\n}\n\n\n#endif /* CENTER_CHOOSER_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/center_chooser.h~",
    "content": "/*\n * center_chooser.h\n *\n *  Created on: 2012-11-04\n *      Author: marius\n */\n\n#ifndef CENTER_CHOOSER_H_\n#define CENTER_CHOOSER_H_\n\n#include <flann/util/matrix.h>\n\nnamespace flann\n{\n\ntemplate <typename Distance>\nclass CenterChooser\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    CenterChooser(const Distance& distance) : distance_(distance) {};\n\n    void setDataset(const flann::Matrix<ElementType>& dataset)\n    {\n    \tdataset_ = dataset;\n    }\n\n    virtual ~CenterChooser() {};\n\n    /**\n     * Chooses cluster centers\n     *\n     * @param k number of centers to choose\n     * @param indices indices of points to choose the centers from\n     * @param indices_length length of indices\n     * @param centers indices of chosen centers\n     * @param centers_length length of centers array\n     */\n\tvirtual void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length) = 0;\n\nprotected:\n\tflann::Matrix<ElementType> dataset_;\n\tDistance distance_;\n};\n\n\ntemplate <typename Distance>\nclass RandomCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    RandomCenterChooser(const Distance& distance) :\n    \tCenterChooser<Distance>(distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        UniqueRandom r(indices_length);\n\n        int index;\n        for (index=0; index<k; ++index) {\n            bool duplicate = true;\n            int rnd;\n            while (duplicate) {\n                duplicate = false;\n                rnd = r.next();\n                if (rnd<0) {\n                    centers_length = index;\n                    return;\n                }\n\n                centers[index] = indices[rnd];\n\n                for (int j=0; j<index; ++j) {\n                    DistanceType sq = distance_(dataset_[centers[index]], dataset_[centers[j]], dataset_.cols);\n                    if (sq<1e-16) {\n                        duplicate = true;\n                    }\n                }\n            }\n        }\n\n        centers_length = index;\n    }\n};\n\n\n\n/**\n * Chooses the initial centers using the Gonzales algorithm.\n */\ntemplate <typename Distance>\nclass GonzalesCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    GonzalesCenterChooser(const Distance& distance) : CenterChooser<Distance>( distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        int n = indices_length;\n\n        int rnd = rand_int(n);\n        assert(rnd >=0 && rnd < n);\n\n        centers[0] = indices[rnd];\n\n        int index;\n        for (index=1; index<k; ++index) {\n\n            int best_index = -1;\n            DistanceType best_val = 0;\n            for (int j=0; j<n; ++j) {\n            \tDistanceType dist = distance_(dataset_[centers[0]],dataset_[indices[j]],dataset_.cols);\n                for (int i=1; i<index; ++i) {\n                    DistanceType tmp_dist = distance_(dataset_[centers[i]],dataset_[indices[j]],dataset_.cols);\n                    if (tmp_dist<dist) {\n                        dist = tmp_dist;\n                    }\n                }\n                if (dist>best_val) {\n                    best_val = dist;\n                    best_index = j;\n                }\n            }\n            if (best_index!=-1) {\n                centers[index] = indices[best_index];\n            }\n            else {\n                break;\n            }\n        }\n        centers_length = index;\n    }\n};\n\n\n/**\n * Chooses the initial centers using the algorithm proposed in the KMeans++ paper:\n * Arthur, David; Vassilvitskii, Sergei - k-means++: The Advantages of Careful Seeding\n */\ntemplate <typename Distance>\nclass KMeansppCenterChooser : public CenterChooser<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    using CenterChooser<Distance>::dataset_;\n    using CenterChooser<Distance>::distance_;\n\n    KMeansppCenterChooser(const Distance& distance) : CenterChooser<Distance>(distance) {}\n\n    void operator()(int k, int* indices, int indices_length, int* centers, int& centers_length)\n    {\n        int n = indices_length;\n\n        double currentPot = 0;\n        DistanceType* closestDistSq = new DistanceType[n];\n\n        // Choose one random center and set the closestDistSq values\n        int index = rand_int(n);\n        assert(index >=0 && index < n);\n        centers[0] = indices[index];\n\n        for (int i = 0; i < n; i++) {\n            closestDistSq[i] = distance_(dataset_[indices[i]], dataset_[indices[index]], dataset_.cols);\n            currentPot += closestDistSq[i];\n        }\n\n\n        const int numLocalTries = 1;\n\n        // Choose each center\n        int centerCount;\n        for (centerCount = 1; centerCount < k; centerCount++) {\n\n            // Repeat several trials\n            double bestNewPot = -1;\n            int bestNewIndex = 0;\n            for (int localTrial = 0; localTrial < numLocalTries; localTrial++) {\n\n                // Choose our center - have to be slightly careful to return a valid answer even accounting\n                // for possible rounding errors\n                double randVal = rand_double(currentPot);\n                for (index = 0; index < n-1; index++) {\n                    if (randVal <= closestDistSq[index]) break;\n                    else randVal -= closestDistSq[index];\n                }\n\n                // Compute the new potential\n                double newPot = 0;\n                for (int i = 0; i < n; i++) newPot += std::min( distance_(dataset_[indices[i]], dataset_[indices[index]], dataset_.cols), closestDistSq[i] );\n\n                // Store the best result\n                if ((bestNewPot < 0)||(newPot < bestNewPot)) {\n                    bestNewPot = newPot;\n                    bestNewIndex = index;\n                }\n            }\n\n            // Add the appropriate center\n            centers[centerCount] = indices[bestNewIndex];\n            currentPot = bestNewPot;\n            for (int i = 0; i < n; i++) closestDistSq[i] = std::min( distance_(dataset_[indices[i]], dataset_[indices[bestNewIndex]], dataset_.cols), closestDistSq[i] );\n        }\n\n        centers_length = centerCount;\n\n        delete[] closestDistSq;\n    }\n};\n\n\n}\n\n\n#endif /* CENTER_CHOOSER_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/composite_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_COMPOSITE_INDEX_H_\n#define FLANN_COMPOSITE_INDEX_H_\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/kdtree_index.h\"\n#include \"flann/algorithms/kmeans_index.h\"\n\nnamespace flann\n{\n\n/**\n * Index parameters for the CompositeIndex.\n */\nstruct CompositeIndexParams : public IndexParams\n{\n    CompositeIndexParams(int trees = 4, int branching = 32, int iterations = 11,\n                         flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // number of randomized trees to use (for kdtree)\n        (*this)[\"trees\"] = trees;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * This index builds a kd-tree index and a k-means index and performs nearest\n * neighbour search both indexes. This gives a slight boost in search performance\n * as some of the neighbours that are missed by one index are found by the other.\n */\ntemplate <typename Distance>\nclass CompositeIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_kdtree_distance;\n\n    /**\n     * Index constructor\n     * @param inputData dataset containing the points to index\n     * @param params Index parameters\n     * @param d Distance functor\n     * @return\n     */\n    CompositeIndex(const IndexParams& params = CompositeIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n        kdtree_index_ = new KDTreeIndex<Distance>(params, d);\n        kmeans_index_ = new KMeansIndex<Distance>(params, d);\n\n    }\n\n    CompositeIndex(const Matrix<ElementType>& inputData, const IndexParams& params = CompositeIndexParams(),\n                   Distance d = Distance()) : BaseClass(params, d)\n    {\n        kdtree_index_ = new KDTreeIndex<Distance>(inputData, params, d);\n        kmeans_index_ = new KMeansIndex<Distance>(inputData, params, d);\n    }\n\n    CompositeIndex(const CompositeIndex& other) : BaseClass(other),\n    \tkmeans_index_(other.kmeans_index_), kdtree_index_(other.kdtree_index_)\n    {\n    }\n\n    CompositeIndex& operator=(CompositeIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~CompositeIndex()\n    {\n        delete kdtree_index_;\n        delete kmeans_index_;\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new CompositeIndex(*this);\n    }\n\n    /**\n     * @return The index type\n     */\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_COMPOSITE;\n    }\n\n    /**\n     * @return Size of the index\n     */\n    size_t size() const\n    {\n        return kdtree_index_->size();\n    }\n\n    /**\n     * \\returns The dimensionality of the features in this index.\n     */\n    size_t veclen() const\n    {\n        return kdtree_index_->veclen();\n    }\n\n    /**\n     * \\returns The amount of memory (in bytes) used by the index.\n     */\n    int usedMemory() const\n    {\n        return kmeans_index_->usedMemory() + kdtree_index_->usedMemory();\n    }\n\n    using NNIndex<Distance>::buildIndex;\n    /**\n     * \\brief Builds the index\n     */\n    void buildIndex()\n    {\n        Logger::info(\"Building kmeans tree...\\n\");\n        kmeans_index_->buildIndex();\n        Logger::info(\"Building kdtree tree...\\n\");\n        kdtree_index_->buildIndex();\n    }\n    \n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        kmeans_index_->addPoints(points, rebuild_threshold);\n        kdtree_index_->addPoints(points, rebuild_threshold);\n    }\n\n    void removePoint(size_t index)\n    {\n        kmeans_index_->removePoint(index);\n        kdtree_index_->removePoint(index);\n    }\n\n\n    /**\n     * \\brief Saves the index to a stream\n     * \\param stream The stream to save the index to\n     */\n    void saveIndex(FILE* stream)\n    {\n        kmeans_index_->saveIndex(stream);\n        kdtree_index_->saveIndex(stream);\n    }\n\n    /**\n     * \\brief Loads the index from a stream\n     * \\param stream The stream from which the index is loaded\n     */\n    void loadIndex(FILE* stream)\n    {\n        kmeans_index_->loadIndex(stream);\n        kdtree_index_->loadIndex(stream);\n    }\n\n    /**\n     * \\brief Method that searches for nearest-neighbours\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        kmeans_index_->findNeighbors(result, vec, searchParams);\n        kdtree_index_->findNeighbors(result, vec, searchParams);\n    }\n\nprotected:\n    void swap(CompositeIndex& other)\n    {\n    \tstd::swap(kmeans_index_, other.kmeans_index_);\n    \tstd::swap(kdtree_index_, other.kdtree_index_);\n    }\n\n    void buildIndexImpl()\n    {\n        /* nothing to do here */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here */\n    }\n\n\nprivate:\n    /** The k-means index */\n    KMeansIndex<Distance>* kmeans_index_;\n\n    /** The kd-tree index */\n    KDTreeIndex<Distance>* kdtree_index_;\n};\n\n}\n\n#endif //FLANN_COMPOSITE_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/dist.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_DIST_H_\n#define FLANN_DIST_H_\n\n#include <cmath>\n#include <cstdlib>\n#include <string.h>\n#ifdef _MSC_VER\ntypedef unsigned __int32 uint32_t;\ntypedef unsigned __int64 uint64_t;\n#else\n#include <stdint.h>\n#endif\n\n#include \"flann/defines.h\"\n\n\nnamespace flann\n{\n\ntemplate<typename T>\nstruct Accumulator { typedef T Type; };\ntemplate<>\nstruct Accumulator<unsigned char>  { typedef float Type; };\ntemplate<>\nstruct Accumulator<unsigned short> { typedef float Type; };\ntemplate<>\nstruct Accumulator<unsigned int> { typedef float Type; };\ntemplate<>\nstruct Accumulator<char>   { typedef float Type; };\ntemplate<>\nstruct Accumulator<short>  { typedef float Type; };\ntemplate<>\nstruct Accumulator<int> { typedef float Type; };\n\n\n\n/**\n * Squared Euclidean distance functor.\n *\n * This is the simpler, unrolled version. This is preferable for\n * very low dimensionality data (eg 3D points)\n */\ntemplate<class T>\nstruct L2_Simple\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n\t\tstd::cout<<\"l2 simple\"<<std::endl;\n        ResultType result = ResultType();\n        ResultType diff;\n        for(size_t i = 0; i < size; ++i ) {\n            diff = *a++ - *b++;\n            result += diff*diff;\n        }\n        return result;\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n\t\tstd::cout<<\"l2 simple\"<<std::endl;\n        return (a-b)*(a-b);\n    }\n};\n\ntemplate<class T>\nstruct L2_3D\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n\t\tstd::cout<<\"l2 3d\"<<std::endl;\n        ResultType result = ResultType();        \n        ResultType diff;\n        diff = *a++ - *b++;\n        result += diff*diff;\n        diff = *a++ - *b++;\n        result += diff*diff;\n        diff = *a++ - *b++;\n        result += diff*diff;        \n        return result;\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return (a-b)*(a-b);\n    }\n};\n\n/**\n * Squared Euclidean distance functor, optimized version\n */\ntemplate<class T>\nstruct L2\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the squared Euclidean distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     *\n     *\tThe computation of squared root at the end is omitted for\n     *\tefficiency.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n\t\t//*\n\t\tResultType result = ResultType();\n        ResultType diff;\n        for(size_t i = 0; i < size; ++i ) {\n            diff = *a++ - *b++;\n            result += diff*diff;\n        }\n        return result;//*/\n\t\t/*\n\t\t//std::cout<<\"fast l2 simple\"<<std::endl;\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        // Process 4 items with each loop for efficiency. \n        while (a < lastgroup) {\n            diff0 = (ResultType)(a[0] - b[0]);\n            diff1 = (ResultType)(a[1] - b[1]);\n            diff2 = (ResultType)(a[2] - b[2]);\n            diff3 = (ResultType)(a[3] - b[3]);\n            result += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        //Process last 0-3 pixels.  Not needed for standard vector lengths. \n        while (a < last) {\n            diff0 = (ResultType)(*a++ - *b++);\n            result += diff0 * diff0;\n        }\n        return result;*/\n    }\n\n    /**\n     *\tPartial euclidean distance, using just one dimension. This is used by the\n     *\tkd-tree when computing partial distances while traversing the tree.\n     *\n     *\tSquared root is omitted for efficiency.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n\t\t//std::cout<<\"fast l2 simple\"<<std::endl;\n        return (a-b)*(a-b);\n    }\n};\n\n\n/*\n * Manhattan distance functor, optimized version\n */\ntemplate<class T>\nstruct L1\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the Manhattan (L_1) distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = (ResultType)std::abs(a[0] - b[0]);\n            diff1 = (ResultType)std::abs(a[1] - b[1]);\n            diff2 = (ResultType)std::abs(a[2] - b[2]);\n            diff3 = (ResultType)std::abs(a[3] - b[3]);\n            result += diff0 + diff1 + diff2 + diff3;\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = (ResultType)std::abs(*a++ - *b++);\n            result += diff0;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return std::abs(a-b);\n    }\n};\n\n\n\ntemplate<class T>\nstruct MinkowskiDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    int order;\n\n    MinkowskiDistance(int order_) : order(order_) {}\n\n    /**\n     *  Compute the Minkowsky (L_p) distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     *\n     *\tThe computation of squared root at the end is omitted for\n     *\tefficiency.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = (ResultType)std::abs(a[0] - b[0]);\n            diff1 = (ResultType)std::abs(a[1] - b[1]);\n            diff2 = (ResultType)std::abs(a[2] - b[2]);\n            diff3 = (ResultType)std::abs(a[3] - b[3]);\n            result += pow(diff0,order) + pow(diff1,order) + pow(diff2,order) + pow(diff3,order);\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = (ResultType)std::abs(*a++ - *b++);\n            result += pow(diff0,order);\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return pow(static_cast<ResultType>(std::abs(a-b)),order);\n    }\n};\n\n\n\ntemplate<class T>\nstruct MaxDistance\n{\n    typedef bool is_vector_space_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the max distance (L_infinity) between two vectors.\n     *\n     *  This distance is not a valid kdtree distance, it's not dimensionwise additive.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = std::abs(a[0] - b[0]);\n            diff1 = std::abs(a[1] - b[1]);\n            diff2 = std::abs(a[2] - b[2]);\n            diff3 = std::abs(a[3] - b[3]);\n            if (diff0>result) {result = diff0; }\n            if (diff1>result) {result = diff1; }\n            if (diff2>result) {result = diff2; }\n            if (diff3>result) {result = diff3; }\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = std::abs(*a++ - *b++);\n            result = (diff0>result) ? diff0 : result;\n        }\n        return result;\n    }\n\n    /* This distance functor is not dimension-wise additive, which\n     * makes it an invalid kd-tree distance, not implementing the accum_dist method */\n\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor\n * bit count of A exclusive XOR'ed with B\n */\nstruct HammingLUT\n{\n    typedef unsigned char ElementType;\n    typedef int ResultType;\n\n    /** this will count the bits in a ^ b\n     */\n    ResultType operator()(const unsigned char* a, const unsigned char* b, int size) const\n    {\n        ResultType result = 0;\n        for (int i = 0; i < size; i++) {\n            result += byteBitsLookUp(a[i] ^ b[i]);\n        }\n        return result;\n    }\n\n\n    /** \\brief given a byte, count the bits using a look up table\n     *  \\param b the byte to count bits.  The look up table has an entry for all\n     *  values of b, where that entry is the number of bits.\n     *  \\return the number of bits in byte b\n     */\n    static unsigned char byteBitsLookUp(unsigned char b)\n    {\n        static const unsigned char table[256]  = {\n            /* 0 */ 0, /* 1 */ 1, /* 2 */ 1, /* 3 */ 2,\n            /* 4 */ 1, /* 5 */ 2, /* 6 */ 2, /* 7 */ 3,\n            /* 8 */ 1, /* 9 */ 2, /* a */ 2, /* b */ 3,\n            /* c */ 2, /* d */ 3, /* e */ 3, /* f */ 4,\n            /* 10 */ 1, /* 11 */ 2, /* 12 */ 2, /* 13 */ 3,\n            /* 14 */ 2, /* 15 */ 3, /* 16 */ 3, /* 17 */ 4,\n            /* 18 */ 2, /* 19 */ 3, /* 1a */ 3, /* 1b */ 4,\n            /* 1c */ 3, /* 1d */ 4, /* 1e */ 4, /* 1f */ 5,\n            /* 20 */ 1, /* 21 */ 2, /* 22 */ 2, /* 23 */ 3,\n            /* 24 */ 2, /* 25 */ 3, /* 26 */ 3, /* 27 */ 4,\n            /* 28 */ 2, /* 29 */ 3, /* 2a */ 3, /* 2b */ 4,\n            /* 2c */ 3, /* 2d */ 4, /* 2e */ 4, /* 2f */ 5,\n            /* 30 */ 2, /* 31 */ 3, /* 32 */ 3, /* 33 */ 4,\n            /* 34 */ 3, /* 35 */ 4, /* 36 */ 4, /* 37 */ 5,\n            /* 38 */ 3, /* 39 */ 4, /* 3a */ 4, /* 3b */ 5,\n            /* 3c */ 4, /* 3d */ 5, /* 3e */ 5, /* 3f */ 6,\n            /* 40 */ 1, /* 41 */ 2, /* 42 */ 2, /* 43 */ 3,\n            /* 44 */ 2, /* 45 */ 3, /* 46 */ 3, /* 47 */ 4,\n            /* 48 */ 2, /* 49 */ 3, /* 4a */ 3, /* 4b */ 4,\n            /* 4c */ 3, /* 4d */ 4, /* 4e */ 4, /* 4f */ 5,\n            /* 50 */ 2, /* 51 */ 3, /* 52 */ 3, /* 53 */ 4,\n            /* 54 */ 3, /* 55 */ 4, /* 56 */ 4, /* 57 */ 5,\n            /* 58 */ 3, /* 59 */ 4, /* 5a */ 4, /* 5b */ 5,\n            /* 5c */ 4, /* 5d */ 5, /* 5e */ 5, /* 5f */ 6,\n            /* 60 */ 2, /* 61 */ 3, /* 62 */ 3, /* 63 */ 4,\n            /* 64 */ 3, /* 65 */ 4, /* 66 */ 4, /* 67 */ 5,\n            /* 68 */ 3, /* 69 */ 4, /* 6a */ 4, /* 6b */ 5,\n            /* 6c */ 4, /* 6d */ 5, /* 6e */ 5, /* 6f */ 6,\n            /* 70 */ 3, /* 71 */ 4, /* 72 */ 4, /* 73 */ 5,\n            /* 74 */ 4, /* 75 */ 5, /* 76 */ 5, /* 77 */ 6,\n            /* 78 */ 4, /* 79 */ 5, /* 7a */ 5, /* 7b */ 6,\n            /* 7c */ 5, /* 7d */ 6, /* 7e */ 6, /* 7f */ 7,\n            /* 80 */ 1, /* 81 */ 2, /* 82 */ 2, /* 83 */ 3,\n            /* 84 */ 2, /* 85 */ 3, /* 86 */ 3, /* 87 */ 4,\n            /* 88 */ 2, /* 89 */ 3, /* 8a */ 3, /* 8b */ 4,\n            /* 8c */ 3, /* 8d */ 4, /* 8e */ 4, /* 8f */ 5,\n            /* 90 */ 2, /* 91 */ 3, /* 92 */ 3, /* 93 */ 4,\n            /* 94 */ 3, /* 95 */ 4, /* 96 */ 4, /* 97 */ 5,\n            /* 98 */ 3, /* 99 */ 4, /* 9a */ 4, /* 9b */ 5,\n            /* 9c */ 4, /* 9d */ 5, /* 9e */ 5, /* 9f */ 6,\n            /* a0 */ 2, /* a1 */ 3, /* a2 */ 3, /* a3 */ 4,\n            /* a4 */ 3, /* a5 */ 4, /* a6 */ 4, /* a7 */ 5,\n            /* a8 */ 3, /* a9 */ 4, /* aa */ 4, /* ab */ 5,\n            /* ac */ 4, /* ad */ 5, /* ae */ 5, /* af */ 6,\n            /* b0 */ 3, /* b1 */ 4, /* b2 */ 4, /* b3 */ 5,\n            /* b4 */ 4, /* b5 */ 5, /* b6 */ 5, /* b7 */ 6,\n            /* b8 */ 4, /* b9 */ 5, /* ba */ 5, /* bb */ 6,\n            /* bc */ 5, /* bd */ 6, /* be */ 6, /* bf */ 7,\n            /* c0 */ 2, /* c1 */ 3, /* c2 */ 3, /* c3 */ 4,\n            /* c4 */ 3, /* c5 */ 4, /* c6 */ 4, /* c7 */ 5,\n            /* c8 */ 3, /* c9 */ 4, /* ca */ 4, /* cb */ 5,\n            /* cc */ 4, /* cd */ 5, /* ce */ 5, /* cf */ 6,\n            /* d0 */ 3, /* d1 */ 4, /* d2 */ 4, /* d3 */ 5,\n            /* d4 */ 4, /* d5 */ 5, /* d6 */ 5, /* d7 */ 6,\n            /* d8 */ 4, /* d9 */ 5, /* da */ 5, /* db */ 6,\n            /* dc */ 5, /* dd */ 6, /* de */ 6, /* df */ 7,\n            /* e0 */ 3, /* e1 */ 4, /* e2 */ 4, /* e3 */ 5,\n            /* e4 */ 4, /* e5 */ 5, /* e6 */ 5, /* e7 */ 6,\n            /* e8 */ 4, /* e9 */ 5, /* ea */ 5, /* eb */ 6,\n            /* ec */ 5, /* ed */ 6, /* ee */ 6, /* ef */ 7,\n            /* f0 */ 4, /* f1 */ 5, /* f2 */ 5, /* f3 */ 6,\n            /* f4 */ 5, /* f5 */ 6, /* f6 */ 6, /* f7 */ 7,\n            /* f8 */ 5, /* f9 */ 6, /* fa */ 6, /* fb */ 7,\n            /* fc */ 6, /* fd */ 7, /* fe */ 7, /* ff */ 8\n        };\n        return table[b];\n    }\n};\n\n/**\n * Hamming distance functor (pop count between two binary vectors, i.e. xor them and count the number of bits set)\n * That code was taken from brief.cpp in OpenCV\n */\ntemplate<class T>\nstruct HammingPopcnt\n{\n    typedef T ElementType;\n    typedef int ResultType;\n\n    template<typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n        ResultType result = 0;\n#if __GNUC__\n#if ANDROID && HAVE_NEON\n        static uint64_t features = android_getCpuFeatures();\n        if ((features& ANDROID_CPU_ARM_FEATURE_NEON)) {\n            for (size_t i = 0; i < size; i += 16) {\n                uint8x16_t A_vec = vld1q_u8 (a + i);\n                uint8x16_t B_vec = vld1q_u8 (b + i);\n                //uint8x16_t veorq_u8 (uint8x16_t, uint8x16_t)\n                uint8x16_t AxorB = veorq_u8 (A_vec, B_vec);\n\n                uint8x16_t bitsSet += vcntq_u8 (AxorB);\n                //uint16x8_t vpadalq_u8 (uint16x8_t, uint8x16_t)\n                uint16x8_t bitSet8 = vpaddlq_u8 (bitsSet);\n                uint32x4_t bitSet4 = vpaddlq_u16 (bitSet8);\n\n                uint64x2_t bitSet2 = vpaddlq_u32 (bitSet4);\n                result += vgetq_lane_u64 (bitSet2,0);\n                result += vgetq_lane_u64 (bitSet2,1);\n            }\n        }\n        else\n#endif\n        //for portability just use unsigned long -- and use the __builtin_popcountll (see docs for __builtin_popcountll)\n        typedef unsigned long long pop_t;\n        const size_t modulo = size % sizeof(pop_t);\n        const pop_t* a2 = reinterpret_cast<const pop_t*> (a);\n        const pop_t* b2 = reinterpret_cast<const pop_t*> (b);\n        const pop_t* a2_end = a2 + (size / sizeof(pop_t));\n\n        for (; a2 != a2_end; ++a2, ++b2) result += __builtin_popcountll((*a2) ^ (*b2));\n\n        if (modulo) {\n            //in the case where size is not dividable by sizeof(size_t)\n            //need to mask off the bits at the end\n            pop_t a_final = 0, b_final = 0;\n            memcpy(&a_final, a2, modulo);\n            memcpy(&b_final, b2, modulo);\n            result += __builtin_popcountll(a_final ^ b_final);\n        }\n#else\n        HammingLUT lut;\n        result = lut(reinterpret_cast<const unsigned char*> (a),\n                     reinterpret_cast<const unsigned char*> (b), size * sizeof(pop_t));\n#endif\n        return result;\n    }\n};\n\ntemplate<typename T>\nstruct Hamming\n{\n    typedef T ElementType;\n    typedef unsigned int ResultType;\n\n    /** This is popcount_3() from:\n     * http://en.wikipedia.org/wiki/Hamming_weight */\n    unsigned int popcnt32(uint32_t n) const\n    {\n        n -= ((n >> 1) & 0x55555555);\n        n = (n & 0x33333333) + ((n >> 2) & 0x33333333);\n        return (((n + (n >> 4))& 0xF0F0F0F)* 0x1010101) >> 24;\n    }\n\n    unsigned int popcnt64(uint64_t n) const\n    {\n        n -= ((n >> 1) & 0x5555555555555555LL);\n        n = (n & 0x3333333333333333LL) + ((n >> 2) & 0x3333333333333333LL);\n        return (((n + (n >> 4))& 0x0f0f0f0f0f0f0f0fLL)* 0x0101010101010101LL) >> 56;\n    }\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = 0) const\n    {\n#ifdef FLANN_PLATFORM_64_BIT\n        const uint64_t* pa = reinterpret_cast<const uint64_t*>(a);\n        const uint64_t* pb = reinterpret_cast<const uint64_t*>(b);\n        ResultType result = 0;\n        size /= (sizeof(uint64_t)/sizeof(unsigned char));\n        for(size_t i = 0; i < size; ++i ) {\n            result += popcnt64(*pa ^ *pb);\n            ++pa;\n            ++pb;\n        }\n#else\n        const uint32_t* pa = reinterpret_cast<const uint32_t*>(a);\n        const uint32_t* pb = reinterpret_cast<const uint32_t*>(b);\n        ResultType result = 0;\n        size /= (sizeof(uint32_t)/sizeof(unsigned char));\n        for(size_t i = 0; i < size; ++i ) {\n        \tresult += popcnt32(*pa ^ *pb);\n        \t++pa;\n        \t++pb;\n        }\n#endif\n        return result;\n    }\n};\n\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\ntemplate<class T>\nstruct HistIntersectionDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the histogram intersection distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType min0, min1, min2, min3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            min0 = (ResultType)(a[0] < b[0] ? a[0] : b[0]);\n            min1 = (ResultType)(a[1] < b[1] ? a[1] : b[1]);\n            min2 = (ResultType)(a[2] < b[2] ? a[2] : b[2]);\n            min3 = (ResultType)(a[3] < b[3] ? a[3] : b[3]);\n            result += min0 + min1 + min2 + min3;\n            a += 4;\n            b += 4;\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            min0 = (ResultType)(*a < *b ? *a : *b);\n            result += min0;\n            ++a;\n            ++b;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return a<b ? a : b;\n    }\n};\n\n\n\ntemplate<class T>\nstruct HellingerDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the histogram intersection distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = sqrt(static_cast<ResultType>(a[0])) - sqrt(static_cast<ResultType>(b[0]));\n            diff1 = sqrt(static_cast<ResultType>(a[1])) - sqrt(static_cast<ResultType>(b[1]));\n            diff2 = sqrt(static_cast<ResultType>(a[2])) - sqrt(static_cast<ResultType>(b[2]));\n            diff3 = sqrt(static_cast<ResultType>(a[3])) - sqrt(static_cast<ResultType>(b[3]));\n            result += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n            a += 4;\n            b += 4;\n        }\n        while (a < last) {\n            diff0 = sqrt(static_cast<ResultType>(*a++)) - sqrt(static_cast<ResultType>(*b++));\n            result += diff0 * diff0;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return sqrt(static_cast<ResultType>(a)) - sqrt(static_cast<ResultType>(b));\n    }\n};\n\n\ntemplate<class T>\nstruct ChiSquareDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the chi-square distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType sum, diff;\n        Iterator1 last = a + size;\n\n        while (a < last) {\n            sum = (ResultType)(*a + *b);\n            if (sum>0) {\n                diff = (ResultType)(*a - *b);\n                result += diff*diff/sum;\n            }\n            ++a;\n            ++b;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        ResultType result = ResultType();\n        ResultType sum, diff;\n\n        sum = (ResultType)(a+b);\n        if (sum>0) {\n            diff = (ResultType)(a-b);\n            result = diff*diff/sum;\n        }\n        return result;\n    }\n};\n\n\ntemplate<class T>\nstruct KL_Divergence\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the Kullback–Leibler divergence\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        Iterator1 last = a + size;\n\n        while (a < last) {\n            if (* a != 0) {\n                ResultType ratio = (ResultType)(*a / *b);\n                if (ratio>0) {\n                    result += *a * log(ratio);\n                }\n            }\n            ++a;\n            ++b;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        ResultType result = ResultType();\n        ResultType ratio = (ResultType)(a / b);\n        if (ratio>0) {\n            result = a * log(ratio);\n        }\n        return result;\n    }\n};\n\n}\n\n#endif //FLANN_DIST_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/dist.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_DIST_H_\n#define FLANN_DIST_H_\n\n#include <cmath>\n#include <cstdlib>\n#include <string.h>\n#ifdef _MSC_VER\ntypedef unsigned __int32 uint32_t;\ntypedef unsigned __int64 uint64_t;\n#else\n#include <stdint.h>\n#endif\n\n#include \"flann/defines.h\"\n\n\nnamespace flann\n{\n\ntemplate<typename T>\nstruct Accumulator { typedef T Type; };\ntemplate<>\nstruct Accumulator<unsigned char>  { typedef float Type; };\ntemplate<>\nstruct Accumulator<unsigned short> { typedef float Type; };\ntemplate<>\nstruct Accumulator<unsigned int> { typedef float Type; };\ntemplate<>\nstruct Accumulator<char>   { typedef float Type; };\ntemplate<>\nstruct Accumulator<short>  { typedef float Type; };\ntemplate<>\nstruct Accumulator<int> { typedef float Type; };\n\n\n\n/**\n * Squared Euclidean distance functor.\n *\n * This is the simpler, unrolled version. This is preferable for\n * very low dimensionality data (eg 3D points)\n */\ntemplate<class T>\nstruct L2_Simple\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n\t\tstd::cout<<\"l2 simple\"<<std::endl;\n        ResultType result = ResultType();\n        ResultType diff;\n        for(size_t i = 0; i < size; ++i ) {\n            diff = *a++ - *b++;\n            result += diff*diff;\n        }\n        return result;\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n\t\tstd::cout<<\"l2 simple\"<<std::endl;\n        return (a-b)*(a-b);\n    }\n};\n\ntemplate<class T>\nstruct L2_3D\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n\t\tstd::cout<<\"l2 3d\"<<std::endl;\n        ResultType result = ResultType();        \n        ResultType diff;\n        diff = *a++ - *b++;\n        result += diff*diff;\n        diff = *a++ - *b++;\n        result += diff*diff;\n        diff = *a++ - *b++;\n        result += diff*diff;        \n        return result;\n    }\n\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return (a-b)*(a-b);\n    }\n};\n\n/**\n * Squared Euclidean distance functor, optimized version\n */\ntemplate<class T>\nstruct L2\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the squared Euclidean distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     *\n     *\tThe computation of squared root at the end is omitted for\n     *\tefficiency.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n\t\t//*\n\t\tResultType result = ResultType();\n        ResultType diff;\n        for(size_t i = 0; i < size; ++i ) {\n            diff = *a++ - *b++;\n            result += diff*diff;\n        }\n        return result;//*/\n\t\t/*\n\t\t//std::cout<<\"fast l2 simple\"<<std::endl;\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        // Process 4 items with each loop for efficiency. \n        while (a < lastgroup) {\n            diff0 = (ResultType)(a[0] - b[0]);\n            diff1 = (ResultType)(a[1] - b[1]);\n            diff2 = (ResultType)(a[2] - b[2]);\n            diff3 = (ResultType)(a[3] - b[3]);\n            result += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        //Process last 0-3 pixels.  Not needed for standard vector lengths. \n        while (a < last) {\n            diff0 = (ResultType)(*a++ - *b++);\n            result += diff0 * diff0;\n        }\n        return result;*/\n    }\n\n    /**\n     *\tPartial euclidean distance, using just one dimension. This is used by the\n     *\tkd-tree when computing partial distances while traversing the tree.\n     *\n     *\tSquared root is omitted for efficiency.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n\t\t//std::cout<<\"fast l2 simple\"<<std::endl;\n        return (a-b)*(a-b);\n    }\n};\n\n\n/*\n * Manhattan distance functor, optimized version\n */\ntemplate<class T>\nstruct L1\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the Manhattan (L_1) distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = (ResultType)std::abs(a[0] - b[0]);\n            diff1 = (ResultType)std::abs(a[1] - b[1]);\n            diff2 = (ResultType)std::abs(a[2] - b[2]);\n            diff3 = (ResultType)std::abs(a[3] - b[3]);\n            result += diff0 + diff1 + diff2 + diff3;\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = (ResultType)std::abs(*a++ - *b++);\n            result += diff0;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return std::abs(a-b);\n    }\n};\n\n\n\ntemplate<class T>\nstruct MinkowskiDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    int order;\n\n    MinkowskiDistance(int order_) : order(order_) {}\n\n    /**\n     *  Compute the Minkowsky (L_p) distance between two vectors.\n     *\n     *\tThis is highly optimised, with loop unrolling, as it is one\n     *\tof the most expensive inner loops.\n     *\n     *\tThe computation of squared root at the end is omitted for\n     *\tefficiency.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = (ResultType)std::abs(a[0] - b[0]);\n            diff1 = (ResultType)std::abs(a[1] - b[1]);\n            diff2 = (ResultType)std::abs(a[2] - b[2]);\n            diff3 = (ResultType)std::abs(a[3] - b[3]);\n            result += pow(diff0,order) + pow(diff1,order) + pow(diff2,order) + pow(diff3,order);\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = (ResultType)std::abs(*a++ - *b++);\n            result += pow(diff0,order);\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return pow(static_cast<ResultType>(std::abs(a-b)),order);\n    }\n};\n\n\n\ntemplate<class T>\nstruct MaxDistance\n{\n    typedef bool is_vector_space_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the max distance (L_infinity) between two vectors.\n     *\n     *  This distance is not a valid kdtree distance, it's not dimensionwise additive.\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = std::abs(a[0] - b[0]);\n            diff1 = std::abs(a[1] - b[1]);\n            diff2 = std::abs(a[2] - b[2]);\n            diff3 = std::abs(a[3] - b[3]);\n            if (diff0>result) {result = diff0; }\n            if (diff1>result) {result = diff1; }\n            if (diff2>result) {result = diff2; }\n            if (diff3>result) {result = diff3; }\n            a += 4;\n            b += 4;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            diff0 = std::abs(*a++ - *b++);\n            result = (diff0>result) ? diff0 : result;\n        }\n        return result;\n    }\n\n    /* This distance functor is not dimension-wise additive, which\n     * makes it an invalid kd-tree distance, not implementing the accum_dist method */\n\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor\n * bit count of A exclusive XOR'ed with B\n */\nstruct HammingLUT\n{\n    typedef unsigned char ElementType;\n    typedef int ResultType;\n\n    /** this will count the bits in a ^ b\n     */\n    ResultType operator()(const unsigned char* a, const unsigned char* b, int size) const\n    {\n        ResultType result = 0;\n        for (int i = 0; i < size; i++) {\n            result += byteBitsLookUp(a[i] ^ b[i]);\n        }\n        return result;\n    }\n\n\n    /** \\brief given a byte, count the bits using a look up table\n     *  \\param b the byte to count bits.  The look up table has an entry for all\n     *  values of b, where that entry is the number of bits.\n     *  \\return the number of bits in byte b\n     */\n    static unsigned char byteBitsLookUp(unsigned char b)\n    {\n        static const unsigned char table[256]  = {\n            /* 0 */ 0, /* 1 */ 1, /* 2 */ 1, /* 3 */ 2,\n            /* 4 */ 1, /* 5 */ 2, /* 6 */ 2, /* 7 */ 3,\n            /* 8 */ 1, /* 9 */ 2, /* a */ 2, /* b */ 3,\n            /* c */ 2, /* d */ 3, /* e */ 3, /* f */ 4,\n            /* 10 */ 1, /* 11 */ 2, /* 12 */ 2, /* 13 */ 3,\n            /* 14 */ 2, /* 15 */ 3, /* 16 */ 3, /* 17 */ 4,\n            /* 18 */ 2, /* 19 */ 3, /* 1a */ 3, /* 1b */ 4,\n            /* 1c */ 3, /* 1d */ 4, /* 1e */ 4, /* 1f */ 5,\n            /* 20 */ 1, /* 21 */ 2, /* 22 */ 2, /* 23 */ 3,\n            /* 24 */ 2, /* 25 */ 3, /* 26 */ 3, /* 27 */ 4,\n            /* 28 */ 2, /* 29 */ 3, /* 2a */ 3, /* 2b */ 4,\n            /* 2c */ 3, /* 2d */ 4, /* 2e */ 4, /* 2f */ 5,\n            /* 30 */ 2, /* 31 */ 3, /* 32 */ 3, /* 33 */ 4,\n            /* 34 */ 3, /* 35 */ 4, /* 36 */ 4, /* 37 */ 5,\n            /* 38 */ 3, /* 39 */ 4, /* 3a */ 4, /* 3b */ 5,\n            /* 3c */ 4, /* 3d */ 5, /* 3e */ 5, /* 3f */ 6,\n            /* 40 */ 1, /* 41 */ 2, /* 42 */ 2, /* 43 */ 3,\n            /* 44 */ 2, /* 45 */ 3, /* 46 */ 3, /* 47 */ 4,\n            /* 48 */ 2, /* 49 */ 3, /* 4a */ 3, /* 4b */ 4,\n            /* 4c */ 3, /* 4d */ 4, /* 4e */ 4, /* 4f */ 5,\n            /* 50 */ 2, /* 51 */ 3, /* 52 */ 3, /* 53 */ 4,\n            /* 54 */ 3, /* 55 */ 4, /* 56 */ 4, /* 57 */ 5,\n            /* 58 */ 3, /* 59 */ 4, /* 5a */ 4, /* 5b */ 5,\n            /* 5c */ 4, /* 5d */ 5, /* 5e */ 5, /* 5f */ 6,\n            /* 60 */ 2, /* 61 */ 3, /* 62 */ 3, /* 63 */ 4,\n            /* 64 */ 3, /* 65 */ 4, /* 66 */ 4, /* 67 */ 5,\n            /* 68 */ 3, /* 69 */ 4, /* 6a */ 4, /* 6b */ 5,\n            /* 6c */ 4, /* 6d */ 5, /* 6e */ 5, /* 6f */ 6,\n            /* 70 */ 3, /* 71 */ 4, /* 72 */ 4, /* 73 */ 5,\n            /* 74 */ 4, /* 75 */ 5, /* 76 */ 5, /* 77 */ 6,\n            /* 78 */ 4, /* 79 */ 5, /* 7a */ 5, /* 7b */ 6,\n            /* 7c */ 5, /* 7d */ 6, /* 7e */ 6, /* 7f */ 7,\n            /* 80 */ 1, /* 81 */ 2, /* 82 */ 2, /* 83 */ 3,\n            /* 84 */ 2, /* 85 */ 3, /* 86 */ 3, /* 87 */ 4,\n            /* 88 */ 2, /* 89 */ 3, /* 8a */ 3, /* 8b */ 4,\n            /* 8c */ 3, /* 8d */ 4, /* 8e */ 4, /* 8f */ 5,\n            /* 90 */ 2, /* 91 */ 3, /* 92 */ 3, /* 93 */ 4,\n            /* 94 */ 3, /* 95 */ 4, /* 96 */ 4, /* 97 */ 5,\n            /* 98 */ 3, /* 99 */ 4, /* 9a */ 4, /* 9b */ 5,\n            /* 9c */ 4, /* 9d */ 5, /* 9e */ 5, /* 9f */ 6,\n            /* a0 */ 2, /* a1 */ 3, /* a2 */ 3, /* a3 */ 4,\n            /* a4 */ 3, /* a5 */ 4, /* a6 */ 4, /* a7 */ 5,\n            /* a8 */ 3, /* a9 */ 4, /* aa */ 4, /* ab */ 5,\n            /* ac */ 4, /* ad */ 5, /* ae */ 5, /* af */ 6,\n            /* b0 */ 3, /* b1 */ 4, /* b2 */ 4, /* b3 */ 5,\n            /* b4 */ 4, /* b5 */ 5, /* b6 */ 5, /* b7 */ 6,\n            /* b8 */ 4, /* b9 */ 5, /* ba */ 5, /* bb */ 6,\n            /* bc */ 5, /* bd */ 6, /* be */ 6, /* bf */ 7,\n            /* c0 */ 2, /* c1 */ 3, /* c2 */ 3, /* c3 */ 4,\n            /* c4 */ 3, /* c5 */ 4, /* c6 */ 4, /* c7 */ 5,\n            /* c8 */ 3, /* c9 */ 4, /* ca */ 4, /* cb */ 5,\n            /* cc */ 4, /* cd */ 5, /* ce */ 5, /* cf */ 6,\n            /* d0 */ 3, /* d1 */ 4, /* d2 */ 4, /* d3 */ 5,\n            /* d4 */ 4, /* d5 */ 5, /* d6 */ 5, /* d7 */ 6,\n            /* d8 */ 4, /* d9 */ 5, /* da */ 5, /* db */ 6,\n            /* dc */ 5, /* dd */ 6, /* de */ 6, /* df */ 7,\n            /* e0 */ 3, /* e1 */ 4, /* e2 */ 4, /* e3 */ 5,\n            /* e4 */ 4, /* e5 */ 5, /* e6 */ 5, /* e7 */ 6,\n            /* e8 */ 4, /* e9 */ 5, /* ea */ 5, /* eb */ 6,\n            /* ec */ 5, /* ed */ 6, /* ee */ 6, /* ef */ 7,\n            /* f0 */ 4, /* f1 */ 5, /* f2 */ 5, /* f3 */ 6,\n            /* f4 */ 5, /* f5 */ 6, /* f6 */ 6, /* f7 */ 7,\n            /* f8 */ 5, /* f9 */ 6, /* fa */ 6, /* fb */ 7,\n            /* fc */ 6, /* fd */ 7, /* fe */ 7, /* ff */ 8\n        };\n        return table[b];\n    }\n};\n\n/**\n * Hamming distance functor (pop count between two binary vectors, i.e. xor them and count the number of bits set)\n * That code was taken from brief.cpp in OpenCV\n */\ntemplate<class T>\nstruct HammingPopcnt\n{\n    typedef T ElementType;\n    typedef int ResultType;\n\n    template<typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n        ResultType result = 0;\n#if __GNUC__\n#if ANDROID && HAVE_NEON\n        static uint64_t features = android_getCpuFeatures();\n        if ((features& ANDROID_CPU_ARM_FEATURE_NEON)) {\n            for (size_t i = 0; i < size; i += 16) {\n                uint8x16_t A_vec = vld1q_u8 (a + i);\n                uint8x16_t B_vec = vld1q_u8 (b + i);\n                //uint8x16_t veorq_u8 (uint8x16_t, uint8x16_t)\n                uint8x16_t AxorB = veorq_u8 (A_vec, B_vec);\n\n                uint8x16_t bitsSet += vcntq_u8 (AxorB);\n                //uint16x8_t vpadalq_u8 (uint16x8_t, uint8x16_t)\n                uint16x8_t bitSet8 = vpaddlq_u8 (bitsSet);\n                uint32x4_t bitSet4 = vpaddlq_u16 (bitSet8);\n\n                uint64x2_t bitSet2 = vpaddlq_u32 (bitSet4);\n                result += vgetq_lane_u64 (bitSet2,0);\n                result += vgetq_lane_u64 (bitSet2,1);\n            }\n        }\n        else\n#endif\n        //for portability just use unsigned long -- and use the __builtin_popcountll (see docs for __builtin_popcountll)\n        typedef unsigned long long pop_t;\n        const size_t modulo = size % sizeof(pop_t);\n        const pop_t* a2 = reinterpret_cast<const pop_t*> (a);\n        const pop_t* b2 = reinterpret_cast<const pop_t*> (b);\n        const pop_t* a2_end = a2 + (size / sizeof(pop_t));\n\n        for (; a2 != a2_end; ++a2, ++b2) result += __builtin_popcountll((*a2) ^ (*b2));\n\n        if (modulo) {\n            //in the case where size is not dividable by sizeof(size_t)\n            //need to mask off the bits at the end\n            pop_t a_final = 0, b_final = 0;\n            memcpy(&a_final, a2, modulo);\n            memcpy(&b_final, b2, modulo);\n            result += __builtin_popcountll(a_final ^ b_final);\n        }\n#else\n        HammingLUT lut;\n        result = lut(reinterpret_cast<const unsigned char*> (a),\n                     reinterpret_cast<const unsigned char*> (b), size * sizeof(pop_t));\n#endif\n        return result;\n    }\n};\n\ntemplate<typename T>\nstruct Hamming\n{\n    typedef T ElementType;\n    typedef unsigned int ResultType;\n\n    /** This is popcount_3() from:\n     * http://en.wikipedia.org/wiki/Hamming_weight */\n    unsigned int popcnt32(uint32_t n) const\n    {\n        n -= ((n >> 1) & 0x55555555);\n        n = (n & 0x33333333) + ((n >> 2) & 0x33333333);\n        return (((n + (n >> 4))& 0xF0F0F0F)* 0x1010101) >> 24;\n    }\n\n    unsigned int popcnt64(uint64_t n) const\n    {\n        n -= ((n >> 1) & 0x5555555555555555LL);\n        n = (n & 0x3333333333333333LL) + ((n >> 2) & 0x3333333333333333LL);\n        return (((n + (n >> 4))& 0x0f0f0f0f0f0f0f0fLL)* 0x0101010101010101LL) >> 56;\n    }\n\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = 0) const\n    {\n#ifdef FLANN_PLATFORM_64_BIT\n        const uint64_t* pa = reinterpret_cast<const uint64_t*>(a);\n        const uint64_t* pb = reinterpret_cast<const uint64_t*>(b);\n        ResultType result = 0;\n        size /= (sizeof(uint64_t)/sizeof(unsigned char));\n        for(size_t i = 0; i < size; ++i ) {\n            result += popcnt64(*pa ^ *pb);\n            ++pa;\n            ++pb;\n        }\n#else\n        const uint32_t* pa = reinterpret_cast<const uint32_t*>(a);\n        const uint32_t* pb = reinterpret_cast<const uint32_t*>(b);\n        ResultType result = 0;\n        size /= (sizeof(uint32_t)/sizeof(unsigned char));\n        for(size_t i = 0; i < size; ++i ) {\n        \tresult += popcnt32(*pa ^ *pb);\n        \t++pa;\n        \t++pb;\n        }\n#endif\n        return result;\n    }\n};\n\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\ntemplate<class T>\nstruct HistIntersectionDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the histogram intersection distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType min0, min1, min2, min3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            min0 = (ResultType)(a[0] < b[0] ? a[0] : b[0]);\n            min1 = (ResultType)(a[1] < b[1] ? a[1] : b[1]);\n            min2 = (ResultType)(a[2] < b[2] ? a[2] : b[2]);\n            min3 = (ResultType)(a[3] < b[3] ? a[3] : b[3]);\n            result += min0 + min1 + min2 + min3;\n            a += 4;\n            b += 4;\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        /* Process last 0-3 pixels.  Not needed for standard vector lengths. */\n        while (a < last) {\n            min0 = (ResultType)(*a < *b ? *a : *b);\n            result += min0;\n            ++a;\n            ++b;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return a<b ? a : b;\n    }\n};\n\n\n\ntemplate<class T>\nstruct HellingerDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the histogram intersection distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType diff0, diff1, diff2, diff3;\n        Iterator1 last = a + size;\n        Iterator1 lastgroup = last - 3;\n\n        /* Process 4 items with each loop for efficiency. */\n        while (a < lastgroup) {\n            diff0 = sqrt(static_cast<ResultType>(a[0])) - sqrt(static_cast<ResultType>(b[0]));\n            diff1 = sqrt(static_cast<ResultType>(a[1])) - sqrt(static_cast<ResultType>(b[1]));\n            diff2 = sqrt(static_cast<ResultType>(a[2])) - sqrt(static_cast<ResultType>(b[2]));\n            diff3 = sqrt(static_cast<ResultType>(a[3])) - sqrt(static_cast<ResultType>(b[3]));\n            result += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3;\n            a += 4;\n            b += 4;\n        }\n        while (a < last) {\n            diff0 = sqrt(static_cast<ResultType>(*a++)) - sqrt(static_cast<ResultType>(*b++));\n            result += diff0 * diff0;\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        return sqrt(static_cast<ResultType>(a)) - sqrt(static_cast<ResultType>(b));\n    }\n};\n\n\ntemplate<class T>\nstruct ChiSquareDistance\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the chi-square distance\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        ResultType sum, diff;\n        Iterator1 last = a + size;\n\n        while (a < last) {\n            sum = (ResultType)(*a + *b);\n            if (sum>0) {\n                diff = (ResultType)(*a - *b);\n                result += diff*diff/sum;\n            }\n            ++a;\n            ++b;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        ResultType result = ResultType();\n        ResultType sum, diff;\n\n        sum = (ResultType)(a+b);\n        if (sum>0) {\n            diff = (ResultType)(a-b);\n            result = diff*diff/sum;\n        }\n        return result;\n    }\n};\n\n\ntemplate<class T>\nstruct KL_Divergence\n{\n    typedef bool is_kdtree_distance;\n\n    typedef T ElementType;\n    typedef typename Accumulator<T>::Type ResultType;\n\n    /**\n     *  Compute the Kullback–Leibler divergence\n     */\n    template <typename Iterator1, typename Iterator2>\n    ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType worst_dist = -1) const\n    {\n        ResultType result = ResultType();\n        Iterator1 last = a + size;\n\n        while (a < last) {\n            if (* a != 0) {\n                ResultType ratio = (ResultType)(*a / *b);\n                if (ratio>0) {\n                    result += *a * log(ratio);\n                }\n            }\n            ++a;\n            ++b;\n\n            if ((worst_dist>0)&&(result>worst_dist)) {\n                return result;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * Partial distance, used by the kd-tree.\n     */\n    template <typename U, typename V>\n    inline ResultType accum_dist(const U& a, const V& b, int) const\n    {\n        ResultType result = ResultType();\n        ResultType ratio = (ResultType)(a / b);\n        if (ratio>0) {\n            result = a * log(ratio);\n        }\n        return result;\n    }\n};\n\n}\n\n#endif //FLANN_DIST_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/hierarchical_clustering_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_\n#define FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/serialization.h\"\n\nnamespace flann\n{\n\nstruct HierarchicalClusteringIndexParams : public IndexParams\n{\n    HierarchicalClusteringIndexParams(int branching = 32,\n                                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM,\n                                      int trees = 4, int leaf_max_size = 100)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_HIERARCHICAL;\n        // The branching factor used in the hierarchical clustering\n        (*this)[\"branching\"] = branching;\n        // Algorithm used for picking the initial cluster centers\n        (*this)[\"centers_init\"] = centers_init;\n        // number of parallel trees to build\n        (*this)[\"trees\"] = trees;\n        // maximum leaf size\n        (*this)[\"leaf_max_size\"] = leaf_max_size;\n    }\n};\n\n\n\n/**\n * Hierarchical index\n *\n * Contains a tree constructed through a hierarchical clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass HierarchicalClusteringIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    /**\n     * Constructor.\n     *\n     * @param index_params\n     * @param d\n     */\n    HierarchicalClusteringIndex(const IndexParams& index_params = HierarchicalClusteringIndexParams(), Distance d = Distance())\n        : BaseClass(index_params, d)\n    {\n        memoryCounter_ = 0;\n\n        branching_ = get_param(index_params_,\"branching\",32);\n        centers_init_ = get_param(index_params_,\"centers_init\", FLANN_CENTERS_RANDOM);\n        trees_ = get_param(index_params_,\"trees\",4);\n        leaf_max_size_ = get_param(index_params_,\"leaf_max_size\",100);\n\n        initCenterChooser();\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    HierarchicalClusteringIndex(const Matrix<ElementType>& inputData, const IndexParams& index_params = HierarchicalClusteringIndexParams(),\n                                Distance d = Distance())\n        : BaseClass(index_params, d)\n    {\n        memoryCounter_ = 0;\n\n        branching_ = get_param(index_params_,\"branching\",32);\n        centers_init_ = get_param(index_params_,\"centers_init\", FLANN_CENTERS_RANDOM);\n        trees_ = get_param(index_params_,\"trees\",4);\n        leaf_max_size_ = get_param(index_params_,\"leaf_max_size\",100);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    HierarchicalClusteringIndex(const HierarchicalClusteringIndex& other) : BaseClass(other),\n    \t\tmemoryCounter_(other.memoryCounter_),\n    \t\tbranching_(other.branching_),\n    \t\ttrees_(other.trees_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tleaf_max_size_(other.leaf_max_size_)\n\n    {\n    \tinitCenterChooser();\n        tree_roots_.resize(other.tree_roots_.size());\n        for (size_t i=0;i<tree_roots_.size();++i) {\n        \tcopyTree(tree_roots_[i], other.tree_roots_[i]);\n        }\n    }\n\n    HierarchicalClusteringIndex& operator=(HierarchicalClusteringIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~HierarchicalClusteringIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new HierarchicalClusteringIndex(*this);\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n    \n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                for (int j = 0; j < trees_; j++) {\n                    addPointToTree(tree_roots_[j], old_size + i);\n                }\n            }            \n        }\n    }\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_HIERARCHICAL;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & trees_;\n    \tar & centers_init_;\n    \tar & leaf_max_size_;\n\n    \tif (Archive::is_loading::value) {\n    \t\ttree_roots_.resize(trees_);\n    \t}\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\ttree_roots_[i] = new(pool_) Node();\n    \t\t}\n    \t\tar & *tree_roots_[i];\n    \t}\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"trees\"] = trees_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"leaf_size\"] = leaf_max_size_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n        tree_roots_.resize(trees_);\n        std::vector<int> indices(size_);\n        for (int i=0; i<trees_; ++i) {\n            for (size_t j=0; j<size_; ++j) {\n                indices[j] = j;\n            }\n            tree_roots_[i] = new(pool_) Node();\n            computeClustering(tree_roots_[i], &indices[0], size_);\n        }\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \t/** Point index */\n    \tsize_t index;\n    \t/** Point data */\n    \tElementType* point;\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef HierarchicalClusteringIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) {\n\t\t\t\tpoint = obj->points_[index];\n\t\t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center\n         */\n    \tElementType* pivot;\n    \tsize_t pivot_index;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n\n        /**\n         * destructor\n         * calling Node destructor explicitly\n         */\n        ~Node()\n        {\n        \tfor(size_t i=0; i<childs.size(); i++){\n        \t\tchilds[i]->~Node();\n        \t}\n        };\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef HierarchicalClusteringIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n    \t\tar & pivot_index;\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = obj->points_[pivot_index];\n    \t\t}\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Clears Node tree\n     * calling Node destructor explicitly\n     */\n    void freeIndex(){\n    \tfor (size_t i=0; i<tree_roots_.size(); ++i) {\n    \t\ttree_roots_[i]->~Node();\n    \t}\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot_index = src->pivot_index;\n    \tdst->pivot = points_[dst->pivot_index];\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n\n    void computeLabels(int* indices, int indices_length,  int* centers, int centers_length, int* labels, DistanceType& cost)\n    {\n        cost = 0;\n        for (int i=0; i<indices_length; ++i) {\n            ElementType* point = points_[indices[i]];\n            DistanceType dist = distance_(point, points_[centers[0]], veclen_);\n            labels[i] = 0;\n            for (int j=1; j<centers_length; ++j) {\n                DistanceType new_dist = distance_(point, points_[centers[j]], veclen_);\n                if (dist>new_dist) {\n                    labels[i] = j;\n                    dist = new_dist;\n                }\n            }\n            cost += dist;\n        }\n    }\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     */\n    void computeClustering(NodePtr node, int* indices, int indices_length)\n    {\n        if (indices_length < leaf_max_size_) { // leaf node\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers(branching_);\n        std::vector<int> labels(indices_length);\n\n        int centers_length;\n        (*chooseCenters_)(branching_, indices, indices_length, &centers[0], centers_length);\n\n        if (centers_length<branching_) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        //  assign points to clusters\n        DistanceType cost;\n        computeLabels(indices, indices_length, &centers[0], centers_length, &labels[0], cost);\n\n        node->childs.resize(branching_);\n        int start = 0;\n        int end = start;\n        for (int i=0; i<branching_; ++i) {\n            for (int j=0; j<indices_length; ++j) {\n                if (labels[j]==i) {\n                    std::swap(indices[j],indices[end]);\n                    std::swap(labels[j],labels[end]);\n                    end++;\n                }\n            }\n\n            node->childs[i] = new(pool_) Node();\n            node->childs[i]->pivot_index = centers[i];\n            node->childs[i]->pivot = points_[centers[i]];\n            node->childs[i]->points.clear();\n            computeClustering(node->childs[i],indices+start, end-start);\n            start=end;\n        }\n    }\n\n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        int maxChecks = searchParams.checks;\n\n        // Priority queue storing intermediate branches in the best-bin-first search\n        Heap<BranchSt>* heap = new Heap<BranchSt>(size_);\n\n        DynamicBitset checked(size_);\n        int checks = 0;\n        for (int i=0; i<trees_; ++i) {\n            findNN<with_removed>(tree_roots_[i], result, vec, checks, maxChecks, heap, checked);\n        }\n\n        BranchSt branch;\n        while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n            NodePtr node = branch.node;\n            findNN<with_removed>(node, result, vec, checks, maxChecks, heap, checked);\n        }\n\n        delete heap;\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap,  DynamicBitset& checked) const\n    {\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n\n            for (size_t i=0; i<node->points.size(); ++i) {\n            \tPointInfo& pointInfo = node->points[i];\n            \tif (with_removed) {\n            \t\tif (removed_points_.test(pointInfo.index)) continue;\n            \t}\n                if (checked.test(pointInfo.index)) continue;\n                DistanceType dist = distance_(pointInfo.point, vec, veclen_);\n                result.addPoint(dist, pointInfo.index);\n                checked.set(pointInfo.index);\n                ++checks;\n            }\n        }\n        else {\n            DistanceType* domain_distances = new DistanceType[branching_];\n            int best_index = 0;\n            domain_distances[best_index] = distance_(vec, node->childs[best_index]->pivot, veclen_);\n            for (int i=1; i<branching_; ++i) {\n                domain_distances[i] = distance_(vec, node->childs[i]->pivot, veclen_);\n                if (domain_distances[i]<domain_distances[best_index]) {\n                    best_index = i;\n                }\n            }\n            for (int i=0; i<branching_; ++i) {\n                if (i!=best_index) {\n                    heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n                }\n            }\n            delete[] domain_distances;\n            findNN<with_removed>(node->childs[best_index],result,vec, checks, maxChecks, heap, checked);\n        }\n    }\n    \n    void addPointToTree(NodePtr node, size_t index)\n    {\n        ElementType* point = points_[index];\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo pointInfo;\n        \tpointInfo.point = point;\n        \tpointInfo.index = index;\n            node->points.push_back(pointInfo);\n\n            if (node->points.size()>=size_t(branching_)) {\n                std::vector<int> indices(node->points.size());\n\n                for (size_t i=0;i<node->points.size();++i) {\n                \tindices[i] = node->points[i].index;\n                }\n                computeClustering(node, &indices[0], indices.size());\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            ElementType* center = node->childs[closest]->pivot;\n            DistanceType dist = distance_(center, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                center = node->childs[i]->pivot;\n                DistanceType crt_dist = distance_(center, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index);\n        }                \n    }\n\n    void swap(HierarchicalClusteringIndex& other)\n    {\n    \tBaseClass::swap(other);\n\n    \tstd::swap(tree_roots_, other.tree_roots_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(trees_, other.trees_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(leaf_max_size_, other.leaf_max_size_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\nprivate:\n\n    /**\n     * The root nodes in the tree.\n     */\n    std::vector<Node*> tree_roots_;\n\n    /**\n     * Pooled memory allocator.\n     *\n     * Using a pooled memory allocator is more efficient\n     * than allocating memory directly when there is a large\n     * number small of memory allocations.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /** index parameters */\n    /**\n     * Branching factor to use for clustering\n     */\n    int branching_;\n    \n    /**\n     * How many parallel trees to build\n     */\n    int trees_;\n    \n    /**\n     * Algorithm to use for choosing cluster centers\n     */\n    flann_centers_init_t centers_init_;\n    \n    /**\n     * Max size of leaf nodes\n     */\n    int leaf_max_size_;\n    \n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif /* FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/hierarchical_clustering_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_\n#define FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/serialization.h\"\n\nnamespace flann\n{\n\nstruct HierarchicalClusteringIndexParams : public IndexParams\n{\n    HierarchicalClusteringIndexParams(int branching = 32,\n                                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM,\n                                      int trees = 4, int leaf_max_size = 100)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_HIERARCHICAL;\n        // The branching factor used in the hierarchical clustering\n        (*this)[\"branching\"] = branching;\n        // Algorithm used for picking the initial cluster centers\n        (*this)[\"centers_init\"] = centers_init;\n        // number of parallel trees to build\n        (*this)[\"trees\"] = trees;\n        // maximum leaf size\n        (*this)[\"leaf_max_size\"] = leaf_max_size;\n    }\n};\n\n\n\n/**\n * Hierarchical index\n *\n * Contains a tree constructed through a hierarchical clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass HierarchicalClusteringIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    /**\n     * Constructor.\n     *\n     * @param index_params\n     * @param d\n     */\n    HierarchicalClusteringIndex(const IndexParams& index_params = HierarchicalClusteringIndexParams(), Distance d = Distance())\n        : BaseClass(index_params, d)\n    {\n        memoryCounter_ = 0;\n\n        branching_ = get_param(index_params_,\"branching\",32);\n        centers_init_ = get_param(index_params_,\"centers_init\", FLANN_CENTERS_RANDOM);\n        trees_ = get_param(index_params_,\"trees\",4);\n        leaf_max_size_ = get_param(index_params_,\"leaf_max_size\",100);\n\n        initCenterChooser();\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    HierarchicalClusteringIndex(const Matrix<ElementType>& inputData, const IndexParams& index_params = HierarchicalClusteringIndexParams(),\n                                Distance d = Distance())\n        : BaseClass(index_params, d)\n    {\n        memoryCounter_ = 0;\n\n        branching_ = get_param(index_params_,\"branching\",32);\n        centers_init_ = get_param(index_params_,\"centers_init\", FLANN_CENTERS_RANDOM);\n        trees_ = get_param(index_params_,\"trees\",4);\n        leaf_max_size_ = get_param(index_params_,\"leaf_max_size\",100);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    HierarchicalClusteringIndex(const HierarchicalClusteringIndex& other) : BaseClass(other),\n    \t\tmemoryCounter_(other.memoryCounter_),\n    \t\tbranching_(other.branching_),\n    \t\ttrees_(other.trees_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tleaf_max_size_(other.leaf_max_size_)\n\n    {\n    \tinitCenterChooser();\n        tree_roots_.resize(other.tree_roots_.size());\n        for (size_t i=0;i<tree_roots_.size();++i) {\n        \tcopyTree(tree_roots_[i], other.tree_roots_[i]);\n        }\n    }\n\n    HierarchicalClusteringIndex& operator=(HierarchicalClusteringIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~HierarchicalClusteringIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new HierarchicalClusteringIndex(*this);\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n    \n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                for (int j = 0; j < trees_; j++) {\n                    addPointToTree(tree_roots_[j], old_size + i);\n                }\n            }            \n        }\n    }\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_HIERARCHICAL;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & trees_;\n    \tar & centers_init_;\n    \tar & leaf_max_size_;\n\n    \tif (Archive::is_loading::value) {\n    \t\ttree_roots_.resize(trees_);\n    \t}\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\ttree_roots_[i] = new(pool_) Node();\n    \t\t}\n    \t\tar & *tree_roots_[i];\n    \t}\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"trees\"] = trees_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"leaf_size\"] = leaf_max_size_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n        tree_roots_.resize(trees_);\n        std::vector<int> indices(size_);\n        for (int i=0; i<trees_; ++i) {\n            for (size_t j=0; j<size_; ++j) {\n                indices[j] = j;\n            }\n            tree_roots_[i] = new(pool_) Node();\n            computeClustering(tree_roots_[i], &indices[0], size_);\n        }\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \t/** Point index */\n    \tsize_t index;\n    \t/** Point data */\n    \tElementType* point;\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef HierarchicalClusteringIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) {\n\t\t\t\tpoint = obj->points_[index];\n\t\t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center\n         */\n    \tElementType* pivot;\n    \tsize_t pivot_index;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n\n        /**\n         * destructor\n         * calling Node destructor explicitly\n         */\n        ~Node()\n        {\n        \tfor(size_t i=0; i<childs.size(); i++){\n        \t\tchilds[i]->~Node();\n        \t}\n        };\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef HierarchicalClusteringIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n    \t\tar & pivot_index;\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = obj->points_[pivot_index];\n    \t\t}\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Clears Node tree\n     * calling Node destructor explicitly\n     */\n    void freeIndex(){\n    \tfor (size_t i=0; i<tree_roots_.size(); ++i) {\n    \t\ttree_roots_[i]->~Node();\n    \t}\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot_index = src->pivot_index;\n    \tdst->pivot = points_[dst->pivot_index];\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n\n    void computeLabels(int* indices, int indices_length,  int* centers, int centers_length, int* labels, DistanceType& cost)\n    {\n        cost = 0;\n        for (int i=0; i<indices_length; ++i) {\n            ElementType* point = points_[indices[i]];\n            DistanceType dist = distance_(point, points_[centers[0]], veclen_);\n            labels[i] = 0;\n            for (int j=1; j<centers_length; ++j) {\n                DistanceType new_dist = distance_(point, points_[centers[j]], veclen_);\n                if (dist>new_dist) {\n                    labels[i] = j;\n                    dist = new_dist;\n                }\n            }\n            cost += dist;\n        }\n    }\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     */\n    void computeClustering(NodePtr node, int* indices, int indices_length)\n    {\n        if (indices_length < leaf_max_size_) { // leaf node\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers(branching_);\n        std::vector<int> labels(indices_length);\n\n        int centers_length;\n        (*chooseCenters_)(branching_, indices, indices_length, &centers[0], centers_length);\n\n        if (centers_length<branching_) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        //  assign points to clusters\n        DistanceType cost;\n        computeLabels(indices, indices_length, &centers[0], centers_length, &labels[0], cost);\n\n        node->childs.resize(branching_);\n        int start = 0;\n        int end = start;\n        for (int i=0; i<branching_; ++i) {\n            for (int j=0; j<indices_length; ++j) {\n                if (labels[j]==i) {\n                    std::swap(indices[j],indices[end]);\n                    std::swap(labels[j],labels[end]);\n                    end++;\n                }\n            }\n\n            node->childs[i] = new(pool_) Node();\n            node->childs[i]->pivot_index = centers[i];\n            node->childs[i]->pivot = points_[centers[i]];\n            node->childs[i]->points.clear();\n            computeClustering(node->childs[i],indices+start, end-start);\n            start=end;\n        }\n    }\n\n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        int maxChecks = searchParams.checks;\n\n        // Priority queue storing intermediate branches in the best-bin-first search\n        Heap<BranchSt>* heap = new Heap<BranchSt>(size_);\n\n        DynamicBitset checked(size_);\n        int checks = 0;\n        for (int i=0; i<trees_; ++i) {\n            findNN<with_removed>(tree_roots_[i], result, vec, checks, maxChecks, heap, checked);\n        }\n\n        BranchSt branch;\n        while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n            NodePtr node = branch.node;\n            findNN<with_removed>(node, result, vec, checks, maxChecks, heap, checked);\n        }\n\n        delete heap;\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap,  DynamicBitset& checked) const\n    {\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n\n            for (size_t i=0; i<node->points.size(); ++i) {\n            \tPointInfo& pointInfo = node->points[i];\n            \tif (with_removed) {\n            \t\tif (removed_points_.test(pointInfo.index)) continue;\n            \t}\n                if (checked.test(pointInfo.index)) continue;\n                DistanceType dist = distance_(pointInfo.point, vec, veclen_);\n                result.addPoint(dist, pointInfo.index);\n                checked.set(pointInfo.index);\n                ++checks;\n            }\n        }\n        else {\n            DistanceType* domain_distances = new DistanceType[branching_];\n            int best_index = 0;\n            domain_distances[best_index] = distance_(vec, node->childs[best_index]->pivot, veclen_);\n            for (int i=1; i<branching_; ++i) {\n                domain_distances[i] = distance_(vec, node->childs[i]->pivot, veclen_);\n                if (domain_distances[i]<domain_distances[best_index]) {\n                    best_index = i;\n                }\n            }\n            for (int i=0; i<branching_; ++i) {\n                if (i!=best_index) {\n                    heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n                }\n            }\n            delete[] domain_distances;\n            findNN<with_removed>(node->childs[best_index],result,vec, checks, maxChecks, heap, checked);\n        }\n    }\n    \n    void addPointToTree(NodePtr node, size_t index)\n    {\n        ElementType* point = points_[index];\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo pointInfo;\n        \tpointInfo.point = point;\n        \tpointInfo.index = index;\n            node->points.push_back(pointInfo);\n\n            if (node->points.size()>=size_t(branching_)) {\n                std::vector<int> indices(node->points.size());\n\n                for (size_t i=0;i<node->points.size();++i) {\n                \tindices[i] = node->points[i].index;\n                }\n                computeClustering(node, &indices[0], indices.size());\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            ElementType* center = node->childs[closest]->pivot;\n            DistanceType dist = distance_(center, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                center = node->childs[i]->pivot;\n                DistanceType crt_dist = distance_(center, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index);\n        }                \n    }\n\n    void swap(HierarchicalClusteringIndex& other)\n    {\n    \tBaseClass::swap(other);\n\n    \tstd::swap(tree_roots_, other.tree_roots_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(trees_, other.trees_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(leaf_max_size_, other.leaf_max_size_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\nprivate:\n\n    /**\n     * The root nodes in the tree.\n     */\n    std::vector<Node*> tree_roots_;\n\n    /**\n     * Pooled memory allocator.\n     *\n     * Using a pooled memory allocator is more efficient\n     * than allocating memory directly when there is a large\n     * number small of memory allocations.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /** index parameters */\n    /**\n     * Branching factor to use for clustering\n     */\n    int branching_;\n    \n    /**\n     * How many parallel trees to build\n     */\n    int trees_;\n    \n    /**\n     * Algorithm to use for choosing cluster centers\n     */\n    flann_centers_init_t centers_init_;\n    \n    /**\n     * Max size of leaf nodes\n     */\n    int leaf_max_size_;\n    \n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif /* FLANN_HIERARCHICAL_CLUSTERING_INDEX_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_cuda_3d_index.cu",
    "content": "/**********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2011       Andreas Muetzel (amuetzel@uni-koblenz.de). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#include \"kdtree_cuda_3d_index.h\"\n#include <flann/algorithms/dist.h>\n#include <flann/util/cuda/result_set.h>\n// #define THRUST_DEBUG 1\n#include <cuda.h>\n#include <thrust/copy.h>\n#include <thrust/device_vector.h>\n#include <vector_types.h>\n#include <flann/util/cutil_math.h>\n#include <thrust/host_vector.h>\n#include <thrust/copy.h>\n#include <flann/util/cuda/heap.h>\n#include <thrust/scan.h>\n#include <thrust/count.h>\n#include <flann/algorithms/kdtree_cuda_builder.h>\n#include <vector_types.h>\nnamespace flann\n{\n\nnamespace KdTreeCudaPrivate\n{\ntemplate< typename GPUResultSet, typename Distance >\n__device__\nvoid searchNeighbors(const cuda::kd_tree_builder_detail::SplitInfo* splits,\n                     const int* child1,\n                     const int* parent,\n                     const float4* aabbLow,\n                     const float4* aabbHigh, const float4* elements, const float4& q, GPUResultSet& result, const Distance& distance = Distance() )\n{\n\n    bool backtrack=false;\n    int lastNode=-1;\n    int current=0;\n\n    cuda::kd_tree_builder_detail::SplitInfo split;\n    while(true) {\n        if( current==-1 ) break;\n        split = splits[current];\n\n        float diff1;\n        if( split.split_dim==0 ) diff1=q.x- split.split_val;\n        else if( split.split_dim==1 ) diff1=q.y- split.split_val;\n        else if( split.split_dim==2 ) diff1=q.z- split.split_val;\n\n        // children are next to each other: leftChild+1 == rightChild\n        int leftChild= child1[current];\n        int bestChild=leftChild;\n        int otherChild=leftChild;\n\n        if ((diff1)<0) {\n            otherChild++;\n        }\n        else {\n            bestChild++;\n        }\n\n        if( !backtrack ) {\n            /* If this is a leaf node, then do check and return. */\n            if (leftChild==-1) {\n                for (int i=split.left; i<split.right; ++i) {\n                    float dist=distance.dist(elements[i],q);\n                    result.insert(i,dist);\n                }\n                backtrack=true;\n                lastNode=current;\n                current=parent[current];\n            }\n            else { // go to closer child node\n                lastNode=current;\n                current=bestChild;\n            }\n        }\n        else { // continue moving back up the tree or visit far node?\n              // minimum possible distance between query point and a point inside the AABB\n            float mindistsq=0;\n            float4 aabbMin=aabbLow[otherChild];\n            float4 aabbMax=aabbHigh[otherChild];\n\n            if( q.x < aabbMin.x ) mindistsq+=distance.axisDist(q.x, aabbMin.x);\n            else if( q.x > aabbMax.x ) mindistsq+=distance.axisDist(q.x, aabbMax.x);\n            if( q.y < aabbMin.y ) mindistsq+=distance.axisDist(q.y, aabbMin.y);\n            else if( q.y > aabbMax.y ) mindistsq+=distance.axisDist(q.y, aabbMax.y);\n            if( q.z < aabbMin.z ) mindistsq+=distance.axisDist(q.z, aabbMin.z);\n            else if( q.z > aabbMax.z ) mindistsq+=distance.axisDist(q.z, aabbMax.z);\n\n            //  the far node was NOT the last node (== not visited yet) AND there could be a closer point in it\n            if(( lastNode==bestChild) && (mindistsq <= result.worstDist() ) ) {\n                lastNode=current;\n                current=otherChild;\n                backtrack=false;\n            }\n            else {\n                lastNode=current;\n                current=parent[current];\n            }\n        }\n\n    }\n}\n\n\ntemplate< typename GPUResultSet, typename Distance >\n__global__\nvoid nearestKernel(const cuda::kd_tree_builder_detail::SplitInfo* splits,\n                   const int* child1,\n                   const int* parent,\n                   const float4* aabbMin,\n                   const float4* aabbMax, const float4* elements, const float* query, int stride, int resultStride, int* resultIndex, float* resultDist, int querysize, GPUResultSet result, Distance dist = Distance())\n{\n    typedef float DistanceType;\n    typedef float ElementType;\n    //                  typedef DistanceType float;\n    size_t tid = blockDim.x*blockIdx.x + threadIdx.x;\n\n    if( tid >= querysize ) return;\n\n    float4 q = make_float4(query[tid*stride],query[tid*stride+1],query[tid*stride+2],0);\n\n    result.setResultLocation( resultDist, resultIndex, tid, resultStride );\n\n    searchNeighbors(splits,child1,parent,aabbMin,aabbMax,elements, q, result, dist);\n\n    result.finish();\n}\n\n}\n\n//! contains some pointers that use cuda data types and that cannot be easily\n//! forward-declared.\n//! basically it contains all GPU buffers\ntemplate<typename Distance>\nstruct KDTreeCuda3dIndex<Distance>::GpuHelper\n{\n    thrust::device_vector< cuda::kd_tree_builder_detail::SplitInfo >* gpu_splits_;\n    thrust::device_vector< int >* gpu_parent_;\n    thrust::device_vector< int >* gpu_child1_;\n    thrust::device_vector< float4 >* gpu_aabb_min_;\n    thrust::device_vector< float4 >* gpu_aabb_max_;\n    thrust::device_vector<float4>* gpu_points_;\n    thrust::device_vector<int>* gpu_vind_;\n    GpuHelper() :  gpu_splits_(0), gpu_parent_(0), gpu_child1_(0), gpu_aabb_min_(0), gpu_aabb_max_(0), gpu_points_(0), gpu_vind_(0){\n    }\n    ~GpuHelper()\n    {\n        delete gpu_splits_;\n        gpu_splits_=0;\n        delete gpu_parent_;\n        gpu_parent_=0;\n        delete gpu_child1_;\n        gpu_child1_=0;\n        delete gpu_aabb_max_;\n        gpu_aabb_max_=0;\n        delete gpu_aabb_min_;\n        gpu_aabb_min_=0;\n        delete gpu_vind_;\n        gpu_vind_=0;\n\n        delete gpu_points_;\n        gpu_points_=0;\n    }\n};\n\n//! thrust transform functor\n//! transforms indices in the internal data set back to the original indices\nstruct map_indices\n{\n    const int* v_;\n\n    map_indices(const int* v) : v_(v) {\n    }\n\n    __host__ __device__\n    float operator() (const int&i) const\n    {\n        if( i>= 0 ) return v_[i];\n        else return i;\n    }\n};\n\n//! implementation of L2 distance for the CUDA kernels\nstruct CudaL2\n{\n\n    static float\n    __host__ __device__\n    axisDist( float a, float b )\n    {\n        return (a-b)*(a-b);\n    }\n\n    static float\n    __host__ __device__\n    dist( float4 a, float4 b )\n    {\n        float4 diff = a-b;\n        return dot(diff,diff);\n    }\n};\n\n//! implementation of L1 distance for the CUDA kernels\n//! NOT TESTED!\nstruct CudaL1\n{\n\n    static float\n    __host__ __device__\n    axisDist( float a, float b )\n    {\n        return fabs(a-b);\n    }\n\n    static float\n    __host__ __device__\n    dist( float4 a, float4 b )\n    {\n        return fabs(a.x-b.x)+fabs (a.y-b.y)+( a.z-b.z)+(a.w-b.w);\n    }\n};\n\n//! used to adapt CPU and GPU distance types.\n//! specializations define the ::type as their corresponding GPU distance type\n//! \\see GpuDistance< L2<float> >, GpuDistance< L2_Simple<float> >\ntemplate< class Distance >\nstruct GpuDistance\n{\n};\n\ntemplate<>\nstruct GpuDistance< L2<float> >\n{\n    typedef CudaL2 type;\n};\n\ntemplate<>\nstruct GpuDistance< L2_Simple<float> >\n{\n    typedef CudaL2 type;\n};\ntemplate<>\nstruct GpuDistance< L1<float> >\n{\n    typedef CudaL1 type;\n};\n\n\ntemplate< typename Distance >\nvoid KDTreeCuda3dIndex<Distance>::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const\n{\n    assert(indices.rows >= queries.rows);\n    assert(dists.rows >= queries.rows);\n    assert(int(indices.cols) >= knn);\n    assert( dists.cols == indices.cols && dists.stride==indices.stride );\n    \n    int istride=queries.stride/sizeof(ElementType);\n    int ostride=indices.stride/4;\n\n    bool matrices_on_gpu = params.matrices_in_gpu_ram;\n\n    int threadsPerBlock = 128;\n    int blocksPerGrid=(queries.rows+threadsPerBlock-1)/threadsPerBlock;\n\n    float epsError = 1+params.eps;\n    bool sorted = params.sorted;\n    bool use_heap = params.use_heap;\n\n    typename GpuDistance<Distance>::type distance;\n//       std::cout<<\" search: \"<<std::endl;\n//       std::cout<<\"  rows: \"<<indices.rows<<\" \"<<dists.rows<<\" \"<<queries.rows<<std::endl;\n//       std::cout<<\"  cols: \"<<indices.cols<<\" \"<<dists.cols<<\" \"<<queries.cols<<std::endl;\n//       std::cout<<\"  stride: \"<<indices.stride<<\" \"<<dists.stride<<\" \"<<queries.stride<<std::endl;\n//       std::cout<<\"  stride2:\"<<istride<<\" \"<<ostride<<std::endl;\n//       std::cout<<\"  knn:\"<<knn<<\"  matrices_on_gpu:\"<<matrices_on_gpu<<std::endl;\n\n    if( !matrices_on_gpu ) {\n        thrust::device_vector<float> queriesDev(istride* queries.rows,0);\n        thrust::copy( queries.ptr(), queries.ptr()+istride*queries.rows, queriesDev.begin() );\n        thrust::device_vector<float> distsDev(queries.rows* ostride);\n        thrust::device_vector<int> indicesDev(queries.rows* ostride);\n\n\n\n        if( knn==1  ) {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                  queries.rows, flann::cuda::SingleResultSet<float>(epsError),distance);\n            //                          KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_nodes_)[0])),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&queriesDev[0]),\n            //                                                                                                                                                                                                                                                                                          queries.stride,\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&indicesDev[0]),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&distsDev[0]),\n            //                                                                                                                                                                                                                                                                                          queries.rows, epsError);\n            //\n        }\n        else {\n            if( use_heap ) {\n                KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                      thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                      thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                      istride,\n                                                                                      ostride,\n                                                                                      thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                      thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                      queries.rows, flann::cuda::KnnResultSet<float, true>(knn,sorted,epsError)\n                                                                                      , distance);\n            }\n            else {\n                KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                      thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                      thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                      istride,\n                                                                                      ostride,\n                                                                                      thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                      thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                      queries.rows, flann::cuda::KnnResultSet<float, false>(knn,sorted,epsError),\n                                                                                      distance\n                                                                                      );\n            }\n        }\n        thrust::copy( distsDev.begin(), distsDev.end(), dists.ptr() );\n        thrust::transform(indicesDev.begin(), indicesDev.end(), indicesDev.begin(), map_indices(thrust::raw_pointer_cast( &((*gpu_helper_->gpu_vind_))[0]) ));\n        thrust::copy( indicesDev.begin(), indicesDev.end(), indices.ptr() );\n    }\n    else {\n        thrust::device_ptr<float> qd = thrust::device_pointer_cast(queries.ptr());\n        thrust::device_ptr<float> dd = thrust::device_pointer_cast(dists.ptr());\n        thrust::device_ptr<int> id = thrust::device_pointer_cast(indices.ptr());\n\n\n\n        if( knn==1  ) {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  qd.get(),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  id.get(),\n                                                                                  dd.get(),\n                                                                                  queries.rows, flann::cuda::SingleResultSet<float>(epsError),distance);\n            //                          KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_nodes_)[0])),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&queriesDev[0]),\n            //                                                                                                                                                                                                                                                                                          queries.stride,\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&indicesDev[0]),\n            //                                                                                                                                                                                                                                                                                          thrust::raw_pointer_cast(&distsDev[0]),\n            //                                                                                                                                                                                                                                                                                          queries.rows, epsError);\n            //\n        }\n        else {\n            if( use_heap ) {\n                KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                      thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                      qd.get(),\n                                                                                      istride,\n                                                                                      ostride,\n                                                                                      id.get(),\n                                                                                      dd.get(),\n                                                                                      queries.rows, flann::cuda::KnnResultSet<float, true>(knn,sorted,epsError)\n                                                                                      , distance);\n            }\n            else {\n                KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                      thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                      thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                      qd.get(),\n                                                                                      istride,\n                                                                                      ostride,\n                                                                                      id.get(),\n                                                                                      dd.get(),\n                                                                                      queries.rows, flann::cuda::KnnResultSet<float, false>(knn,sorted,epsError),\n                                                                                      distance\n                                                                                      );\n            }\n        }\n        thrust::transform(id, id+knn*queries.rows, id, map_indices(thrust::raw_pointer_cast( &((*gpu_helper_->gpu_vind_))[0]) ));\n    }\n}\n\n\ntemplate< typename Distance>\nint KDTreeCuda3dIndex<Distance >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                                                  std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const\n{\n    //  assert(indices.roasdfws >= queries.rows);\n    //  assert(dists.rows >= queries.rows);\n\n    int max_neighbors = params.max_neighbors;\n    bool sorted = params.sorted;\n    bool use_heap = params.use_heap;\n    if (indices.size() < queries.rows ) indices.resize(queries.rows);\n    if (dists.size() < queries.rows ) dists.resize(queries.rows);\n    \n    int istride=queries.stride/sizeof(ElementType);\n\n    thrust::device_vector<float> queriesDev(istride* queries.rows,0);\n    thrust::copy( queries.ptr(), queries.ptr()+istride*queries.rows, queriesDev.begin() );\n    thrust::device_vector<int> countsDev(queries.rows);\n\n    typename GpuDistance<Distance>::type distance;\n\n    int threadsPerBlock = 128;\n    int blocksPerGrid=(queries.rows+threadsPerBlock-1)/threadsPerBlock;\n\n\n    KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                          thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                          thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                          thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                          thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                          thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                          thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                          istride,\n                                                                          1,\n                                                                          thrust::raw_pointer_cast(&countsDev[0]),\n                                                                          0,\n                                                                          queries.rows, flann::cuda::CountingRadiusResultSet<float>(radius,max_neighbors),\n                                                                          distance\n                                                                          );\n\n    thrust::host_vector<int> counts_host=countsDev;\n\n    if( max_neighbors!=0 ) { // we'll need this later, but the exclusive_scan will change the array\n        for( size_t i=0; i<queries.rows; i++ ) {\n            int count = counts_host[i];\n            if( count > 0 ) {\n                indices[i].resize(count);\n                dists[i].resize(count);\n            }\n            else {\n                indices[i].clear();\n                dists[i].clear();\n            }\n\n        }\n    }\n\n    int neighbors_last_elem = countsDev.back();\n    thrust::exclusive_scan( countsDev.begin(), countsDev.end(), countsDev.begin() );\n\n    size_t total_neighbors=neighbors_last_elem+countsDev.back();\n    if( max_neighbors==0 ) return total_neighbors;\n\n    thrust::device_vector<int> indicesDev(total_neighbors,-1);\n    thrust::device_vector<float> distsDev(total_neighbors,std::numeric_limits<float>::infinity());\n\n    if( max_neighbors<0 ) {\n        KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                              thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                              thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                              thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                              thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                              thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                              thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                              istride,\n                                                                              1,\n                                                                              thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                              thrust::raw_pointer_cast(&distsDev[0]),\n                                                                              queries.rows, flann::cuda::RadiusResultSet<float>(radius,thrust::raw_pointer_cast(&countsDev[0]),sorted), distance);\n    }\n    else {\n        if( use_heap ) {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  1,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                  queries.rows, flann::cuda::RadiusKnnResultSet<float, true>(radius,max_neighbors, thrust::raw_pointer_cast(&countsDev[0]),sorted), distance);\n        }\n        else {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  1,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                  queries.rows, flann::cuda::RadiusKnnResultSet<float, false>(radius,max_neighbors, thrust::raw_pointer_cast(&countsDev[0]),sorted), distance);\n        }\n    }\n    thrust::transform(indicesDev.begin(), indicesDev.end(), indicesDev.begin(), map_indices(thrust::raw_pointer_cast( &((*gpu_helper_->gpu_vind_))[0]) ));\n    thrust::host_vector<int> indices_temp = indicesDev;\n    thrust::host_vector<float> dists_temp = distsDev;\n\n    int buffer_index=0;\n    for( size_t i=0; i<queries.rows; i++ ) {\n        for( size_t j=0; j<counts_host[i]; j++ ) {\n            dists[i][j]=dists_temp[buffer_index];\n            indices[i][j]=indices_temp[buffer_index];\n            ++buffer_index;\n        }\n    }\n\n    return buffer_index;\n}\n\n//! used in the radius search to count the total number of neighbors\nstruct isNotMinusOne\n{\n    __host__ __device__\n    bool operator() ( int i ){\n        return i!=-1;\n    }\n};\n\ntemplate< typename Distance>\nint KDTreeCuda3dIndex< Distance >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const\n{\n\tint max_neighbors = params.max_neighbors;\n    assert(indices.rows >= queries.rows);\n    assert(dists.rows >= queries.rows || max_neighbors==0 );\n    assert(indices.stride==dists.stride  || max_neighbors==0 );\n    assert( indices.cols==indices.stride/sizeof(int) );\n    assert(dists.rows >= queries.rows || max_neighbors==0 );\n\n    bool sorted = params.sorted;\n    bool matrices_on_gpu = params.matrices_in_gpu_ram;\n    float epsError = 1+params.eps;\n    bool use_heap = params.use_heap;\n    int istride=queries.stride/sizeof(ElementType);\n    int ostride= indices.stride/4;\n\n\n    if( max_neighbors<0 ) max_neighbors=indices.cols;\n\n    if( !matrices_on_gpu ) {\n        thrust::device_vector<float> queriesDev(istride* queries.rows,0);\n        thrust::copy( queries.ptr(), queries.ptr()+istride*queries.rows, queriesDev.begin() );\n        typename GpuDistance<Distance>::type distance;\n        int threadsPerBlock = 128;\n        int blocksPerGrid=(queries.rows+threadsPerBlock-1)/threadsPerBlock;\n        if( max_neighbors== 0 ) {\n            thrust::device_vector<int> indicesDev(queries.rows* ostride);\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  0,\n                                                                                  queries.rows, flann::cuda::CountingRadiusResultSet<float>(radius,-1),\n                                                                                  distance\n                                                                                  );\n            thrust::copy( indicesDev.begin(), indicesDev.end(), indices.ptr() );\n            return thrust::reduce(indicesDev.begin(), indicesDev.end() );\n        }\n\n\n        thrust::device_vector<float> distsDev(queries.rows* max_neighbors);\n        thrust::device_vector<int> indicesDev(queries.rows* max_neighbors);\n\n        if( use_heap ) {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                  queries.rows, flann::cuda::KnnRadiusResultSet<float, true>(max_neighbors,sorted,epsError, radius), distance);\n        }\n        else {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  thrust::raw_pointer_cast(&queriesDev[0]),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  thrust::raw_pointer_cast(&indicesDev[0]),\n                                                                                  thrust::raw_pointer_cast(&distsDev[0]),\n                                                                                  queries.rows, flann::cuda::KnnRadiusResultSet<float, false>(max_neighbors,sorted,epsError, radius), distance);\n        }\n\n        thrust::copy( distsDev.begin(), distsDev.end(), dists.ptr() );\n        thrust::transform(indicesDev.begin(), indicesDev.end(), indicesDev.begin(), map_indices(thrust::raw_pointer_cast( &((*gpu_helper_->gpu_vind_))[0]) ));\n        thrust::copy( indicesDev.begin(), indicesDev.end(), indices.ptr() );\n\n        return thrust::count_if(indicesDev.begin(), indicesDev.end(), isNotMinusOne() );\n    }\n    else {\n\n        thrust::device_ptr<float> qd=thrust::device_pointer_cast(queries.ptr());\n        thrust::device_ptr<float> dd=thrust::device_pointer_cast(dists.ptr());\n        thrust::device_ptr<int> id=thrust::device_pointer_cast(indices.ptr());\n        typename GpuDistance<Distance>::type distance;\n        int threadsPerBlock = 128;\n        int blocksPerGrid=(queries.rows+threadsPerBlock-1)/threadsPerBlock;\n\n        if( max_neighbors== 0 ) {\n            thrust::device_vector<int> indicesDev(queries.rows* indices.stride);\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  qd.get(),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  id.get(),\n                                                                                  0,\n                                                                                  queries.rows, flann::cuda::CountingRadiusResultSet<float>(radius,-1),\n                                                                                  distance\n                                                                                  );\n            thrust::copy( indicesDev.begin(), indicesDev.end(), indices.ptr() );\n            return thrust::reduce(indicesDev.begin(), indicesDev.end() );\n        }\n\n        if( use_heap ) {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  qd.get(),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  id.get(),\n                                                                                  dd.get(),\n                                                                                  queries.rows, flann::cuda::KnnRadiusResultSet<float, true>(max_neighbors,sorted,epsError, radius), distance);\n        }\n        else {\n            KdTreeCudaPrivate::nearestKernel<<<blocksPerGrid, threadsPerBlock>>> (thrust::raw_pointer_cast(&((*gpu_helper_->gpu_splits_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_child1_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_parent_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_min_)[0])),\n                                                                                  thrust::raw_pointer_cast(&((*gpu_helper_->gpu_aabb_max_)[0])),\n                                                                                  thrust::raw_pointer_cast( &((*gpu_helper_->gpu_points_)[0]) ),\n                                                                                  qd.get(),\n                                                                                  istride,\n                                                                                  ostride,\n                                                                                  id.get(),\n                                                                                  dd.get(),\n                                                                                  queries.rows, flann::cuda::KnnRadiusResultSet<float, false>(max_neighbors,sorted,epsError, radius), distance);\n        }\n\n        thrust::transform(id, id+max_neighbors*queries.rows, id, map_indices(thrust::raw_pointer_cast( &((*gpu_helper_->gpu_vind_))[0]) ));\n\n        return thrust::count_if(id, id+max_neighbors*queries.rows, isNotMinusOne() );\n    }\n}\n\ntemplate<typename Distance>\nvoid KDTreeCuda3dIndex<Distance>::uploadTreeToGpu()\n{\n    // just make sure that no weird alignment stuff is going on...\n    // shouldn't, but who knows\n    // (I would make this a (boost) static assertion, but so far flann seems to avoid boost\n    //  assert( sizeof( KdTreeCudaPrivate::GpuNode)==sizeof( Node ) );\n    delete gpu_helper_;\n    gpu_helper_ = new GpuHelper;\n    gpu_helper_->gpu_points_=new thrust::device_vector<float4>(size_);\n    thrust::device_vector<float4> tmp(size_);\n    if( get_param(index_params_,\"input_is_gpu_float4\",false) ) {\n\t\tassert( dataset_.cols == 3 && dataset_.stride==4*sizeof(float));\n        thrust::copy( thrust::device_pointer_cast((float4*)dataset_.ptr()),thrust::device_pointer_cast((float4*)(dataset_.ptr()))+size_,tmp.begin());\n        \n    }\n    else {\n        // k is limited to 4 -> use 128bit-alignment regardless of dimensionality\n        // makes cpu search about 5% slower, but gpu can read a float4 w/ a single instruction\n        // (vs a float2 and a float load for a float3 value)\n        // pad data directly to avoid having to copy and re-format the data when\n        // copying it to the GPU\n        data_ = flann::Matrix<ElementType>(new ElementType[size_*4], size_, dim_,4*4);\n        for (size_t i=0; i<size_; ++i) {\n            for (size_t j=0; j<dim_; ++j) {\n                data_[i][j] = dataset_[i][j];\n            }\n            for (size_t j=dim_; j<4; ++j) {\n                data_[i][j] = 0;\n            }\n        }\n        thrust::copy((float4*)data_.ptr(),(float4*)(data_.ptr())+size_,tmp.begin());\n    }\n\n    CudaKdTreeBuilder builder( tmp, leaf_max_size_ );\n    builder.buildTree();\n\n    gpu_helper_->gpu_splits_ = builder.splits_;\n    gpu_helper_->gpu_aabb_min_ = builder.aabb_min_;\n    gpu_helper_->gpu_aabb_max_ = builder.aabb_max_;\n    gpu_helper_->gpu_child1_ = builder.child1_;\n    gpu_helper_->gpu_parent_=builder.parent_;\n    gpu_helper_->gpu_vind_=builder.index_x_;\n    thrust::gather( builder.index_x_->begin(), builder.index_x_->end(), tmp.begin(), gpu_helper_->gpu_points_->begin());\n\n    //  gpu_helper_->gpu_nodes_=new thrust::device_vector<KdTreeCudaPrivate::GpuNode>(node_count_);\n\n\n    //  gpu_helper_->gpu_vind_=new thrust::device_vector<int>(size_);\n    //  thrust::copy( (KdTreeCudaPrivate::GpuNode*)&(tree_[0]), ((KdTreeCudaPrivate::GpuNode*)&(tree_[0]))+tree_.size(),  gpu_helper_->gpu_nodes_->begin());\n\n    //  thrust::copy(vind_.begin(),vind_.end(),gpu_helper_->gpu_vind_->begin());\n\n    //  buildGpuTree();\n}\n\n\ntemplate<typename Distance>\nvoid KDTreeCuda3dIndex<Distance>::clearGpuBuffers()\n{\n    delete gpu_helper_;\n    gpu_helper_=0;\n}\n\n// explicit instantiations for distance-independent functions\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2<float> >::uploadTreeToGpu();\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2<float> >::clearGpuBuffers();\n\ntemplate\nstruct KDTreeCuda3dIndex<flann::L2<float> >::GpuHelper;\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;\n\ntemplate\nint KDTreeCuda3dIndex< flann::L2<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;\ntemplate\nint KDTreeCuda3dIndex< flann::L2<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                                                           std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;\n\n// explicit instantiations for distance-independent functions\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2_Simple<float> >::uploadTreeToGpu();\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2_Simple<float> >::clearGpuBuffers();\n\ntemplate\nstruct KDTreeCuda3dIndex<flann::L2_Simple<float> >::GpuHelper;\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L2_Simple<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;\n\ntemplate\nint KDTreeCuda3dIndex< flann::L2_Simple<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;\ntemplate\nint KDTreeCuda3dIndex< flann::L2_Simple<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                                                                  std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;\n\n\n// explicit instantiations for distance-independent functions\ntemplate\nvoid KDTreeCuda3dIndex<flann::L1<float> >::uploadTreeToGpu();\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L1<float> >::clearGpuBuffers();\n\ntemplate\nstruct KDTreeCuda3dIndex<flann::L1<float> >::GpuHelper;\n\ntemplate\nvoid KDTreeCuda3dIndex<flann::L1<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;\n\ntemplate\nint KDTreeCuda3dIndex< flann::L1<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;\ntemplate\nint KDTreeCuda3dIndex< flann::L1<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                                                           std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;\n}\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_cuda_3d_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n * Copyright 2011       Andreas Muetzel (amuetzel@uni-koblenz.de). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KDTREE_CUDA_3D_INDEX_H_\n#define FLANN_KDTREE_CUDA_3D_INDEX_H_\n\n#include <algorithm>\n#include <map>\n#include <cassert>\n#include <cstring>\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/params.h\"\n\nnamespace flann\n{\n\nstruct KDTreeCuda3dIndexParams : public IndexParams\n{\n    KDTreeCuda3dIndexParams( int leaf_max_size = 64 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KDTREE_CUDA;\n        (*this)[\"leaf_max_size\"] = leaf_max_size;\n        (*this)[\"dim\"] = 3;\n    }\n};\n\n/**\n * Cuda KD Tree.\n * Tree is built with GPU assistance and search is performed on the GPU, too.\n *\n * Usually faster than the CPU search for data (and query) sets larger than 250000-300000 points, depending\n * on your CPU and GPU.\n */\ntemplate <typename Distance>\nclass KDTreeCuda3dIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    int visited_leafs;\n\n    typedef bool needs_kdtree_distance;\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeCuda3dIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KDTreeCuda3dIndexParams(),\n                      Distance d = Distance() ) : BaseClass(params,d), dataset_(inputData), leaf_count_(0), visited_leafs(0), node_count_(0), current_node_count_(0)\n    {\n        size_ = dataset_.rows;\n        dim_ = dataset_.cols;\n\n        int dim_param = get_param(params,\"dim\",-1);\n        if (dim_param>0) dim_ = dim_param;\n        leaf_max_size_ = get_param(params,\"leaf_max_size\",10);\n        assert( dim_ == 3 );\n        gpu_helper_=0;\n    }\n\n    KDTreeCuda3dIndex(const KDTreeCuda3dIndex& other);\n    KDTreeCuda3dIndex operator=(KDTreeCuda3dIndex other);\n\n    /**\n     * Standard destructor\n     */\n    ~KDTreeCuda3dIndex()\n    {\n        delete[] data_.ptr();\n        clearGpuBuffers();\n    }\n\n    BaseClass* clone() const\n    {\n    \tthrow FLANNException(\"KDTreeCuda3dIndex cloning is not implemented\");\n    }\n\n    /**\n     * Builds the index\n     */\n    void buildIndex()\n    {\n        // Create a permutable array of indices to the input vectors.\n        vind_.resize(size_);\n        for (size_t i = 0; i < size_; i++) {\n            vind_[i] = i;\n        }\n\n        leaf_count_=0;\n        node_count_=0;\n        //         computeBoundingBox(root_bbox_);\n        //                              tree_.reserve(log2((double)size_/leaf_max_size_));\n        //         divideTree(0, size_, root_bbox_,-1 );   // construct the tree\n\n        delete[] data_.ptr();\n\n        uploadTreeToGpu();\n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KDTREE_SINGLE;\n    }\n\n\n    void removePoint(size_t index)\n    {\n    \tthrow FLANNException( \"removePoint not implemented for this index type!\" );\n    }\n\n    ElementType* getPoint(size_t id)\n    {\n    \treturn dataset_[id];\n    }\n\n    void saveIndex(FILE* stream)\n    {\n        throw FLANNException( \"Index saving not implemented!\" );\n\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n        throw FLANNException( \"Index loading not implemented!\" );\n    }\n\n    size_t veclen() const\n    {\n        return dim_;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     * TODO: return system or gpu RAM or both?\n     */\n    int usedMemory() const\n    {\n        //         return tree_.size()*sizeof(Node)+dataset_.rows*sizeof(int);  // pool memory and vind array memory\n        return 0;\n    }\n\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const\n    {\n    \tknnSearchGpu(queries,indices, dists, knn, params);\n        return knn*queries.rows; // hack...\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                          std::vector< std::vector<int> >& indices,\n                          std::vector<std::vector<DistanceType> >& dists,\n                          size_t knn,\n                          const SearchParams& params) const\n    {\n    \tknnSearchGpu(queries,indices, dists, knn, params);\n        return knn*queries.rows; // hack...\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    void knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;\n\n    int knnSearchGpu(const Matrix<ElementType>& queries,\n                     std::vector< std::vector<int> >& indices,\n                     std::vector<std::vector<DistanceType> >& dists,\n                     size_t knn,\n                     const SearchParams& params) const\n    {\n        flann::Matrix<int> ind( new int[knn*queries.rows], queries.rows,knn);\n        flann::Matrix<DistanceType> dist( new DistanceType[knn*queries.rows], queries.rows,knn);\n        knnSearchGpu(queries,ind,dist,knn,params);\n        for( size_t i = 0; i<queries.rows; i++ ) {\n            indices[i].resize(knn);\n            dists[i].resize(knn);\n            for( size_t j=0; j<knn; j++ ) {\n                indices[i][j]=ind[i][j];\n                dists[i][j]=dist[i][j];\n            }\n        }\n        delete [] ind.ptr();\n        delete [] dist.ptr();\n        return knn*queries.rows; // hack...\n    }\n\n    int radiusSearch(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists,\n                             float radius, const SearchParams& params) const\n    {\n    \treturn radiusSearchGpu(queries,indices, dists, radius, params);\n    }\n\n    int radiusSearch(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                             std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const\n    {\n    \treturn radiusSearchGpu(queries,indices, dists, radius, params);\n    }\n\n    int radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists,\n                        float radius, const SearchParams& params) const;\n\n    int radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,\n                        std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;\n\n    /**\n     * Not implemented, since it is only used by single-element searches.\n     * (but is needed b/c it is abstract in the base class)\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    }\n\nprotected:\n    void buildIndexImpl()\n    {\n        /* nothing to do here */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here */\n    }\n\nprivate:\n\n    void uploadTreeToGpu( );\n\n    void clearGpuBuffers( );\n\n\n\n\nprivate:\n\n    struct GpuHelper;\n\n    GpuHelper* gpu_helper_;\n\n    const Matrix<ElementType> dataset_;\n\n    int leaf_max_size_;\n\n    int leaf_count_;\n    int node_count_;\n    //! used by convertTreeToGpuFormat\n    int current_node_count_;\n\n\n    /**\n     *  Array of indices to vectors in the dataset.\n     */\n    std::vector<int> vind_;\n\n    Matrix<ElementType> data_;\n\n    size_t dim_;\n\n    USING_BASECLASS_SYMBOLS\n};   // class KDTreeCuda3dIndex\n\n\n}\n\n#endif //FLANN_KDTREE_SINGLE_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_cuda_builder.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2011       Andreas Muetzel (amuetzel@uni-koblenz.de). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_CUDA_KD_TREE_BUILDER_H_\n#define FLANN_CUDA_KD_TREE_BUILDER_H_\n#include <thrust/host_vector.h>\n#include <thrust/device_vector.h>\n#include <thrust/sort.h>\n#include <thrust/partition.h>\n#include <thrust/unique.h>\n#include <thrust/scan.h>\n#include <flann/util/cutil_math.h>\n#include <stdlib.h>\n\n// #define PRINT_DEBUG_TIMING\n\nnamespace flann\n{\n//      template< typename T >\n//      void print_vector(  const thrust::device_vector<T>& v )\n//      {\n//              for( int i=0; i< v.size(); i++ )\n//              {\n//                      std::cout<<v[i]<<std::endl;\n//              }\n//      }\n//\n//      template< typename T1, typename T2 >\n//      void print_vector(  const thrust::device_vector<T1>& v1, const thrust::device_vector<T2>& v2 )\n//      {\n//              for( int i=0; i< v1.size(); i++ )\n//              {\n//                      std::cout<<i<<\": \"<<v1[i]<<\" \"<<v2[i]<<std::endl;\n//              }\n//      }\n//\n//      template< typename T1, typename T2, typename T3 >\n//      void print_vector(  const thrust::device_vector<T1>& v1, const thrust::device_vector<T2>& v2, const thrust::device_vector<T3>& v3 )\n//      {\n//              for( int i=0; i< v1.size(); i++ )\n//              {\n//                      std::cout<<i<<\": \"<<v1[i]<<\" \"<<v2[i]<<\" \"<<v3[i]<<std::endl;\n//              }\n//      }\n//\n//      template< typename T >\n//      void print_vector_by_index(  const thrust::device_vector<T>& v,const thrust::device_vector<int>& ind )\n//      {\n//              for( int i=0; i< v.size(); i++ )\n//              {\n//                      std::cout<<v[ind[i]]<<std::endl;\n//              }\n//      }\n\n//      std::ostream& operator <<(std::ostream& stream, const cuda::kd_tree_builder_detail::SplitInfo& s) {\n//      stream<<\"(split l/r: \"<< s.left <<\" \"<< s.right<< \"  split:\"<<s.split_dim<<\" \"<<s.split_val<<\")\";\n//      return stream;\n// }\n//\n//\n// std::ostream& operator <<(std::ostream& stream, const cuda::kd_tree_builder_detail::NodeInfo& s) {\n//      stream<<\"(node: \"<<s.child1()<<\" \"<<s.parent()<<\" \"<<s.child2()<<\")\";\n//      return stream;\n// }\n//\n// std::ostream& operator <<(std::ostream& stream, const float4& s) {\n//      stream<<\"(\"<<s.x<<\",\"<<s.y<<\",\"<<s.z<<\",\"<<s.w<<\")\";\n//      return stream;\n// }\nnamespace cuda\n{\nnamespace kd_tree_builder_detail\n{\n//! normal node: contains the split dimension and value\n//! leaf node: left == index of first points, right==index of last point +1\nstruct SplitInfo\n{\n    union {\n        struct\n        {\n            // begin of child nodes\n            int left;\n            // end of child nodes\n            int right;\n        };\n        struct\n        {\n            int split_dim;\n            float split_val;\n        };\n    };\n\n};\n\nstruct IsEven\n{\n    typedef int result_type;\n    __device__\n    int operator()(int i )\n    {\n        return (i& 1)==0;\n    }\n};\n\nstruct SecondElementIsEven\n{\n    __host__ __device__\n    bool operator()( const thrust::tuple<int,int>& i )\n    {\n        return (thrust::get<1>(i)& 1)==0;\n    }\n};\n\n//! just for convenience: access a float4 by an index in [0,1,2]\n//! (casting it to a float* and accessing it by the index is way slower...)\n__host__ __device__\nfloat get_value_by_index( const float4& f, int i )\n{\n    switch(i) {\n    case 0:\n        return f.x;\n    case 1:\n        return f.y;\n    default:\n        return f.z;\n    }\n\n}\n\n//! mark a point as belonging to the left or right child of its current parent\n//! called after parents are split\nstruct MovePointsToChildNodes\n{\n    MovePointsToChildNodes( int* child1, SplitInfo* splits, float* x, float* y, float* z, int* ox, int* oy, int* oz, int* lrx, int* lry, int* lrz )\n        : child1_(child1), splits_(splits), x_(x), y_(y), z_(z), ox_(ox), oy_(oy), oz_(oz), lrx_(lrx), lry_(lry), lrz_(lrz){}\n    //  int dim;\n    //  float threshold;\n    int* child1_;\n    SplitInfo* splits_;\n\n    // coordinate values\n    float* x_, * y_, * z_;\n    // owner indices -> which node does the point belong to?\n    int* ox_, * oy_, * oz_;\n    // temp info: will be set to 1 of a point is moved to the right child node, 0 otherwise\n    // (used later in the scan op to separate the points of the children into continuous ranges)\n    int* lrx_, * lry_, * lrz_;\n    __device__\n    void operator()( const thrust::tuple<int, int, int, int>& data )\n    {\n        int index = thrust::get<0>(data);\n        int owner = ox_[index]; // before a split, all points at the same position in the index array have the same owner\n        int point_ind1=thrust::get<1>(data);\n        int point_ind2=thrust::get<2>(data);\n        int point_ind3=thrust::get<3>(data);\n        int leftChild=child1_[owner];\n        int split_dim;\n        float dim_val1, dim_val2, dim_val3;\n        SplitInfo split;\n        lrx_[index]=0;\n        lry_[index]=0;\n        lrz_[index]=0;\n        // this element already belongs to a leaf node -> everything alright, no need to change anything\n        if( leftChild==-1 ) {\n            return;\n        }\n        // otherwise: load split data, and assign this index to the new owner\n        split = splits_[owner];\n        split_dim=split.split_dim;\n        switch( split_dim ) {\n        case 0:\n            dim_val1=x_[point_ind1];\n            dim_val2=x_[point_ind2];\n            dim_val3=x_[point_ind3];\n            break;\n        case 1:\n            dim_val1=y_[point_ind1];\n            dim_val2=y_[point_ind2];\n            dim_val3=y_[point_ind3];\n            break;\n        default:\n            dim_val1=z_[point_ind1];\n            dim_val2=z_[point_ind2];\n            dim_val3=z_[point_ind3];\n            break;\n\n        }\n\n\n        int r1=leftChild +(dim_val1 > split.split_val);\n        ox_[index]=r1;\n        int r2=leftChild+(dim_val2 > split.split_val);\n        oy_[index]=r2;\n        oz_[index]=leftChild+(dim_val3 > split.split_val);\n\n        lrx_[index] = (dim_val1 > split.split_val);\n        lry_[index] = (dim_val2 > split.split_val);\n        lrz_[index] = (dim_val3 > split.split_val);\n        //                      return thrust::make_tuple( r1, r2, leftChild+(dim_val > split.split_val) );\n    }\n};\n\n//! used to update the left/right pointers and aabb infos after the node splits\nstruct SetLeftAndRightAndAABB\n{\n    int maxPoints;\n    int nElements;\n\n    SplitInfo* nodes;\n    int* counts;\n    int* labels;\n    float4* aabbMin;\n    float4* aabbMax;\n    const float* x,* y,* z;\n    const int* ix, * iy, * iz;\n\n    __host__ __device__\n    void operator()( int i )\n    {\n        int index=labels[i];\n        int right;\n        int left = counts[i];\n        nodes[index].left=left;\n        if( i < nElements-1 ) {\n            right=counts[i+1];\n        }\n        else { // index==nNodes\n            right=maxPoints;\n        }\n        nodes[index].right=right;\n        aabbMin[index].x=x[ix[left]];\n        aabbMin[index].y=y[iy[left]];\n        aabbMin[index].z=z[iz[left]];\n        aabbMax[index].x=x[ix[right-1]];\n        aabbMax[index].y=y[iy[right-1]];\n        aabbMax[index].z=z[iz[right-1]];\n    }\n};\n\n\n//! - decide whether a node has to be split\n//! if yes:\n//! - allocate child nodes\n//! - set split axis as axis of maximum aabb length\nstruct SplitNodes\n{\n    int maxPointsPerNode;\n    int* node_count;\n    int* nodes_allocated;\n    int* out_of_space;\n    int* child1_;\n    int* parent_;\n    SplitInfo* splits;\n\n    __device__\n    void operator()( thrust::tuple<int&, int&,SplitInfo&,float4&,float4&, int> node ) // float4: aabbMin, aabbMax\n    {\n        int& parent=thrust::get<0>(node);\n        int& child1=thrust::get<1>(node);\n        SplitInfo& s=thrust::get<2>(node);\n        const float4& aabbMin=thrust::get<3>(node);\n        const float4& aabbMax=thrust::get<4>(node);\n        int my_index = thrust::get<5>(node);\n        bool split_node=false;\n        // first, each thread block counts the number of nodes that it needs to allocate...\n        __shared__ int block_nodes_to_allocate;\n        if( threadIdx.x== 0 ) block_nodes_to_allocate=0;\n        __syncthreads();\n\n        // don't split if all points are equal\n        // (could lead to an infinite loop, and doesn't make any sense anyway)\n        bool all_points_in_node_are_equal=aabbMin.x == aabbMax.x && aabbMin.y==aabbMax.y && aabbMin.z==aabbMax.z;\n\n        int offset_to_global=0;\n\n        // maybe this could be replaced with a reduction...\n        if(( child1==-1) &&( s.right-s.left > maxPointsPerNode) && !all_points_in_node_are_equal ) { // leaf node\n            split_node=true;\n            offset_to_global = atomicAdd( &block_nodes_to_allocate,2 );\n        }\n\n        __syncthreads();\n        __shared__ int block_left;\n        __shared__ bool enough_space;\n        // ... then the first thread tries to allocate this many nodes...\n        if( threadIdx.x==0) {\n            block_left = atomicAdd( node_count, block_nodes_to_allocate );\n            enough_space = block_left+block_nodes_to_allocate < *nodes_allocated;\n            // if it doesn't succeed, no nodes will be created by this block\n            if( !enough_space ) {\n                atomicAdd( node_count, -block_nodes_to_allocate );\n                *out_of_space=1;\n            }\n        }\n\n        __syncthreads();\n        // this thread needs to split it's node && there was enough space for all the nodes\n        // in this block.\n        //(The whole \"allocate-per-block-thing\" is much faster than letting each element allocate\n        // its space on its own, because shared memory atomics are A LOT faster than\n        // global mem atomics!)\n        if( split_node && enough_space ) {\n            int left = block_left + offset_to_global;\n\n            splits[left].left=s.left;\n            splits[left].right=s.right;\n            splits[left+1].left=0;\n            splits[left+1].right=0;\n\n            // split axis/position: middle of longest aabb extent\n            float4 aabbDim=aabbMax-aabbMin;\n            int maxDim=0;\n            float maxDimLength=aabbDim.x;\n            float4 splitVal=(aabbMax+aabbMin);\n            splitVal*=0.5f;\n            for( int i=1; i<=2; i++ ) {\n                float val = get_value_by_index(aabbDim,i);\n                if( val > maxDimLength ) {\n                    maxDim=i;\n                    maxDimLength=val;\n                }\n            }\n            s.split_dim=maxDim;\n            s.split_val=get_value_by_index(splitVal,maxDim);\n\n            child1_[my_index]=left;\n            splits[my_index]=s;\n\n            parent_[left]=my_index;\n            parent_[left+1]=my_index;\n            child1_[left]=-1;\n            child1_[left+1]=-1;\n        }\n    }\n};\n\n\n//! computes the scatter target address for the split operation, see Sengupta,Harris,Zhang,Owen: Scan Primitives for GPU Computing\n//! in my use case, this is about 2x as fast as thrust::partition\nstruct set_addr3\n{\n    const int* val_, * f_;\n\n    int npoints_;\n    __device__\n    int operator()( int id )\n    {\n        int nf = f_[npoints_-1] + (val_[npoints_-1]);\n        int f=f_[id];\n        int t = id -f+nf;\n        return val_[id] ? f : t;\n    }\n};\n\n//! converts a float4 point (xyz) to a tuple of three float vals (used to separate the\n//! float4 input buffer into three arrays in the beginning of the tree build)\nstruct pointxyz_to_px_py_pz\n{\n    __device__\n    thrust::tuple<float,float,float> operator()( const float4& val )\n    {\n        return thrust::make_tuple(val.x, val.y, val.z);\n    }\n};\n} // namespace kd_tree_builder_detail\n\n} // namespace cuda\n\n\nstd::ostream& operator <<(std::ostream& stream, const cuda::kd_tree_builder_detail::SplitInfo& s)\n{\n    stream<<\"(split l/r: \"<< s.left <<\" \"<< s.right<< \"  split:\"<<s.split_dim<<\" \"<<s.split_val<<\")\";\n    return stream;\n}\nclass CudaKdTreeBuilder\n{\npublic:\n    CudaKdTreeBuilder( const thrust::device_vector<float4>& points, int max_leaf_size ) : /*out_of_space_(1,0),node_count_(1,1),*/ max_leaf_size_(max_leaf_size)\n    {\n        points_=&points;\n        int prealloc = points.size()/max_leaf_size_*16;\n        allocation_info_.resize(3);\n        allocation_info_[NodeCount]=1;\n        allocation_info_[NodesAllocated]=prealloc;\n        allocation_info_[OutOfSpace]=0;\n\n        //              std::cout<<points_->size()<<std::endl;\n\n        child1_=new thrust::device_vector<int>(prealloc,-1);\n        parent_=new thrust::device_vector<int>(prealloc,-1);\n        cuda::kd_tree_builder_detail::SplitInfo s;\n        s.left=0;\n        s.right=0;\n        splits_=new thrust::device_vector<cuda::kd_tree_builder_detail::SplitInfo>(prealloc,s);\n        s.right=points.size();\n        (*splits_)[0]=s;\n\n        aabb_min_=new thrust::device_vector<float4>(prealloc);\n        aabb_max_=new thrust::device_vector<float4>(prealloc);\n\n        index_x_=new thrust::device_vector<int>(points_->size());\n        index_y_=new thrust::device_vector<int>(points_->size());\n        index_z_=new thrust::device_vector<int>(points_->size());\n\n        owners_x_=new thrust::device_vector<int>(points_->size(),0);\n        owners_y_=new thrust::device_vector<int>(points_->size(),0);\n        owners_z_=new thrust::device_vector<int>(points_->size(),0);\n\n        leftright_x_ = new thrust::device_vector<int>(points_->size(),0);\n        leftright_y_ = new thrust::device_vector<int>(points_->size(),0);\n        leftright_z_ = new thrust::device_vector<int>(points_->size(),0);\n\n        tmp_index_=new thrust::device_vector<int>(points_->size());\n        tmp_owners_=new thrust::device_vector<int>(points_->size());\n        tmp_misc_=new thrust::device_vector<int>(points_->size());\n\n        points_x_=new thrust::device_vector<float>(points_->size());\n        points_y_=new thrust::device_vector<float>(points_->size());\n        points_z_=new thrust::device_vector<float>(points_->size());\n        delete_node_info_=false;\n    }\n\n    ~CudaKdTreeBuilder()\n    {\n        if( delete_node_info_ ) {\n            delete child1_;\n            delete parent_;\n            delete splits_;\n            delete aabb_min_;\n            delete aabb_max_;\n            delete index_x_;\n        }\n\n        delete index_y_;\n        delete index_z_;\n        delete owners_x_;\n        delete owners_y_;\n        delete owners_z_;\n        delete points_x_;\n        delete points_y_;\n        delete points_z_;\n        delete leftright_x_;\n        delete leftright_y_;\n        delete leftright_z_;\n        delete tmp_index_;\n        delete tmp_owners_;\n        delete tmp_misc_;\n    }\n\n\t//! build the tree\n\t//! general idea:\n\t//! - build sorted lists of the points in x y and z order (to be able to compute tight AABBs in O(1) )\n\t//! - while( nodes to split exist )\n\t//!    - split non-child nodes along longest axis if the number of points is > max_points_per_node\n\t//!    - for each point: determine whether it is in a node that was split. If yes, mark it as belonging to the left or right child node of its current parent node\n\t//!    - reorder the points so that the points of a single node are continuous in the node array\n\t//!    - update the left/right pointers and AABBs of all nodes\n    void buildTree()\n    {\n        //              std::cout<<\"buildTree()\"<<std::endl;\n        //              sleep(1);\n        //              Util::Timer stepTimer;\n        thrust::transform( points_->begin(), points_->end(), thrust::make_zip_iterator(thrust::make_tuple(points_x_->begin(), points_y_->begin(),points_z_->begin()) ), cuda::kd_tree_builder_detail::pointxyz_to_px_py_pz() );\n\n        thrust::counting_iterator<int> it(0);\n        thrust::copy( it, it+points_->size(), index_x_->begin() );\n\n        thrust::copy( index_x_->begin(), index_x_->end(), index_y_->begin() );\n        thrust::copy( index_x_->begin(), index_x_->end(), index_z_->begin() );\n\n        thrust::device_vector<float> tmpv(points_->size());\n\n        // create sorted index list -> can be used to compute AABBs in O(1)\n        thrust::copy(points_x_->begin(), points_x_->end(), tmpv.begin());\n        thrust::sort_by_key( tmpv.begin(), tmpv.end(), index_x_->begin() );\n        thrust::copy(points_y_->begin(), points_y_->end(), tmpv.begin());\n        thrust::sort_by_key( tmpv.begin(), tmpv.end(), index_y_->begin() );\n        thrust::copy(points_z_->begin(), points_z_->end(), tmpv.begin());\n        thrust::sort_by_key( tmpv.begin(), tmpv.end(), index_z_->begin() );\n\n\n        (*aabb_min_)[0]=make_float4((*points_x_)[(*index_x_)[0]],(*points_y_)[(*index_y_)[0]],(*points_z_)[(*index_z_)[0]],0);\n\n        (*aabb_max_)[0]=make_float4((*points_x_)[(*index_x_)[points_->size()-1]],(*points_y_)[(*index_y_)[points_->size()-1]],(*points_z_)[(*index_z_)[points_->size()-1]],0);\n        #ifdef PRINT_DEBUG_TIMING\n        cudaDeviceSynchronize();\n        std::cout<<\" initial stuff:\"<<stepTimer.elapsed()<<std::endl;\n        stepTimer.restart();\n        #endif\n        int last_node_count=0;\n        for( int i=0;; i++ ) {\n            cuda::kd_tree_builder_detail::SplitNodes sn;\n\n            sn.maxPointsPerNode=max_leaf_size_;\n            sn.node_count=thrust::raw_pointer_cast(&allocation_info_[NodeCount]);\n            sn.nodes_allocated=thrust::raw_pointer_cast(&allocation_info_[NodesAllocated]);\n            sn.out_of_space=thrust::raw_pointer_cast(&allocation_info_[OutOfSpace]);\n            sn.child1_=thrust::raw_pointer_cast(&(*child1_)[0]);\n            sn.parent_=thrust::raw_pointer_cast(&(*parent_)[0]);\n            sn.splits=thrust::raw_pointer_cast(&(*splits_)[0]);\n\n            thrust::counting_iterator<int> cit(0);\n            thrust::for_each( thrust::make_zip_iterator(thrust::make_tuple( parent_->begin(), child1_->begin(),  splits_->begin(), aabb_min_->begin(), aabb_max_->begin(), cit  )),\n                              thrust::make_zip_iterator(thrust::make_tuple( parent_->begin()+last_node_count, child1_->begin()+last_node_count,splits_->begin()+last_node_count, aabb_min_->begin()+last_node_count, aabb_max_->begin()+last_node_count,cit+last_node_count  )),\n                              sn   );\n            // copy allocation info to host\n            thrust::host_vector<int> alloc_info = allocation_info_;\n\n            if( last_node_count == alloc_info[NodeCount] ) { // no more nodes were split -> done\n                break;\n            }\n            last_node_count=alloc_info[NodeCount];\n\t\t\t\n\t\t\t// a node was un-splittable due to a lack of space\n            if( alloc_info[OutOfSpace]==1 ) {\n                resize_node_vectors(alloc_info[NodesAllocated]*2);\n                alloc_info[OutOfSpace]=0;\n                alloc_info[NodesAllocated]*=2;\n                allocation_info_=alloc_info;\n            }\n            #ifdef PRINT_DEBUG_TIMING\n            cudaDeviceSynchronize();\n            std::cout<<\" node split:\"<<stepTimer.elapsed()<<std::endl;\n            stepTimer.restart();\n            #endif\n\n            // foreach point: point was in node that was split?move it to child (leaf) node : do nothing\n            cuda::kd_tree_builder_detail::MovePointsToChildNodes sno( thrust::raw_pointer_cast(&(*child1_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*splits_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*points_x_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*points_y_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*points_z_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*owners_x_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*owners_y_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*owners_z_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*leftright_x_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*leftright_y_)[0]),\n                                                                      thrust::raw_pointer_cast(&(*leftright_z_)[0])\n                                                                      );\n            thrust::counting_iterator<int> ci0(0);\n            thrust::for_each( thrust::make_zip_iterator( thrust::make_tuple( ci0, index_x_->begin(), index_y_->begin(), index_z_->begin()) ),\n                              thrust::make_zip_iterator( thrust::make_tuple( ci0+points_->size(), index_x_->end(), index_y_->end(), index_z_->end()) ),sno  );\n\n            #ifdef PRINT_DEBUG_TIMING\n            cudaDeviceSynchronize();\n            std::cout<<\" set new owners:\"<<stepTimer.elapsed()<<std::endl;\n            stepTimer.restart();\n            #endif\n\n            // move points around so that each leaf node's points are continuous\n            separate_left_and_right_children(*index_x_,*owners_x_,*tmp_index_,*tmp_owners_, *leftright_x_);\n            std::swap(tmp_index_, index_x_);\n            std::swap(tmp_owners_, owners_x_);\n            separate_left_and_right_children(*index_y_,*owners_y_,*tmp_index_,*tmp_owners_, *leftright_y_,false);\n            std::swap(tmp_index_, index_y_);\n            separate_left_and_right_children(*index_z_,*owners_z_,*tmp_index_,*tmp_owners_, *leftright_z_,false);\n            std::swap(tmp_index_, index_z_);\n\n            #ifdef PRINT_DEBUG_TIMING\n            cudaDeviceSynchronize();\n            std::cout<<\" split:\"<<stepTimer.elapsed()<<std::endl;\n            stepTimer.restart();\n            #endif\n            // calculate new AABB etc\n            update_leftright_and_aabb( *points_x_, *points_y_, *points_z_, *index_x_, *index_y_, *index_z_, *owners_x_, *splits_,*aabb_min_, *aabb_max_);\n            #ifdef PRINT_DEBUG_TIMING\n            cudaDeviceSynchronize();\n            std::cout<<\" update_leftright_and_aabb:\"<<stepTimer.elapsed()<<std::endl;\n            stepTimer.restart();\n            print_vector(node_count_);\n            #endif\n\n        }\n    }\n    \n\ttemplate<class Distance> \n\tfriend class KDTreeCuda3dIndex;\n\nprotected:\n\n\n    //! takes the partitioned nodes, and sets the left-/right info of leaf nodes, as well as the AABBs\n    void\n    update_leftright_and_aabb( const thrust::device_vector<float>& x, const thrust::device_vector<float>& y,const thrust::device_vector<float>& z,\n                               const thrust::device_vector<int>& ix, const thrust::device_vector<int>& iy,const thrust::device_vector<int>& iz,\n                               const thrust::device_vector<int>& owners,\n                               thrust::device_vector<cuda::kd_tree_builder_detail::SplitInfo>& splits, thrust::device_vector<float4>& aabbMin,thrust::device_vector<float4>& aabbMax)\n    {\n        thrust::device_vector<int>* labelsUnique=tmp_owners_;\n        thrust::device_vector<int>* countsUnique=tmp_index_;\n\t\t// assume: points of each node are continuous in the array\n\t\t\n\t\t// find which nodes are here, and where each node's points begin and end\n        int unique_labels = thrust::unique_by_key_copy( owners.begin(), owners.end(), thrust::counting_iterator<int>(0), labelsUnique->begin(), countsUnique->begin()).first - labelsUnique->begin();\n\n\t\t// update the info\n        cuda::kd_tree_builder_detail::SetLeftAndRightAndAABB s;\n        s.maxPoints=x.size();\n        s.nElements=unique_labels;\n        s.nodes=thrust::raw_pointer_cast(&(splits[0]));\n        s.counts=thrust::raw_pointer_cast(&( (*countsUnique)[0]));\n        s.labels=thrust::raw_pointer_cast(&( (*labelsUnique)[0]));\n        s.x=thrust::raw_pointer_cast(&x[0]);\n        s.y=thrust::raw_pointer_cast(&y[0]);\n        s.z=thrust::raw_pointer_cast(&z[0]);\n        s.ix=thrust::raw_pointer_cast(&ix[0]);\n        s.iy=thrust::raw_pointer_cast(&iy[0]);\n        s.iz=thrust::raw_pointer_cast(&iz[0]);\n        s.aabbMin=thrust::raw_pointer_cast(&aabbMin[0]);\n        s.aabbMax=thrust::raw_pointer_cast(&aabbMax[0]);\n\n        thrust::counting_iterator<int> it(0);\n        thrust::for_each(it, it+unique_labels, s);\n    }\n\n    //! Separates the left and right children of each node into continuous parts of the array.\n    //! More specifically, it seperates children with even and odd node indices because nodes are always\n    //! allocated in pairs -> child1==child2+1 -> child1 even and child2 odd, or vice-versa.\n    //! Since the split operation is stable, this results in continuous partitions\n    //! for all the single nodes.\n    //! (basically the split primitive according to sengupta et al)\n    //! about twice as fast as thrust::partition\n    void separate_left_and_right_children( thrust::device_vector<int>& key_in, thrust::device_vector<int>& val_in, thrust::device_vector<int>& key_out, thrust::device_vector<int>& val_out, thrust::device_vector<int>& left_right_marks, bool scatter_val_out=true )\n    {\n        thrust::device_vector<int>* f_tmp = &val_out;\n        thrust::device_vector<int>* addr_tmp = tmp_misc_;\n\n        thrust::exclusive_scan( /*thrust::make_transform_iterator(*/ left_right_marks.begin() /*,cuda::kd_tree_builder_detail::IsEven*/\n                                                                     /*())*/, /*thrust::make_transform_iterator(*/ left_right_marks.end() /*,cuda::kd_tree_builder_detail::IsEven*/\n                                                                     /*())*/,     f_tmp->begin() );\n        cuda::kd_tree_builder_detail::set_addr3 sa;\n        sa.val_=thrust::raw_pointer_cast(&left_right_marks[0]);\n        sa.f_=thrust::raw_pointer_cast(&(*f_tmp)[0]);\n        sa.npoints_=key_in.size();\n        thrust::counting_iterator<int> it(0);\n        thrust::transform(it, it+val_in.size(), addr_tmp->begin(), sa);\n\n        thrust::scatter(key_in.begin(), key_in.end(), addr_tmp->begin(), key_out.begin());\n        if( scatter_val_out ) thrust::scatter(val_in.begin(), val_in.end(), addr_tmp->begin(), val_out.begin());\n    }\n\n    //! allocates additional space in all the node-related vectors.\n    //! new_size elements will be added to all vectors.\n    void resize_node_vectors( size_t new_size )\n    {\n        size_t add = new_size - child1_->size();\n        child1_->insert(child1_->end(), add, -1);\n        parent_->insert(parent_->end(), add, -1);\n        cuda::kd_tree_builder_detail::SplitInfo s;\n        s.left=0;\n        s.right=0;\n        splits_->insert(splits_->end(), add, s);\n        float4 f;\n        aabb_min_->insert(aabb_min_->end(), add, f);\n        aabb_max_->insert(aabb_max_->end(), add, f);\n    }\n\n\n    const thrust::device_vector<float4>* points_;\n\t\n\t// tree data, those are stored per-node\n\t\n\t//! left child of each node. (right child==left child + 1, due to the alloc mechanism)\n\t//! child1_[node]==-1 if node is a leaf node\n    thrust::device_vector<int>* child1_;\n\t//! parent node of each node\n    thrust::device_vector<int>* parent_;\n\t//! split info (dim/value or left/right pointers)\n    thrust::device_vector<cuda::kd_tree_builder_detail::SplitInfo>* splits_;\n\t//! min aabb value of each node\n    thrust::device_vector<float4>* aabb_min_;\n\t//! max aabb value of each node\n    thrust::device_vector<float4>* aabb_max_;\n\n    enum AllocationInfo\n    {\n        NodeCount=0,\n        NodesAllocated=1,\n        OutOfSpace=2\n    };\n    // those were put into a single vector of 3 elements so that only one mem transfer will be needed for all three of them\n    //  thrust::device_vector<int> out_of_space_;\n    //  thrust::device_vector<int> node_count_;\n    //  thrust::device_vector<int> nodes_allocated_;\n    thrust::device_vector<int> allocation_info_;\n\t\n    int max_leaf_size_;\n\n\t// coordinate values of the points\n    thrust::device_vector<float>* points_x_, * points_y_, * points_z_;\n\t// indices\n    thrust::device_vector<int>* index_x_,  * index_y_,  * index_z_;\n\t// owner node\n    thrust::device_vector<int>* owners_x_, * owners_y_, * owners_z_;\n\t// contains info about whether a point was partitioned to the left or right child after a split\n    thrust::device_vector<int>* leftright_x_, * leftright_y_, * leftright_z_;\n    thrust::device_vector<int>* tmp_index_, * tmp_owners_, * tmp_misc_;\n    bool delete_node_info_;\n};\n\n\n} // namespace flann\n#endif"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KDTREE_INDEX_H_\n#define FLANN_KDTREE_INDEX_H_\n\n#include <algorithm>\n#include <map>\n#include <cassert>\n#include <cstring>\n#include <stdarg.h>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n\n\nnamespace flann\n{\n\nstruct KDTreeIndexParams : public IndexParams\n{\n    KDTreeIndexParams(int trees = 4)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KDTREE;\n        (*this)[\"trees\"] = trees;\n    }\n};\n\n\n/**\n * Randomized kd-tree index\n *\n * Contains the k-d trees and other information for indexing a set of points\n * for nearest-neighbor matching.\n */\ntemplate <typename Distance>\nclass KDTreeIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_kdtree_distance;\n\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeIndex(const IndexParams& params = KDTreeIndexParams(), Distance d = Distance() ) :\n    \tBaseClass(params, d), mean_(NULL), var_(NULL)\n    {\n        trees_ = get_param(index_params_,\"trees\",4);\n    }\n\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeIndex(const Matrix<ElementType>& dataset, const IndexParams& params = KDTreeIndexParams(),\n                Distance d = Distance() ) : BaseClass(params,d ), mean_(NULL), var_(NULL)\n    {\n        trees_ = get_param(index_params_,\"trees\",4);\n\n        setDataset(dataset);\n    }\n\n    KDTreeIndex(const KDTreeIndex& other) : BaseClass(other),\n    \t\ttrees_(other.trees_)\n    {\n        tree_roots_.resize(other.tree_roots_.size());\n        for (size_t i=0;i<tree_roots_.size();++i) {\n        \tcopyTree(tree_roots_[i], other.tree_roots_[i]);\n        }\n    }\n\n    KDTreeIndex& operator=(KDTreeIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    /**\n     * Standard destructor\n     */\n    virtual ~KDTreeIndex()\n    {\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KDTreeIndex(*this);\n    }\n\n    using BaseClass::buildIndex;\n    \n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n\n        size_t old_size = size_;\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=old_size;i<size_;++i) {\n                for (int j = 0; j < trees_; j++) {\n                    addPointToTree(tree_roots_[j], i);\n                }\n            }\n        }        \n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KDTREE;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & trees_;\n\n    \tif (Archive::is_loading::value) {\n    \t\ttree_roots_.resize(trees_);\n    \t}\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\ttree_roots_[i] = new(pool_) Node();\n    \t\t}\n    \t\tar & *tree_roots_[i];\n    \t}\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"trees\"] = trees_;\n    \t}\n    }\n\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return int(pool_.usedMemory+pool_.wastedMemory+size_*sizeof(int));  // pool memory and vind array memory\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     maxCheck = the maximum number of restarts (in a best-bin-first manner)\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        int maxChecks = searchParams.checks;\n        float epsError = 1+searchParams.eps;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n        \tif (removed_) {\n        \t\tgetExactNeighbors<true>(result, vec, epsError);\n        \t}\n        \telse {\n        \t\tgetExactNeighbors<false>(result, vec, epsError);\n        \t}\n        }\n        else {\n        \tif (removed_) {\n\n        \t\tgetNeighbors<true>(result, vec, maxChecks, epsError);\n        \t}\n        \telse {\n\t\t\t\t//this way\n        \t\tgetNeighbors<false>(result, vec, maxChecks, epsError);\n        \t}\n        }\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        // Create a permutable array of indices to the input vectors.\n    \tstd::vector<int> ind(size_);\n        for (size_t i = 0; i < size_; ++i) {\n            ind[i] = int(i);\n        }\n\n        mean_ = new DistanceType[veclen_];\n        var_ = new DistanceType[veclen_];\n\n        tree_roots_.resize(trees_);\n        /* Construct the randomized trees. */\n        for (int i = 0; i < trees_; i++) {\n            /* Randomize the order of vectors to allow for unbiased sampling. */\n            std::random_shuffle(ind.begin(), ind.end());\n            \n            tree_roots_[i] = divideTree(&ind[0], int(size_));\n            //int tree_level = High(tree_roots_[i]);\n\t\t\t//std::cout<<\"tree=\"<<i<<\"  level=\"<<tree_level<<std::endl;\n        }\n        \n        delete[] mean_;\n        delete[] var_;\n    }\n\t\n    void freeIndex()\n    {\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\t// using placement new, so call destructor explicitly\n    \t\tif (tree_roots_[i]!=NULL) tree_roots_[i]->~Node();\n    \t}\n    \tpool_.free();\n    }\n\n\nprivate:\n\n    /*--------------------- Internal Data Structures --------------------------*/\n    struct Node\n    {\n    \t/**\n         * Dimension used for subdivision.\n         */\n        int divfeat;\n        /**\n         * The values used for subdivision.\n         */\n        DistanceType divval;\n        /**\n         * Point data\n         */\n        ElementType* point;\n        /**\n         * The child nodes.\n         */\n        Node* child1, * child2;\n\n        ~Node() {\n        \tif (child1!=NULL) child1->~Node();\n        \tif (child2!=NULL) child2->~Node();\n        }\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KDTreeIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & divfeat;\n    \t\tar & divval;\n\n    \t\tbool leaf_node = false;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tleaf_node = ((child1==NULL) && (child2==NULL));\n    \t\t}\n    \t\tar & leaf_node;\n\n    \t\tif (leaf_node) {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tpoint = obj->points_[divfeat];\n    \t\t\t}\n    \t\t}\n\n    \t\tif (!leaf_node) {\n\t\t\t\tif (Archive::is_loading::value) {\n\t\t\t\t\tchild1 = new(obj->pool_) Node();\n\t\t\t\t\tchild2 = new(obj->pool_) Node();\n\t\t\t\t}\n    \t\t\tar & *child1;\n    \t\t\tar & *child2;\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n    typedef BranchSt* Branch;\n\n\n    int High(NodePtr T)  \n\t{  \n        if(T == NULL)\n\t\t\treturn 0;\n    \tif (T->child1== NULL && T->child2==NULL)  \n        \treturn 1;   \n        int left_h = High(T->child1);\n        int right_h = High(T->child2);  \n        return left_h >= right_h ? left_h+1:right_h+1;  \t\n\t}\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->divfeat = src->divfeat;\n    \tdst->divval = src->divval;\n    \tif (src->child1==NULL && src->child2==NULL) {\n    \t\tdst->point = points_[dst->divfeat];\n    \t\tdst->child1 = NULL;\n    \t\tdst->child2 = NULL;\n    \t}\n    \telse {\n    \t\tcopyTree(dst->child1, src->child1);\n    \t\tcopyTree(dst->child2, src->child2);\n    \t}\n    }\n\n    /**\n     * Create a tree node that subdivides the list of vecs from vind[first]\n     * to vind[last].  The routine is called recursively on each sublist.\n     * Place a pointer to this new tree node in the location pTree.\n     *\n     * Params: pTree = the new node to create\n     *                  first = index of the first vector\n     *                  last = index of the last vector\n     */\n    NodePtr divideTree(int* ind, int count)\n    {\n        NodePtr node = new(pool_) Node(); // allocate memory\n\n        /* If too few exemplars remain, then make this a leaf node. */\n        if (count == 1) {\n            node->child1 = node->child2 = NULL;    /* Mark as leaf node. */\n            node->divfeat = *ind;    /* Store index of this vec. */\n            node->point = points_[*ind];\n        }\n        else {\n            int idx;\n            int cutfeat;\n            DistanceType cutval;\n            meanSplit(ind, count, idx, cutfeat, cutval);\n\t\t\t//std::cout<<\"index=\"<<idx<<std::endl;\n            node->divfeat = cutfeat;\n            node->divval = cutval;\n            node->child1 = divideTree(ind, idx);\n            node->child2 = divideTree(ind+idx, count-idx);\n        }\n\n        return node;\n    }\n\n\n    /**\n     * Choose which feature to use in order to subdivide this set of vectors.\n     * Make a random choice among those with the highest variance, and use\n     * its variance as the threshold value.\n     */\n    void meanSplit(int* ind, int count, int& index, int& cutfeat, DistanceType& cutval)\n    {\n        memset(mean_,0,veclen_*sizeof(DistanceType));\n        memset(var_,0,veclen_*sizeof(DistanceType));\n\n        /* Compute mean values.  Only the first SAMPLE_MEAN values need to be\n            sampled to get a good estimate.\n         */\n        int cnt = std::min((int)SAMPLE_MEAN+1, count);\n        for (int j = 0; j < cnt; ++j) {\n            ElementType* v = points_[ind[j]];\n            for (size_t k=0; k<veclen_; ++k) {\n                mean_[k] += v[k];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/cnt;\n        for (size_t k=0; k<veclen_; ++k) {\n            mean_[k] *= div_factor;\n        }\n\n        /* Compute variances (no need to divide by count). */\n        for (int j = 0; j < cnt; ++j) {\n            ElementType* v = points_[ind[j]];\n            for (size_t k=0; k<veclen_; ++k) {\n                DistanceType dist = v[k] - mean_[k];\n                var_[k] += dist * dist;\n            }\n        }\n        /* Select one of the highest variance indices at random. */\n        cutfeat = selectDivision(var_);\n        cutval = mean_[cutfeat];\n\n        int lim1, lim2;\n        planeSplit(ind, count, cutfeat, cutval, lim1, lim2);\n\n        if (lim1>count/2) index = lim1;\n        else if (lim2<count/2) index = lim2;\n        else index = count/2;\n\t\t\n        /* If either list is empty, it means that all remaining features\n         * are identical. Split in the middle to maintain a balanced tree.\n         */\n        if ((lim1==count)||(lim2==0)) index = count/2;\n    }\n\n\n    /**\n     * Select the top RAND_DIM largest values from v and return the index of\n     * one of these selected at random.\n     */\n    int selectDivision(DistanceType* v)\n    {\n        int num = 0;\n        size_t topind[RAND_DIM];\n\n        /* Create a list of the indices of the top RAND_DIM values. */\n        for (size_t i = 0; i < veclen_; ++i) {\n            if ((num < RAND_DIM)||(v[i] > v[topind[num-1]])) {\n                /* Put this element at end of topind. */\n                if (num < RAND_DIM) {\n                    topind[num++] = i;            /* Add to list. */\n                }\n                else {\n                    topind[num-1] = i;         /* Replace last element. */\n                }\n                /* Bubble end value down to right location by repeated swapping. */\n                int j = num - 1;\n                while (j > 0  &&  v[topind[j]] > v[topind[j-1]]) {\n                    std::swap(topind[j], topind[j-1]);\n                    --j;\n                }\n            }\n        }\n        /* Select a random integer in range [0,num-1], and return that index. */\n        int rnd = rand_int(num);\n        return (int)topind[rnd];\n    }\n\n\n    /**\n     *  Subdivide the list of points by a plane perpendicular on axe corresponding\n     *  to the 'cutfeat' dimension at 'cutval' position.\n     *\n     *  On return:\n     *  dataset[ind[0..lim1-1]][cutfeat]<cutval\n     *  dataset[ind[lim1..lim2-1]][cutfeat]==cutval\n     *  dataset[ind[lim2..count]][cutfeat]>cutval\n     */\n    void planeSplit(int* ind, int count, int cutfeat, DistanceType cutval, int& lim1, int& lim2)\n    {\n        /* Move vector indices for left subtree to front of list. */\n        int left = 0;\n        int right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>=cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n        lim1 = left;\n        right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<=cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n        lim2 = left;\n    }\n\n    /**\n     * Performs an exact nearest neighbor search. The exact search performs a full\n     * traversal of the tree.\n     */\n    template<bool with_removed>\n    void getExactNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, float epsError) const\n    {\n        //\t\tcheckID -= 1;  /* Set a different unique ID for each search. */\n\n        if (trees_ > 1) {\n            fprintf(stderr,\"It doesn't make any sense to use more than one tree for exact search\");\n        }\n        if (trees_>0) {\n            searchLevelExact<with_removed>(result, vec, tree_roots_[0], 0.0, epsError);\n        }\n    }\n\n    /**\n     * Performs the approximate nearest-neighbor search. The search is approximate\n     * because the tree traversal is abandoned after a given number of descends in\n     * the tree.\n     */\n    template<bool with_removed>\n    void getNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, int maxCheck, float epsError) const\n    {\n        int i;\n        BranchSt branch;\n\n        int checkCount = 0;\n        Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n        DynamicBitset checked(size_);\n\n        /* Search once through each tree down to root. */\n        for (i = 0; i < trees_; ++i) {\n            searchLevel<with_removed>(result, vec, tree_roots_[i], 0, checkCount, maxCheck, epsError, heap, checked);\n        }\n\n        /* Keep searching other branches from heap until finished. */\n        while ( heap->popMin(branch) && (checkCount < maxCheck || !result.full() )) {\n            searchLevel<with_removed>(result, vec, branch.node, branch.mindist, checkCount, maxCheck, epsError, heap, checked);\n        }\n\n        delete heap;\n\n    }\n\n    /**\n     *  Search starting from a given node of the tree.  Based on any mismatches at\n     *  higher levels, all exemplars below this level must have a distance of\n     *  at least \"mindistsq\".\n     */\n    template<bool with_removed>\n    void searchLevel(ResultSet<DistanceType>& result_set, const ElementType* vec, NodePtr node, DistanceType mindist, int& checkCount, int maxCheck,\n                     float epsError, Heap<BranchSt>* heap, DynamicBitset& checked) const\n    {\n        if (result_set.worstDist()<mindist) {\n            //\t\t\tprintf(\"Ignoring branch, too far\\n\");\n            return;\n        }\n\n        /* If this is a leaf node, then do check and return. */\n        if ((node->child1 == NULL)&&(node->child2 == NULL)) {\n            int index = node->divfeat;\n            if (with_removed) {\n            \tif (removed_points_.test(index)) return;\n            }\n            /*  Do not check same node more than once when searching multiple trees. */\n            if ( checked.test(index) || ((checkCount>=maxCheck)&& result_set.full()) ) return;\n            checked.set(index);\n            checkCount++;\n\n            DistanceType dist = distance_(node->point, vec, veclen_);\n            result_set.addPoint(dist,index);\n            return;\n        }\n\n        /* Which child branch should be taken first? */\n        ElementType val = vec[node->divfeat];\n        DistanceType diff = val - node->divval;\n        NodePtr bestChild = (diff < 0) ? node->child1 : node->child2;\n        NodePtr otherChild = (diff < 0) ? node->child2 : node->child1;\n\n        /* Create a branch record for the branch not taken.  Add distance\n            of this feature boundary (we don't attempt to correct for any\n            use of this feature in a parent node, which is unlikely to\n            happen and would have only a small effect).  Don't bother\n            adding more branches to heap after halfway point, as cost of\n            adding exceeds their value.\n         */\n\n        DistanceType new_distsq = mindist + distance_.accum_dist(val, node->divval, node->divfeat);\n        //\t\tif (2 * checkCount < maxCheck  ||  !result.full()) {\n        if ((new_distsq*epsError < result_set.worstDist())||  !result_set.full()) {\n            heap->insert( BranchSt(otherChild, new_distsq) );\n        }\n\n        /* Call recursively to search next level down. */\n        searchLevel<with_removed>(result_set, vec, bestChild, mindist, checkCount, maxCheck, epsError, heap, checked);\n    }\n\n    /**\n     * Performs an exact search in the tree starting from a node.\n     */\n    template<bool with_removed>\n    void searchLevelExact(ResultSet<DistanceType>& result_set, const ElementType* vec, const NodePtr node, DistanceType mindist, const float epsError) const\n    {\n        /* If this is a leaf node, then do check and return. */\n        if ((node->child1 == NULL)&&(node->child2 == NULL)) {\n            int index = node->divfeat;\n            if (with_removed) {\n            \tif (removed_points_.test(index)) return; // ignore removed points\n            }\n            DistanceType dist = distance_(node->point, vec, veclen_);\n            result_set.addPoint(dist,index);\n\n            return;\n        }\n\n        /* Which child branch should be taken first? */\n        ElementType val = vec[node->divfeat];\n        DistanceType diff = val - node->divval;\n        NodePtr bestChild = (diff < 0) ? node->child1 : node->child2;\n        NodePtr otherChild = (diff < 0) ? node->child2 : node->child1;\n\n        /* Create a branch record for the branch not taken.  Add distance\n            of this feature boundary (we don't attempt to correct for any\n            use of this feature in a parent node, which is unlikely to\n            happen and would have only a small effect).  Don't bother\n            adding more branches to heap after halfway point, as cost of\n            adding exceeds their value.\n         */\n\n        DistanceType new_distsq = mindist + distance_.accum_dist(val, node->divval, node->divfeat);\n\n        /* Call recursively to search next level down. */\n        searchLevelExact<with_removed>(result_set, vec, bestChild, mindist, epsError);\n\n        if (mindist*epsError<=result_set.worstDist()) {\n            searchLevelExact<with_removed>(result_set, vec, otherChild, new_distsq, epsError);\n        }\n    }\n    \n    void addPointToTree(NodePtr node, int ind)\n    {\n        ElementType* point = points_[ind];\n        \n        if ((node->child1==NULL) && (node->child2==NULL)) {\n            ElementType* leaf_point = node->point;\n            ElementType max_span = 0;\n            size_t div_feat = 0;\n            for (size_t i=0;i<veclen_;++i) {\n                ElementType span = abs(point[i]-leaf_point[i]);\n                if (span > max_span) {\n                    max_span = span;\n                    div_feat = i;\n                }\n            }\n            NodePtr left = new(pool_) Node();\n            left->child1 = left->child2 = NULL;\n            NodePtr right = new(pool_) Node();\n            right->child1 = right->child2 = NULL;\n\n            if (point[div_feat]<leaf_point[div_feat]) {\n                left->divfeat = ind;\n                left->point = point;\n                right->divfeat = node->divfeat;\n                right->point = node->point;\n            }\n            else {\n                left->divfeat = node->divfeat;\n                left->point = node->point;\n                right->divfeat = ind;\n                right->point = point;\n            }\n            node->divfeat = div_feat;\n            node->divval = (point[div_feat]+leaf_point[div_feat])/2;\n            node->child1 = left;\n            node->child2 = right;            \n        }\n        else {\n            if (point[node->divfeat]<node->divval) {\n                addPointToTree(node->child1,ind);\n            }\n            else {\n                addPointToTree(node->child2,ind);                \n            }\n        }\n    }\nprivate:\n    void swap(KDTreeIndex& other)\n    {\n    \tBaseClass::swap(other);\n    \tstd::swap(trees_, other.trees_);\n    \tstd::swap(tree_roots_, other.tree_roots_);\n    \tstd::swap(pool_, other.pool_);\n    }\n\nprivate:\n\n    enum\n    {\n        /**\n         * To improve efficiency, only SAMPLE_MEAN random values are used to\n         * compute the mean and variance at each level when building a tree.\n         * A value of 100 seems to perform as well as using all values.\n         */\n        SAMPLE_MEAN = 100,\n        /**\n         * Top random dimensions to consider\n         *\n         * When creating random trees, the dimension on which to subdivide is\n         * selected at random from among the top RAND_DIM dimensions with the\n         * highest variance.  A value of 5 works well.\n         */\n        RAND_DIM=5\n    };\n\n\n    /**\n     * Number of randomized trees that are used\n     */\n    int trees_;\n\n    DistanceType* mean_;\n    DistanceType* var_;\n\n    /**\n     * Array of k-d trees used to find neighbours.\n     */\n    std::vector<NodePtr> tree_roots_;\n\n    /**\n     * Pooled memory allocator.\n     *\n     * Using a pooled memory allocator is more efficient\n     * than allocating memory directly when there is a large\n     * number small of memory allocations.\n     */\n    PooledAllocator pool_;\n\n    USING_BASECLASS_SYMBOLS\n};   // class KDTreeIndex\n\n}\n\n#endif //FLANN_KDTREE_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KDTREE_INDEX_H_\n#define FLANN_KDTREE_INDEX_H_\n\n#include <algorithm>\n#include <map>\n#include <cassert>\n#include <cstring>\n#include <stdarg.h>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n\n\nnamespace flann\n{\n\nstruct KDTreeIndexParams : public IndexParams\n{\n    KDTreeIndexParams(int trees = 4)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KDTREE;\n        (*this)[\"trees\"] = trees;\n    }\n};\n\n\n/**\n * Randomized kd-tree index\n *\n * Contains the k-d trees and other information for indexing a set of points\n * for nearest-neighbor matching.\n */\ntemplate <typename Distance>\nclass KDTreeIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_kdtree_distance;\n\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeIndex(const IndexParams& params = KDTreeIndexParams(), Distance d = Distance() ) :\n    \tBaseClass(params, d), mean_(NULL), var_(NULL)\n    {\n        trees_ = get_param(index_params_,\"trees\",4);\n    }\n\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeIndex(const Matrix<ElementType>& dataset, const IndexParams& params = KDTreeIndexParams(),\n                Distance d = Distance() ) : BaseClass(params,d ), mean_(NULL), var_(NULL)\n    {\n        trees_ = get_param(index_params_,\"trees\",4);\n\n        setDataset(dataset);\n    }\n\n    KDTreeIndex(const KDTreeIndex& other) : BaseClass(other),\n    \t\ttrees_(other.trees_)\n    {\n        tree_roots_.resize(other.tree_roots_.size());\n        for (size_t i=0;i<tree_roots_.size();++i) {\n        \tcopyTree(tree_roots_[i], other.tree_roots_[i]);\n        }\n    }\n\n    KDTreeIndex& operator=(KDTreeIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    /**\n     * Standard destructor\n     */\n    virtual ~KDTreeIndex()\n    {\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KDTreeIndex(*this);\n    }\n\n    using BaseClass::buildIndex;\n    \n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n\n        size_t old_size = size_;\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=old_size;i<size_;++i) {\n                for (int j = 0; j < trees_; j++) {\n                    addPointToTree(tree_roots_[j], i);\n                }\n            }\n        }        \n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KDTREE;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & trees_;\n\n    \tif (Archive::is_loading::value) {\n    \t\ttree_roots_.resize(trees_);\n    \t}\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\ttree_roots_[i] = new(pool_) Node();\n    \t\t}\n    \t\tar & *tree_roots_[i];\n    \t}\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"trees\"] = trees_;\n    \t}\n    }\n\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return int(pool_.usedMemory+pool_.wastedMemory+size_*sizeof(int));  // pool memory and vind array memory\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     maxCheck = the maximum number of restarts (in a best-bin-first manner)\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        int maxChecks = searchParams.checks;\n        float epsError = 1+searchParams.eps;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n        \tif (removed_) {\n        \t\tgetExactNeighbors<true>(result, vec, epsError);\n        \t}\n        \telse {\n        \t\tgetExactNeighbors<false>(result, vec, epsError);\n        \t}\n        }\n        else {\n        \tif (removed_) {\n\n        \t\tgetNeighbors<true>(result, vec, maxChecks, epsError);\n        \t}\n        \telse {\n\t\t\t\t//this way\n        \t\tgetNeighbors<false>(result, vec, maxChecks, epsError);\n        \t}\n        }\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        // Create a permutable array of indices to the input vectors.\n    \tstd::vector<int> ind(size_);\n        for (size_t i = 0; i < size_; ++i) {\n            ind[i] = int(i);\n        }\n\n        mean_ = new DistanceType[veclen_];\n        var_ = new DistanceType[veclen_];\n\n        tree_roots_.resize(trees_);\n        /* Construct the randomized trees. */\n        for (int i = 0; i < trees_; i++) {\n            /* Randomize the order of vectors to allow for unbiased sampling. */\n            std::random_shuffle(ind.begin(), ind.end());\n            \n            tree_roots_[i] = divideTree(&ind[0], int(size_));\n            //int tree_level = High(tree_roots_[i]);\n\t\t\t//std::cout<<\"tree=\"<<i<<\"  level=\"<<tree_level<<std::endl;\n        }\n        \n        delete[] mean_;\n        delete[] var_;\n    }\n\t\n    void freeIndex()\n    {\n    \tfor (size_t i=0;i<tree_roots_.size();++i) {\n    \t\t// using placement new, so call destructor explicitly\n    \t\tif (tree_roots_[i]!=NULL) tree_roots_[i]->~Node();\n    \t}\n    \tpool_.free();\n    }\n\n\nprivate:\n\n    /*--------------------- Internal Data Structures --------------------------*/\n    struct Node\n    {\n    \t/**\n         * Dimension used for subdivision.\n         */\n        int divfeat;\n        /**\n         * The values used for subdivision.\n         */\n        DistanceType divval;\n        /**\n         * Point data\n         */\n        ElementType* point;\n        /**\n         * The child nodes.\n         */\n        Node* child1, * child2;\n\n        ~Node() {\n        \tif (child1!=NULL) child1->~Node();\n        \tif (child2!=NULL) child2->~Node();\n        }\n\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KDTreeIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & divfeat;\n    \t\tar & divval;\n\n    \t\tbool leaf_node = false;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tleaf_node = ((child1==NULL) && (child2==NULL));\n    \t\t}\n    \t\tar & leaf_node;\n\n    \t\tif (leaf_node) {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tpoint = obj->points_[divfeat];\n    \t\t\t}\n    \t\t}\n\n    \t\tif (!leaf_node) {\n\t\t\t\tif (Archive::is_loading::value) {\n\t\t\t\t\tchild1 = new(obj->pool_) Node();\n\t\t\t\t\tchild2 = new(obj->pool_) Node();\n\t\t\t\t}\n    \t\t\tar & *child1;\n    \t\t\tar & *child2;\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n    typedef BranchSt* Branch;\n\n\n    int High(NodePtr T)  \n\t{  \n        if(T == NULL)\n\t\t\treturn 0;\n    \tif (T->child1== NULL && T->child2==NULL)  \n        \treturn 1;   \n        int left_h = High(T->child1);\n        int right_h = High(T->child2);  \n        return left_h >= right_h ? left_h+1:right_h+1;  \t\n\t}\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->divfeat = src->divfeat;\n    \tdst->divval = src->divval;\n    \tif (src->child1==NULL && src->child2==NULL) {\n    \t\tdst->point = points_[dst->divfeat];\n    \t\tdst->child1 = NULL;\n    \t\tdst->child2 = NULL;\n    \t}\n    \telse {\n    \t\tcopyTree(dst->child1, src->child1);\n    \t\tcopyTree(dst->child2, src->child2);\n    \t}\n    }\n\n    /**\n     * Create a tree node that subdivides the list of vecs from vind[first]\n     * to vind[last].  The routine is called recursively on each sublist.\n     * Place a pointer to this new tree node in the location pTree.\n     *\n     * Params: pTree = the new node to create\n     *                  first = index of the first vector\n     *                  last = index of the last vector\n     */\n    NodePtr divideTree(int* ind, int count)\n    {\n        NodePtr node = new(pool_) Node(); // allocate memory\n\n        /* If too few exemplars remain, then make this a leaf node. */\n        if (count == 1) {\n            node->child1 = node->child2 = NULL;    /* Mark as leaf node. */\n            node->divfeat = *ind;    /* Store index of this vec. */\n            node->point = points_[*ind];\n        }\n        else {\n            int idx;\n            int cutfeat;\n            DistanceType cutval;\n            meanSplit(ind, count, idx, cutfeat, cutval);\n\t\t\t//std::cout<<\"index=\"<<idx<<std::endl;\n            node->divfeat = cutfeat;\n            node->divval = cutval;\n            node->child1 = divideTree(ind, idx);\n            node->child2 = divideTree(ind+idx, count-idx);\n        }\n\n        return node;\n    }\n\n\n    /**\n     * Choose which feature to use in order to subdivide this set of vectors.\n     * Make a random choice among those with the highest variance, and use\n     * its variance as the threshold value.\n     */\n    void meanSplit(int* ind, int count, int& index, int& cutfeat, DistanceType& cutval)\n    {\n        memset(mean_,0,veclen_*sizeof(DistanceType));\n        memset(var_,0,veclen_*sizeof(DistanceType));\n\n        /* Compute mean values.  Only the first SAMPLE_MEAN values need to be\n            sampled to get a good estimate.\n         */\n        int cnt = std::min((int)SAMPLE_MEAN+1, count);\n        for (int j = 0; j < cnt; ++j) {\n            ElementType* v = points_[ind[j]];\n            for (size_t k=0; k<veclen_; ++k) {\n                mean_[k] += v[k];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/cnt;\n        for (size_t k=0; k<veclen_; ++k) {\n            mean_[k] *= div_factor;\n        }\n\n        /* Compute variances (no need to divide by count). */\n        for (int j = 0; j < cnt; ++j) {\n            ElementType* v = points_[ind[j]];\n            for (size_t k=0; k<veclen_; ++k) {\n                DistanceType dist = v[k] - mean_[k];\n                var_[k] += dist * dist;\n            }\n        }\n        /* Select one of the highest variance indices at random. */\n        cutfeat = selectDivision(var_);\n        cutval = mean_[cutfeat];\n\n        int lim1, lim2;\n        planeSplit(ind, count, cutfeat, cutval, lim1, lim2);\n\n        if (lim1>count/2) index = lim1;\n        else if (lim2<count/2) index = lim2;\n        else index = count/2;\n\t\t\n        /* If either list is empty, it means that all remaining features\n         * are identical. Split in the middle to maintain a balanced tree.\n         */\n        if ((lim1==count)||(lim2==0)) index = count/2;\n    }\n\n\n    /**\n     * Select the top RAND_DIM largest values from v and return the index of\n     * one of these selected at random.\n     */\n    int selectDivision(DistanceType* v)\n    {\n        int num = 0;\n        size_t topind[RAND_DIM];\n\n        /* Create a list of the indices of the top RAND_DIM values. */\n        for (size_t i = 0; i < veclen_; ++i) {\n            if ((num < RAND_DIM)||(v[i] > v[topind[num-1]])) {\n                /* Put this element at end of topind. */\n                if (num < RAND_DIM) {\n                    topind[num++] = i;            /* Add to list. */\n                }\n                else {\n                    topind[num-1] = i;         /* Replace last element. */\n                }\n                /* Bubble end value down to right location by repeated swapping. */\n                int j = num - 1;\n                while (j > 0  &&  v[topind[j]] > v[topind[j-1]]) {\n                    std::swap(topind[j], topind[j-1]);\n                    --j;\n                }\n            }\n        }\n        /* Select a random integer in range [0,num-1], and return that index. */\n        int rnd = rand_int(num);\n        return (int)topind[rnd];\n    }\n\n\n    /**\n     *  Subdivide the list of points by a plane perpendicular on axe corresponding\n     *  to the 'cutfeat' dimension at 'cutval' position.\n     *\n     *  On return:\n     *  dataset[ind[0..lim1-1]][cutfeat]<cutval\n     *  dataset[ind[lim1..lim2-1]][cutfeat]==cutval\n     *  dataset[ind[lim2..count]][cutfeat]>cutval\n     */\n    void planeSplit(int* ind, int count, int cutfeat, DistanceType cutval, int& lim1, int& lim2)\n    {\n        /* Move vector indices for left subtree to front of list. */\n        int left = 0;\n        int right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>=cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n        lim1 = left;\n        right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<=cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n        lim2 = left;\n    }\n\n    /**\n     * Performs an exact nearest neighbor search. The exact search performs a full\n     * traversal of the tree.\n     */\n    template<bool with_removed>\n    void getExactNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, float epsError) const\n    {\n        //\t\tcheckID -= 1;  /* Set a different unique ID for each search. */\n\n        if (trees_ > 1) {\n            fprintf(stderr,\"It doesn't make any sense to use more than one tree for exact search\");\n        }\n        if (trees_>0) {\n            searchLevelExact<with_removed>(result, vec, tree_roots_[0], 0.0, epsError);\n        }\n    }\n\n    /**\n     * Performs the approximate nearest-neighbor search. The search is approximate\n     * because the tree traversal is abandoned after a given number of descends in\n     * the tree.\n     */\n    template<bool with_removed>\n    void getNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, int maxCheck, float epsError) const\n    {\n        int i;\n        BranchSt branch;\n\n        int checkCount = 0;\n        Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n        DynamicBitset checked(size_);\n\n        /* Search once through each tree down to root. */\n        for (i = 0; i < trees_; ++i) {\n            searchLevel<with_removed>(result, vec, tree_roots_[i], 0, checkCount, maxCheck, epsError, heap, checked);\n        }\n\n        /* Keep searching other branches from heap until finished. */\n        while ( heap->popMin(branch) && (checkCount < maxCheck || !result.full() )) {\n            searchLevel<with_removed>(result, vec, branch.node, branch.mindist, checkCount, maxCheck, epsError, heap, checked);\n        }\n\n        delete heap;\n\n    }\n\n    /**\n     *  Search starting from a given node of the tree.  Based on any mismatches at\n     *  higher levels, all exemplars below this level must have a distance of\n     *  at least \"mindistsq\".\n     */\n    template<bool with_removed>\n    void searchLevel(ResultSet<DistanceType>& result_set, const ElementType* vec, NodePtr node, DistanceType mindist, int& checkCount, int maxCheck,\n                     float epsError, Heap<BranchSt>* heap, DynamicBitset& checked) const\n    {\n        if (result_set.worstDist()<mindist) {\n            //\t\t\tprintf(\"Ignoring branch, too far\\n\");\n            return;\n        }\n\n        /* If this is a leaf node, then do check and return. */\n        if ((node->child1 == NULL)&&(node->child2 == NULL)) {\n            int index = node->divfeat;\n            if (with_removed) {\n            \tif (removed_points_.test(index)) return;\n            }\n            /*  Do not check same node more than once when searching multiple trees. */\n            if ( checked.test(index) || ((checkCount>=maxCheck)&& result_set.full()) ) return;\n            checked.set(index);\n            checkCount++;\n\n            DistanceType dist = distance_(node->point, vec, veclen_);\n            result_set.addPoint(dist,index);\n            return;\n        }\n\n        /* Which child branch should be taken first? */\n        ElementType val = vec[node->divfeat];\n        DistanceType diff = val - node->divval;\n        NodePtr bestChild = (diff < 0) ? node->child1 : node->child2;\n        NodePtr otherChild = (diff < 0) ? node->child2 : node->child1;\n\n        /* Create a branch record for the branch not taken.  Add distance\n            of this feature boundary (we don't attempt to correct for any\n            use of this feature in a parent node, which is unlikely to\n            happen and would have only a small effect).  Don't bother\n            adding more branches to heap after halfway point, as cost of\n            adding exceeds their value.\n         */\n\n        DistanceType new_distsq = mindist + distance_.accum_dist(val, node->divval, node->divfeat);\n        //\t\tif (2 * checkCount < maxCheck  ||  !result.full()) {\n        if ((new_distsq*epsError < result_set.worstDist())||  !result_set.full()) {\n            heap->insert( BranchSt(otherChild, new_distsq) );\n        }\n\n        /* Call recursively to search next level down. */\n        searchLevel<with_removed>(result_set, vec, bestChild, mindist, checkCount, maxCheck, epsError, heap, checked);\n    }\n\n    /**\n     * Performs an exact search in the tree starting from a node.\n     */\n    template<bool with_removed>\n    void searchLevelExact(ResultSet<DistanceType>& result_set, const ElementType* vec, const NodePtr node, DistanceType mindist, const float epsError) const\n    {\n        /* If this is a leaf node, then do check and return. */\n        if ((node->child1 == NULL)&&(node->child2 == NULL)) {\n            int index = node->divfeat;\n            if (with_removed) {\n            \tif (removed_points_.test(index)) return; // ignore removed points\n            }\n            DistanceType dist = distance_(node->point, vec, veclen_);\n            result_set.addPoint(dist,index);\n\n            return;\n        }\n\n        /* Which child branch should be taken first? */\n        ElementType val = vec[node->divfeat];\n        DistanceType diff = val - node->divval;\n        NodePtr bestChild = (diff < 0) ? node->child1 : node->child2;\n        NodePtr otherChild = (diff < 0) ? node->child2 : node->child1;\n\n        /* Create a branch record for the branch not taken.  Add distance\n            of this feature boundary (we don't attempt to correct for any\n            use of this feature in a parent node, which is unlikely to\n            happen and would have only a small effect).  Don't bother\n            adding more branches to heap after halfway point, as cost of\n            adding exceeds their value.\n         */\n\n        DistanceType new_distsq = mindist + distance_.accum_dist(val, node->divval, node->divfeat);\n\n        /* Call recursively to search next level down. */\n        searchLevelExact<with_removed>(result_set, vec, bestChild, mindist, epsError);\n\n        if (mindist*epsError<=result_set.worstDist()) {\n            searchLevelExact<with_removed>(result_set, vec, otherChild, new_distsq, epsError);\n        }\n    }\n    \n    void addPointToTree(NodePtr node, int ind)\n    {\n        ElementType* point = points_[ind];\n        \n        if ((node->child1==NULL) && (node->child2==NULL)) {\n            ElementType* leaf_point = node->point;\n            ElementType max_span = 0;\n            size_t div_feat = 0;\n            for (size_t i=0;i<veclen_;++i) {\n                ElementType span = abs(point[i]-leaf_point[i]);\n                if (span > max_span) {\n                    max_span = span;\n                    div_feat = i;\n                }\n            }\n            NodePtr left = new(pool_) Node();\n            left->child1 = left->child2 = NULL;\n            NodePtr right = new(pool_) Node();\n            right->child1 = right->child2 = NULL;\n\n            if (point[div_feat]<leaf_point[div_feat]) {\n                left->divfeat = ind;\n                left->point = point;\n                right->divfeat = node->divfeat;\n                right->point = node->point;\n            }\n            else {\n                left->divfeat = node->divfeat;\n                left->point = node->point;\n                right->divfeat = ind;\n                right->point = point;\n            }\n            node->divfeat = div_feat;\n            node->divval = (point[div_feat]+leaf_point[div_feat])/2;\n            node->child1 = left;\n            node->child2 = right;            \n        }\n        else {\n            if (point[node->divfeat]<node->divval) {\n                addPointToTree(node->child1,ind);\n            }\n            else {\n                addPointToTree(node->child2,ind);                \n            }\n        }\n    }\nprivate:\n    void swap(KDTreeIndex& other)\n    {\n    \tBaseClass::swap(other);\n    \tstd::swap(trees_, other.trees_);\n    \tstd::swap(tree_roots_, other.tree_roots_);\n    \tstd::swap(pool_, other.pool_);\n    }\n\nprivate:\n\n    enum\n    {\n        /**\n         * To improve efficiency, only SAMPLE_MEAN random values are used to\n         * compute the mean and variance at each level when building a tree.\n         * A value of 100 seems to perform as well as using all values.\n         */\n        SAMPLE_MEAN = 100,\n        /**\n         * Top random dimensions to consider\n         *\n         * When creating random trees, the dimension on which to subdivide is\n         * selected at random from among the top RAND_DIM dimensions with the\n         * highest variance.  A value of 5 works well.\n         */\n        RAND_DIM=5\n    };\n\n\n    /**\n     * Number of randomized trees that are used\n     */\n    int trees_;\n\n    DistanceType* mean_;\n    DistanceType* var_;\n\n    /**\n     * Array of k-d trees used to find neighbours.\n     */\n    std::vector<NodePtr> tree_roots_;\n\n    /**\n     * Pooled memory allocator.\n     *\n     * Using a pooled memory allocator is more efficient\n     * than allocating memory directly when there is a large\n     * number small of memory allocations.\n     */\n    PooledAllocator pool_;\n\n    USING_BASECLASS_SYMBOLS\n};   // class KDTreeIndex\n\n}\n\n#endif //FLANN_KDTREE_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kdtree_single_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KDTREE_SINGLE_INDEX_H_\n#define FLANN_KDTREE_SINGLE_INDEX_H_\n\n#include <algorithm>\n#include <map>\n#include <cassert>\n#include <cstring>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n\nnamespace flann\n{\n\nstruct KDTreeSingleIndexParams : public IndexParams\n{\n    KDTreeSingleIndexParams(int leaf_max_size = 10, bool reorder = true)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KDTREE_SINGLE;\n        (*this)[\"leaf_max_size\"] = leaf_max_size;\n        (*this)[\"reorder\"] = reorder;\n    }\n};\n\n\n/**\n * Single kd-tree index\n *\n * Contains the k-d trees and other information for indexing a set of points\n * for nearest-neighbor matching.\n */\ntemplate <typename Distance>\nclass KDTreeSingleIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_kdtree_distance;\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeSingleIndex(const IndexParams& params = KDTreeSingleIndexParams(), Distance d = Distance() ) :\n        BaseClass(params, d), root_node_(NULL)\n    {\n        leaf_max_size_ = get_param(params,\"leaf_max_size\",10);\n        reorder_ = get_param(params, \"reorder\", true);\n    }\n\n    /**\n     * KDTree constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the kdtree algorithm\n     */\n    KDTreeSingleIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KDTreeSingleIndexParams(),\n                      Distance d = Distance() ) : BaseClass(params, d), root_node_(NULL)\n    {\n        leaf_max_size_ = get_param(params,\"leaf_max_size\",10);\n        reorder_ = get_param(params, \"reorder\", true);\n\n        setDataset(inputData);\n    }\n\n\n    KDTreeSingleIndex(const KDTreeSingleIndex& other) : BaseClass(other),\n            leaf_max_size_(other.leaf_max_size_),\n            reorder_(other.reorder_),\n            vind_(other.vind_),\n            root_bbox_(other.root_bbox_)\n    {\n        if (reorder_) {\n            data_ = flann::Matrix<ElementType>(new ElementType[size_*veclen_], size_, veclen_);\n            std::copy(other.data_[0], other.data_[0]+size_*veclen_, data_[0]);\n        }\n        copyTree(root_node_, other.root_node_);\n    }\n\n    KDTreeSingleIndex& operator=(KDTreeSingleIndex other)\n    {\n        this->swap(other);\n        return *this;\n    }\n    \n    /**\n     * Standard destructor\n     */\n    virtual ~KDTreeSingleIndex()\n    {\n        freeIndex();\n    }\n    \n    BaseClass* clone() const\n    {\n        return new KDTreeSingleIndex(*this);\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        extendDataset(points);\n        buildIndex();\n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KDTREE_SINGLE;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n        ar.setObject(this);\n\n        if (reorder_) index_params_[\"save_dataset\"] = false;\n\n        ar & *static_cast<NNIndex<Distance>*>(this);\n\n        ar & reorder_;\n        ar & leaf_max_size_;\n        ar & root_bbox_;\n        ar & vind_;\n\n        if (reorder_) {\n            ar & data_;\n        }\n\n        if (Archive::is_loading::value) {\n            root_node_ = new(pool_) Node();\n        }\n\n        ar & *root_node_;\n\n        if (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"leaf_max_size\"] = leaf_max_size_;\n            index_params_[\"reorder\"] = reorder_;\n        }\n    }\n\n\n    void saveIndex(FILE* stream)\n    {\n        serialization::SaveArchive sa(stream);\n        sa & *this;\n    }\n\n\n    void loadIndex(FILE* stream)\n    {\n        freeIndex();\n        serialization::LoadArchive la(stream);\n        la & *this;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+size_*sizeof(int);  // pool memory and vind array memory\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     maxCheck = the maximum number of restarts (in a best-bin-first manner)\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n        float epsError = 1+searchParams.eps;\n\n        std::vector<DistanceType> dists(veclen_,0);\n        DistanceType distsq = computeInitialDistances(vec, dists);\n        if (removed_) {\n            searchLevel<true>(result, vec, root_node_, distsq, dists, epsError);\n        }\n        else {\n            searchLevel<false>(result, vec, root_node_, distsq, dists, epsError);\n        }\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        // Create a permutable array of indices to the input vectors.\n        vind_.resize(size_);\n        for (size_t i = 0; i < size_; i++) {\n            vind_[i] = i;\n        }\n\n        computeBoundingBox(root_bbox_);\n        root_node_ = divideTree(0, size_, root_bbox_ );   // construct the tree\n\n        if (reorder_) {\n            data_ = flann::Matrix<ElementType>(new ElementType[size_*veclen_], size_, veclen_);\n            for (size_t i=0; i<size_; ++i) {\n                std::copy(points_[vind_[i]], points_[vind_[i]]+veclen_, data_[i]);\n            }\n        }\n    }\n\nprivate:\n\n\n    /*--------------------- Internal Data Structures --------------------------*/\n    struct Node\n    {\n    \t/**\n    \t * Indices of points in leaf node\n    \t */\n    \tint left, right;\n    \t/**\n    \t * Dimension used for subdivision.\n    \t */\n    \tint divfeat;\n    \t/**\n    \t * The values used for subdivision.\n    \t */\n    \tDistanceType divlow, divhigh;\n        /**\n         * The child nodes.\n         */\n        Node* child1, * child2;\n        \n        ~Node()\n        {\n            if (child1) child1->~Node();\n            if (child2) child2->~Node();\n        }\n\n    private:\n        template<typename Archive>\n        void serialize(Archive& ar)\n        {\n            typedef KDTreeSingleIndex<Distance> Index;\n            Index* obj = static_cast<Index*>(ar.getObject());\n\n            ar & left;\n            ar & right;\n            ar & divfeat;\n            ar & divlow;\n            ar & divhigh;\n\n            bool leaf_node = false;\n            if (Archive::is_saving::value) {\n                leaf_node = ((child1==NULL) && (child2==NULL));\n            }\n            ar & leaf_node;\n\n            if (!leaf_node) {\n                if (Archive::is_loading::value) {\n                    child1 = new(obj->pool_) Node();\n                    child2 = new(obj->pool_) Node();\n                }\n                ar & *child1;\n                ar & *child2;\n            }\n        }\n        friend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n\n    struct Interval\n    {\n        DistanceType low, high;\n        \n    private:\n        template <typename Archive>\n        void serialize(Archive& ar)\n        {\n            ar & low;\n            ar & high;\n        }\n        friend struct serialization::access;\n    };\n\n    typedef std::vector<Interval> BoundingBox;\n\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n    typedef BranchSt* Branch;\n\n\n    \n    void freeIndex()\n    {\n        if (data_.ptr()) {\n            delete[] data_.ptr();\n            data_ = flann::Matrix<ElementType>();\n        }\n        if (root_node_) root_node_->~Node();\n        pool_.free();\n    }\n    \n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n        dst = new(pool_) Node();\n        *dst = *src;\n        if (src->child1!=NULL && src->child2!=NULL) {\n            copyTree(dst->child1, src->child1);\n            copyTree(dst->child2, src->child2);\n        }\n    }\n\n\n\n    void computeBoundingBox(BoundingBox& bbox)\n    {\n        bbox.resize(veclen_);\n        for (size_t i=0; i<veclen_; ++i) {\n            bbox[i].low = (DistanceType)points_[0][i];\n            bbox[i].high = (DistanceType)points_[0][i];\n        }\n        for (size_t k=1; k<size_; ++k) {\n            for (size_t i=0; i<veclen_; ++i) {\n                if (points_[k][i]<bbox[i].low) bbox[i].low = (DistanceType)points_[k][i];\n                if (points_[k][i]>bbox[i].high) bbox[i].high = (DistanceType)points_[k][i];\n            }\n        }\n    }\n\n\n    /**\n     * Create a tree node that subdivides the list of vecs from vind[first]\n     * to vind[last].  The routine is called recursively on each sublist.\n     * Place a pointer to this new tree node in the location pTree.\n     *\n     * Params: pTree = the new node to create\n     *                  first = index of the first vector\n     *                  last = index of the last vector\n     */\n    NodePtr divideTree(int left, int right, BoundingBox& bbox)\n    {\n        NodePtr node = new (pool_) Node(); // allocate memory\n\n        /* If too few exemplars remain, then make this a leaf node. */\n        if ( (right-left) <= leaf_max_size_) {\n            node->child1 = node->child2 = NULL;    /* Mark as leaf node. */\n            node->left = left;\n            node->right = right;\n\n            // compute bounding-box of leaf points\n            for (size_t i=0; i<veclen_; ++i) {\n                bbox[i].low = (DistanceType)points_[vind_[left]][i];\n                bbox[i].high = (DistanceType)points_[vind_[left]][i];\n            }\n            for (int k=left+1; k<right; ++k) {\n                for (size_t i=0; i<veclen_; ++i) {\n                    if (bbox[i].low>points_[vind_[k]][i]) bbox[i].low=(DistanceType)points_[vind_[k]][i];\n                    if (bbox[i].high<points_[vind_[k]][i]) bbox[i].high=(DistanceType)points_[vind_[k]][i];\n                }\n            }\n        }\n        else {\n            int idx;\n            int cutfeat;\n            DistanceType cutval;\n            middleSplit(&vind_[0]+left, right-left, idx, cutfeat, cutval, bbox);\n\n            node->divfeat = cutfeat;\n\n            BoundingBox left_bbox(bbox);\n            left_bbox[cutfeat].high = cutval;\n            node->child1 = divideTree(left, left+idx, left_bbox);\n\n            BoundingBox right_bbox(bbox);\n            right_bbox[cutfeat].low = cutval;\n            node->child2 = divideTree(left+idx, right, right_bbox);\n\n            node->divlow = left_bbox[cutfeat].high;\n            node->divhigh = right_bbox[cutfeat].low;\n\n            for (size_t i=0; i<veclen_; ++i) {\n            \tbbox[i].low = std::min(left_bbox[i].low, right_bbox[i].low);\n            \tbbox[i].high = std::max(left_bbox[i].high, right_bbox[i].high);\n            }\n        }\n\n        return node;\n    }\n\n    void computeMinMax(int* ind, int count, int dim, ElementType& min_elem, ElementType& max_elem)\n    {\n        min_elem = points_[ind[0]][dim];\n        max_elem = points_[ind[0]][dim];\n        for (int i=1; i<count; ++i) {\n            ElementType val = points_[ind[i]][dim];\n            if (val<min_elem) min_elem = val;\n            if (val>max_elem) max_elem = val;\n        }\n    }\n\n    void middleSplit(int* ind, int count, int& index, int& cutfeat, DistanceType& cutval, const BoundingBox& bbox)\n    {\n        // find the largest span from the approximate bounding box\n        ElementType max_span = bbox[0].high-bbox[0].low;\n        cutfeat = 0;\n        cutval = (bbox[0].high+bbox[0].low)/2;\n        for (size_t i=1; i<veclen_; ++i) {\n            ElementType span = bbox[i].high-bbox[i].low;\n            if (span>max_span) {\n                max_span = span;\n                cutfeat = i;\n                cutval = (bbox[i].high+bbox[i].low)/2;\n            }\n        }\n\n        // compute exact span on the found dimension\n        ElementType min_elem, max_elem;\n        computeMinMax(ind, count, cutfeat, min_elem, max_elem);\n        cutval = (min_elem+max_elem)/2;\n        max_span = max_elem - min_elem;\n\n        // check if a dimension of a largest span exists\n        size_t k = cutfeat;\n        for (size_t i=0; i<veclen_; ++i) {\n            if (i==k) continue;\n            ElementType span = bbox[i].high-bbox[i].low;\n            if (span>max_span) {\n                computeMinMax(ind, count, i, min_elem, max_elem);\n                span = max_elem - min_elem;\n                if (span>max_span) {\n                    max_span = span;\n                    cutfeat = i;\n                    cutval = (min_elem+max_elem)/2;\n                }\n            }\n        }\n        int lim1, lim2;\n        planeSplit(ind, count, cutfeat, cutval, lim1, lim2);\n\n        if (lim1>count/2) index = lim1;\n        else if (lim2<count/2) index = lim2;\n        else index = count/2;\n        \n        assert(index > 0 && index < count);\n    }\n\n\n    void middleSplit_(int* ind, int count, int& index, int& cutfeat, DistanceType& cutval, const BoundingBox& bbox)\n    {\n        const float eps_val=0.00001f;\n        DistanceType max_span = bbox[0].high-bbox[0].low;\n        for (size_t i=1; i<veclen_; ++i) {\n            DistanceType span = bbox[i].high-bbox[i].low;\n            if (span>max_span) {\n                max_span = span;\n            }\n        }\n        DistanceType max_spread = -1;\n        cutfeat = 0;\n        for (size_t i=0; i<veclen_; ++i) {\n            DistanceType span = bbox[i].high-bbox[i].low;\n            if (span>(DistanceType)((1-eps_val)*max_span)) {\n                ElementType min_elem, max_elem;\n                computeMinMax(ind, count, cutfeat, min_elem, max_elem);\n                DistanceType spread = (DistanceType)(max_elem-min_elem);\n                if (spread>max_spread) {\n                    cutfeat = i;\n                    max_spread = spread;\n                }\n            }\n        }\n        // split in the middle\n        DistanceType split_val = (bbox[cutfeat].low+bbox[cutfeat].high)/2;\n        ElementType min_elem, max_elem;\n        computeMinMax(ind, count, cutfeat, min_elem, max_elem);\n\n        if (split_val<min_elem) cutval = (DistanceType)min_elem;\n        else if (split_val>max_elem) cutval = (DistanceType)max_elem;\n        else cutval = split_val;\n\n        int lim1, lim2;\n        planeSplit(ind, count, cutfeat, cutval, lim1, lim2);\n\n        if (lim1>count/2) index = lim1;\n        else if (lim2<count/2) index = lim2;\n        else index = count/2;\n        \n        assert(index > 0 && index < count);\n    }\n\n\n    /**\n     *  Subdivide the list of points by a plane perpendicular on axe corresponding\n     *  to the 'cutfeat' dimension at 'cutval' position.\n     *\n     *  On return:\n     *  dataset[ind[0..lim1-1]][cutfeat]<cutval\n     *  dataset[ind[lim1..lim2-1]][cutfeat]==cutval\n     *  dataset[ind[lim2..count]][cutfeat]>cutval\n     */\n    void planeSplit(int* ind, int count, int cutfeat, DistanceType cutval, int& lim1, int& lim2)\n    {\n        int left = 0;\n        int right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>=cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n\n        lim1 = left;\n        right = count-1;\n        for (;; ) {\n            while (left<=right && points_[ind[left]][cutfeat]<=cutval) ++left;\n            while (left<=right && points_[ind[right]][cutfeat]>cutval) --right;\n            if (left>right) break;\n            std::swap(ind[left], ind[right]); ++left; --right;\n        }\n        lim2 = left;\n    }\n\n    DistanceType computeInitialDistances(const ElementType* vec, std::vector<DistanceType>& dists) const\n    {\n        DistanceType distsq = 0.0;\n\n        for (size_t i = 0; i < veclen_; ++i) {\n            if (vec[i] < root_bbox_[i].low) {\n                dists[i] = distance_.accum_dist(vec[i], root_bbox_[i].low, i);\n                distsq += dists[i];\n            }\n            if (vec[i] > root_bbox_[i].high) {\n                dists[i] = distance_.accum_dist(vec[i], root_bbox_[i].high, i);\n                distsq += dists[i];\n            }\n        }\n\n        return distsq;\n    }\n\n    /**\n     * Performs an exact search in the tree starting from a node.\n     */\n    template <bool with_removed>\n    void searchLevel(ResultSet<DistanceType>& result_set, const ElementType* vec, const NodePtr node, DistanceType mindistsq,\n                     std::vector<DistanceType>& dists, const float epsError) const\n    {\n        /* If this is a leaf node, then do check and return. */\n        if ((node->child1 == NULL)&&(node->child2 == NULL)) {\n            DistanceType worst_dist = result_set.worstDist();\n            for (int i=node->left; i<node->right; ++i) {\n                if (with_removed) {\n                    if (removed_points_.test(vind_[i])) continue;\n                }\n                ElementType* point = reorder_ ? data_[i] : points_[vind_[i]];\n                DistanceType dist = distance_(vec, point, veclen_, worst_dist);\n                if (dist<worst_dist) {\n                    result_set.addPoint(dist,vind_[i]);\n                }\n            }\n            return;\n        }\n\n        /* Which child branch should be taken first? */\n        int idx = node->divfeat;\n        ElementType val = vec[idx];\n        DistanceType diff1 = val - node->divlow;\n        DistanceType diff2 = val - node->divhigh;\n\n        NodePtr bestChild;\n        NodePtr otherChild;\n        DistanceType cut_dist;\n        if ((diff1+diff2)<0) {\n            bestChild = node->child1;\n            otherChild = node->child2;\n            cut_dist = distance_.accum_dist(val, node->divhigh, idx);\n        }\n        else {\n            bestChild = node->child2;\n            otherChild = node->child1;\n            cut_dist = distance_.accum_dist( val, node->divlow, idx);\n        }\n\n        /* Call recursively to search next level down. */\n        searchLevel<with_removed>(result_set, vec, bestChild, mindistsq, dists, epsError);\n\n        DistanceType dst = dists[idx];\n        mindistsq = mindistsq + cut_dist - dst;\n        dists[idx] = cut_dist;\n        if (mindistsq*epsError<=result_set.worstDist()) {\n            searchLevel<with_removed>(result_set, vec, otherChild, mindistsq, dists, epsError);\n        }\n        dists[idx] = dst;\n    }\n\n    \n    void swap(KDTreeSingleIndex& other)\n    {\n        BaseClass::swap(other);\n        std::swap(leaf_max_size_, other.leaf_max_size_);\n        std::swap(reorder_, other.reorder_);\n        std::swap(vind_, other.vind_);\n        std::swap(data_, other.data_);\n        std::swap(root_node_, other.root_node_);\n        std::swap(root_bbox_, other.root_bbox_);\n        std::swap(pool_, other.pool_);\n    }\n    \nprivate:\n\n\n\n    int leaf_max_size_;\n    \n    \n    bool reorder_;\n\n    /**\n     *  Array of indices to vectors in the dataset.\n     */\n    std::vector<int> vind_;\n\n    Matrix<ElementType> data_;\n\n    /**\n     * Array of k-d trees used to find neighbours.\n     */\n    NodePtr root_node_;\n\n    /**\n     * Root bounding box\n     */\n    BoundingBox root_bbox_;\n\n    /**\n     * Pooled memory allocator.\n     *\n     * Using a pooled memory allocator is more efficient\n     * than allocating memory directly when there is a large\n     * number small of memory allocations.\n     */\n    PooledAllocator pool_;\n\n    USING_BASECLASS_SYMBOLS\n\n};   // class KDTreeSingleIndex\n\n}\n\n#endif //FLANN_KDTREE_SINGLE_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kmeans_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\n\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        computeNodeStatistics(root_, indices);\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n\n        if (indices_length < branching) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<branching) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n\n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            start=end;\n        }\n\n        delete[] dcenters.ptr();\n    }\n\n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kmeans_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\nusing namespace std;\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        computeNodeStatistics(root_, indices);\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n\n\n\t\tcout<<size_<<endl;\n\t\tcout<<counts.size()<<endl;\n\t\tsort(counts.begin(),counts.end());\n\t\tfloat var = 0;\n\t\tfloat avg = size_*1.0 / counts.size();\n\t\tfor(int i=counts.size()-1; i>=0 ;i--)\n\t\t{\n\t\t\tfloat tmp = avg - counts[i];\n\t\t\tvar += tmp*tmp;\n\t\t}\n\t\tvar /= counts.size();\n\t\tcout<<counts[0]<<\" \"<<counts[counts.size()-1]<<\" \"<<avg<<\" \"<<var<<endl;\n\t\t//for(int i=counts.size()-1;i>=0;i--)\n\t\t\t//cout<<counts[i]<<\" \";\n\t\t//cout<<\"\\n\";\n\n\n\t\t//write index\n\t\tFILE * fp=fopen(\"index.km\",\"wb\");\n\t\tint cluster_size = clusters.size();\n\t\tfwrite(&cluster_size,sizeof(int),1,fp);\n\t\tfor(int i=0;i<cluster_size;i++)\n\t\t{\n\t\t\t_clus cc=clusters[i];\n\t\t\tfloat * center=cc.center;\n\t\t\tint * ids=cc.ids;\n\t\t\tint size = cc.size;\n\t\t\tfwrite(center,sizeof(float),veclen_,fp);\n\t\t\tfwrite(&size,sizeof(int),1,fp);\n\t\t\tfwrite(ids,sizeof(int),size,fp);\n\t\t}\n\t\tfclose(fp);\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n\n\tvector<int> counts;\n\tstruct _clus\n\t{\n\t\tint size;\n\t\tfloat * center;\n\t\tint * ids;\n\t};\n\tvector<_clus> clusters;\n\n\n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n\n        if (indices_length < branching + 6 ) {\n            node->points.resize(indices_length);\n\t\t\t//add for index\n\t\t\tcounts.push_back(indices_length);\n\t\t\tfloat* mean = new float[veclen_];\n        \tmemset(mean,0,veclen_*sizeof(float));\n        \tfor (size_t i=0; i<indices_length; ++i) {\n            \tElementType* vec = points_[indices[i]];\n            \tfor (size_t j=0; j<veclen_; ++j) {\n                \tmean[j] += vec[j];\n            \t}\n        \t}\n\t\t\tfor(int i=0;i<veclen_;i++)\n\t\t\t\tmean[i]=mean[i]/indices_length;\n\t\t\tint* ids = new int[indices_length];\n\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n\t\t\t\tids[i]=indices[i];\n            }\n\n\t\t\t_clus cc;\n\t\t\tcc.size = indices_length;\n\t\t\tcc.center = mean;\n\t\t\tcc.ids = ids;\n\t\t\tclusters.push_back(cc);\n\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<branching ) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n\n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            start=end;\n        }\n\n        delete[] dcenters.ptr();\n    }\n\n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/kmeans_index_print.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\nusing namespace std;\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        computeNodeStatistics(root_, indices);\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n\n\n\t\tcout<<size_<<endl;\n\t\tcout<<counts.size()<<endl;\n\t\tsort(counts.begin(),counts.end());\n\t\tfloat var = 0;\n\t\tfloat avg = size_*1.0 / counts.size();\n\t\tfor(int i=counts.size()-1; i>=0 ;i--)\n\t\t{\n\t\t\tfloat tmp = avg - counts[i];\n\t\t\tvar += tmp*tmp;\n\t\t}\n\t\tvar /= counts.size();\n\t\tcout<<counts[0]<<\" \"<<counts[counts.size()-1]<<\" \"<<avg<<\" \"<<var<<endl;\n\t\t//for(int i=counts.size()-1;i>=0;i--)\n\t\t\t//cout<<counts[i]<<\" \";\n\t\t//cout<<\"\\n\";\n\n\n\t\t//write index\n\t\tFILE * fp=fopen(\"index.km\",\"wb\");\n\t\tint cluster_size = clusters.size();\n\t\tfwrite(&cluster_size,sizeof(int),1,fp);\n\t\tfor(int i=0;i<cluster_size;i++)\n\t\t{\n\t\t\t_clus cc=clusters[i];\n\t\t\tfloat * center=cc.center;\n\t\t\tint * ids=cc.ids;\n\t\t\tint size = cc.size;\n\t\t\tfwrite(center,sizeof(float),veclen_,fp);\n\t\t\tfwrite(&size,sizeof(int),1,fp);\n\t\t\tfwrite(ids,sizeof(int),size,fp);\n\t\t}\n\t\tfclose(fp);\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n\n\tvector<int> counts;\n\tstruct _clus\n\t{\n\t\tint size;\n\t\tfloat * center;\n\t\tint * ids;\n\t};\n\tvector<_clus> clusters;\n\n\n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n\n        if (indices_length < branching + 7 ) {\n            node->points.resize(indices_length);\n\t\t\t//add for index\n\t\t\tcounts.push_back(indices_length);\n\t\t\tfloat* mean = new float[veclen_];\n        \tmemset(mean,0,veclen_*sizeof(float));\n        \tfor (size_t i=0; i<indices_length; ++i) {\n            \tElementType* vec = points_[indices[i]];\n            \tfor (size_t j=0; j<veclen_; ++j) {\n                \tmean[j] += vec[j];\n            \t}\n        \t}\n\t\t\tfor(int i=0;i<veclen_;i++)\n\t\t\t\tmean[i]=mean[i]/indices_length;\n\t\t\tint* ids = new int[indices_length];\n\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n\t\t\t\tids[i]=indices[i];\n            }\n\n\t\t\t_clus cc;\n\t\t\tcc.size = indices_length;\n\t\t\tcc.center = mean;\n\t\t\tcc.ids = ids;\n\t\t\tclusters.push_back(cc);\n\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<branching ) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n\n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            start=end;\n        }\n\n        delete[] dcenters.ptr();\n    }\n\n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/linear_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_LINEAR_INDEX_H_\n#define FLANN_LINEAR_INDEX_H_\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n\nnamespace flann\n{\n\nstruct LinearIndexParams : public IndexParams\n{\n    LinearIndexParams()\n    {\n        (* this)[\"algorithm\"] = FLANN_INDEX_LINEAR;\n    }\n};\n\ntemplate <typename Distance>\nclass LinearIndex : public NNIndex<Distance>\n{\npublic:\n\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    LinearIndex(const IndexParams& params = LinearIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n    }\n\n    LinearIndex(const Matrix<ElementType>& input_data, const IndexParams& params = LinearIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n        setDataset(input_data);\n    }\n\n    LinearIndex(const LinearIndex& other) : BaseClass(other)\n    {\n    }\n\n    LinearIndex& operator=(LinearIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~LinearIndex()\n    {\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new LinearIndex(*this);\n    }\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        extendDataset(points);\n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_LINEAR;\n    }\n\n\n    int usedMemory() const\n    {\n        return 0;\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    void findNeighbors(ResultSet<DistanceType>& resultSet, const ElementType* vec, const SearchParams& /*searchParams*/) const\n    {\n    \tif (removed_) {\n    \t\tfor (size_t i = 0; i < points_.size(); ++i) {\n    \t\t\tif (removed_points_.test(i)) continue;\n    \t\t\tDistanceType dist = distance_(points_[i], vec, veclen_);\n    \t\t\tresultSet.addPoint(dist, i);\n    \t\t}\n    \t}\n    \telse {\n    \t\tfor (size_t i = 0; i < points_.size(); ++i) {\n    \t\t\tDistanceType dist = distance_(points_[i], vec, veclen_);\n    \t\t\tresultSet.addPoint(dist, i);\n    \t\t}\n    \t}\n    }\nprotected:\n    void buildIndexImpl()\n    {\n        /* nothing to do here for linear search */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here for linear search */\n    }\n\nprivate:\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif // FLANN_LINEAR_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/linear_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_LINEAR_INDEX_H_\n#define FLANN_LINEAR_INDEX_H_\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n\nnamespace flann\n{\n\nstruct LinearIndexParams : public IndexParams\n{\n    LinearIndexParams()\n    {\n        (* this)[\"algorithm\"] = FLANN_INDEX_LINEAR;\n    }\n};\n\ntemplate <typename Distance>\nclass LinearIndex : public NNIndex<Distance>\n{\npublic:\n\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    LinearIndex(const IndexParams& params = LinearIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n    }\n\n    LinearIndex(const Matrix<ElementType>& input_data, const IndexParams& params = LinearIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n        setDataset(input_data);\n    }\n\n    LinearIndex(const LinearIndex& other) : BaseClass(other)\n    {\n    }\n\n    LinearIndex& operator=(LinearIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~LinearIndex()\n    {\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new LinearIndex(*this);\n    }\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        extendDataset(points);\n    }\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_LINEAR;\n    }\n\n\n    int usedMemory() const\n    {\n        return 0;\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    void findNeighbors(ResultSet<DistanceType>& resultSet, const ElementType* vec, const SearchParams& /*searchParams*/) const\n    {\n    \tif (removed_) {\n    \t\tfor (size_t i = 0; i < points_.size(); ++i) {\n    \t\t\tif (removed_points_.test(i)) continue;\n    \t\t\tDistanceType dist = distance_(points_[i], vec, veclen_);\n    \t\t\tresultSet.addPoint(dist, i);\n\t\t\t\tstd::cout<<i<<std::endl;\n    \t\t}\n    \t}\n    \telse {\n    \t\tfor (size_t i = 0; i < points_.size(); ++i) {\n    \t\t\tDistanceType dist = distance_(points_[i], vec, veclen_);\n    \t\t\tresultSet.addPoint(dist, i);\n\t\t\t\tstd::cout<<i<<std::endl;\n    \t\t}\n    \t}\n    }\nprotected:\n    void buildIndexImpl()\n    {\n        /* nothing to do here for linear search */\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here for linear search */\n    }\n\nprivate:\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif // FLANN_LINEAR_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/lsh_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n/***********************************************************************\n * Author: Vincent Rabaud\n *************************************************************************/\n\n#ifndef FLANN_LSH_INDEX_H_\n#define FLANN_LSH_INDEX_H_\n\n#include <algorithm>\n#include <cassert>\n#include <cstring>\n#include <map>\n#include <vector>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/lsh_table.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n\nnamespace flann\n{\n\nstruct LshIndexParams : public IndexParams\n{\n    LshIndexParams(unsigned int table_number = 12, unsigned int key_size = 20, unsigned int multi_probe_level = 2)\n    {\n        (* this)[\"algorithm\"] = FLANN_INDEX_LSH;\n        // The number of hash tables to use\n        (*this)[\"table_number\"] = table_number;\n        // The length of the key in the hash tables\n        (*this)[\"key_size\"] = key_size;\n        // Number of levels to use in multi-probe (0 for standard LSH)\n        (*this)[\"multi_probe_level\"] = multi_probe_level;\n    }\n};\n\n/**\n * Randomized kd-tree index\n *\n * Contains the k-d trees and other information for indexing a set of points\n * for nearest-neighbor matching.\n */\ntemplate<typename Distance>\nclass LshIndex : public NNIndex<Distance>\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    /** Constructor\n     * @param params parameters passed to the LSH algorithm\n     * @param d the distance used\n     */\n    LshIndex(const IndexParams& params = LshIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n        table_number_ = get_param<unsigned int>(index_params_,\"table_number\",12);\n        key_size_ = get_param<unsigned int>(index_params_,\"key_size\",20);\n        multi_probe_level_ = get_param<unsigned int>(index_params_,\"multi_probe_level\",2);\n\n        fill_xor_mask(0, key_size_, multi_probe_level_, xor_masks_);\n    }\n\n\n    /** Constructor\n     * @param input_data dataset with the input features\n     * @param params parameters passed to the LSH algorithm\n     * @param d the distance used\n     */\n    LshIndex(const Matrix<ElementType>& input_data, const IndexParams& params = LshIndexParams(), Distance d = Distance()) :\n    \tBaseClass(params, d)\n    {\n        table_number_ = get_param<unsigned int>(index_params_,\"table_number\",12);\n        key_size_ = get_param<unsigned int>(index_params_,\"key_size\",20);\n        multi_probe_level_ = get_param<unsigned int>(index_params_,\"multi_probe_level\",2);\n\n        fill_xor_mask(0, key_size_, multi_probe_level_, xor_masks_);\n\n        setDataset(input_data);\n    }\n\n    LshIndex(const LshIndex& other) : BaseClass(other),\n    \ttables_(other.tables_),\n    \ttable_number_(other.table_number_),\n    \tkey_size_(other.key_size_),\n    \tmulti_probe_level_(other.multi_probe_level_),\n    \txor_masks_(other.xor_masks_)\n    {\n    }\n    \n    LshIndex& operator=(LshIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~LshIndex()\n    {\n    \tfreeIndex();\n    }\n\n\n    BaseClass* clone() const\n    {\n    \treturn new LshIndex(*this);\n    }\n    \n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (unsigned int i = 0; i < table_number_; ++i) {\n                lsh::LshTable<ElementType>& table = tables_[i];                \n                for (size_t i=old_size;i<size_;++i) {\n                    table.add(i, points_[i]);\n                }            \n            }\n        }\n    }\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_LSH;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & table_number_;\n    \tar & key_size_;\n    \tar & multi_probe_level_;\n\n    \tar & xor_masks_;\n    \tar & tables_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"table_number\"] = table_number_;\n            index_params_[\"key_size\"] = key_size_;\n            index_params_[\"multi_probe_level\"] = multi_probe_level_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Computes the index memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return size_ * sizeof(int);\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n    \t\t\t\t\tMatrix<size_t>& indices,\n    \t\t\t\t\tMatrix<DistanceType>& dists,\n    \t\t\t\t\tsize_t knn,\n    \t\t\t\t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen_);\n        assert(indices.rows >= queries.rows);\n        assert(dists.rows >= queries.rows);\n        assert(indices.cols >= knn);\n        assert(dists.cols >= knn);\n\n        int count = 0;\n        if (params.use_heap==FLANN_True) {\n#pragma omp parallel num_threads(params.cores)\n        \t{\n        \t\tKNNUniqueResultSet<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n        \t\tfor (int i = 0; i < (int)queries.rows; i++) {\n        \t\t\tresultSet.clear();\n        \t\t\tfindNeighbors(resultSet, queries[i], params);\n        \t\t\tsize_t n = std::min(resultSet.size(), knn);\n        \t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n        \t\t\tindices_to_ids(indices[i], indices[i], n);\n        \t\t\tcount += n;\n        \t\t}\n        \t}\n        }\n        else {\n#pragma omp parallel num_threads(params.cores)\n        \t{\n        \t\tKNNResultSet<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n        \t\tfor (int i = 0; i < (int)queries.rows; i++) {\n        \t\t\tresultSet.clear();\n        \t\t\tfindNeighbors(resultSet, queries[i], params);\n        \t\t\tsize_t n = std::min(resultSet.size(), knn);\n        \t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n        \t\t\tindices_to_ids(indices[i], indices[i], n);\n        \t\t\tcount += n;\n        \t\t}\n        \t}\n        }\n\n        return count;\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n\t\t\t\t\tstd::vector< std::vector<size_t> >& indices,\n\t\t\t\t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\t\t\tsize_t knn,\n    \t\t\t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen_);\n\t\tif (indices.size() < queries.rows ) indices.resize(queries.rows);\n\t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n\t\tint count = 0;\n\t\tif (params.use_heap==FLANN_True) {\n#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNUniqueResultSet<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n > 0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNResultSet<DistanceType> resultSet(knn);\n#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n > 0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn count;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     maxCheck = the maximum number of restarts (in a best-bin-first manner)\n     */\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& /*searchParams*/) const\n    {\n        getNeighbors(vec, result);\n    }\n\nprotected:\n\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        tables_.resize(table_number_);\n        std::vector<std::pair<size_t,ElementType*> > features;\n        features.reserve(points_.size());\n        for (size_t i=0;i<points_.size();++i) {\n        \tfeatures.push_back(std::make_pair(i, points_[i]));\n        }\n        for (unsigned int i = 0; i < table_number_; ++i) {\n            lsh::LshTable<ElementType>& table = tables_[i];\n            table = lsh::LshTable<ElementType>(veclen_, key_size_);\n\n            // Add the features to the table\n            table.add(features);\n        }\n    }\n\n    void freeIndex()\n    {\n        /* nothing to do here */\n    }\n\n\nprivate:\n    /** Defines the comparator on score and index\n     */\n    typedef std::pair<float, unsigned int> ScoreIndexPair;\n    struct SortScoreIndexPairOnSecond\n    {\n        bool operator()(const ScoreIndexPair& left, const ScoreIndexPair& right) const\n        {\n            return left.second < right.second;\n        }\n    };\n\n    /** Fills the different xor masks to use when getting the neighbors in multi-probe LSH\n     * @param key the key we build neighbors from\n     * @param lowest_index the lowest index of the bit set\n     * @param level the multi-probe level we are at\n     * @param xor_masks all the xor mask\n     */\n    void fill_xor_mask(lsh::BucketKey key, int lowest_index, unsigned int level,\n                       std::vector<lsh::BucketKey>& xor_masks)\n    {\n        xor_masks.push_back(key);\n        if (level == 0) return;\n        for (int index = lowest_index - 1; index >= 0; --index) {\n            // Create a new key\n            lsh::BucketKey new_key = key | (1 << index);\n            fill_xor_mask(new_key, index, level - 1, xor_masks);\n        }\n    }\n\n    /** Performs the approximate nearest-neighbor search.\n     * @param vec the feature to analyze\n     * @param do_radius flag indicating if we check the radius too\n     * @param radius the radius if it is a radius search\n     * @param do_k flag indicating if we limit the number of nn\n     * @param k_nn the number of nearest neighbors\n     * @param checked_average used for debugging\n     */\n    void getNeighbors(const ElementType* vec, bool do_radius, float radius, bool do_k, unsigned int k_nn,\n                      float& checked_average)\n    {\n        static std::vector<ScoreIndexPair> score_index_heap;\n\n        if (do_k) {\n            unsigned int worst_score = std::numeric_limits<unsigned int>::max();\n            typename std::vector<lsh::LshTable<ElementType> >::const_iterator table = tables_.begin();\n            typename std::vector<lsh::LshTable<ElementType> >::const_iterator table_end = tables_.end();\n            for (; table != table_end; ++table) {\n                size_t key = table->getKey(vec);\n                std::vector<lsh::BucketKey>::const_iterator xor_mask = xor_masks_.begin();\n                std::vector<lsh::BucketKey>::const_iterator xor_mask_end = xor_masks_.end();\n                for (; xor_mask != xor_mask_end; ++xor_mask) {\n                    size_t sub_key = key ^ (*xor_mask);\n                    const lsh::Bucket* bucket = table->getBucketFromKey(sub_key);\n                    if (bucket == 0) continue;\n\n                    // Go over each descriptor index\n                    std::vector<lsh::FeatureIndex>::const_iterator training_index = bucket->begin();\n                    std::vector<lsh::FeatureIndex>::const_iterator last_training_index = bucket->end();\n                    DistanceType hamming_distance;\n\n                    // Process the rest of the candidates\n                    for (; training_index < last_training_index; ++training_index) {\n                    \tif (removed_ && removed_points_.test(*training_index)) continue;\n                        hamming_distance = distance_(vec, points_[*training_index].point, veclen_);\n\n                        if (hamming_distance < worst_score) {\n                            // Insert the new element\n                            score_index_heap.push_back(ScoreIndexPair(hamming_distance, training_index));\n                            std::push_heap(score_index_heap.begin(), score_index_heap.end());\n\n                            if (score_index_heap.size() > (unsigned int)k_nn) {\n                                // Remove the highest distance value as we have too many elements\n                                std::pop_heap(score_index_heap.begin(), score_index_heap.end());\n                                score_index_heap.pop_back();\n                                // Keep track of the worst score\n                                worst_score = score_index_heap.front().first;\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        else {\n            typename std::vector<lsh::LshTable<ElementType> >::const_iterator table = tables_.begin();\n            typename std::vector<lsh::LshTable<ElementType> >::const_iterator table_end = tables_.end();\n            for (; table != table_end; ++table) {\n                size_t key = table->getKey(vec);\n                std::vector<lsh::BucketKey>::const_iterator xor_mask = xor_masks_.begin();\n                std::vector<lsh::BucketKey>::const_iterator xor_mask_end = xor_masks_.end();\n                for (; xor_mask != xor_mask_end; ++xor_mask) {\n                    size_t sub_key = key ^ (*xor_mask);\n                    const lsh::Bucket* bucket = table->getBucketFromKey(sub_key);\n                    if (bucket == 0) continue;\n\n                    // Go over each descriptor index\n                    std::vector<lsh::FeatureIndex>::const_iterator training_index = bucket->begin();\n                    std::vector<lsh::FeatureIndex>::const_iterator last_training_index = bucket->end();\n                    DistanceType hamming_distance;\n\n                    // Process the rest of the candidates\n                    for (; training_index < last_training_index; ++training_index) {\n                    \tif (removed_ && removed_points_.test(*training_index)) continue;\n                        // Compute the Hamming distance\n                        hamming_distance = distance_(vec, points_[*training_index].point, veclen_);\n                        if (hamming_distance < radius) score_index_heap.push_back(ScoreIndexPair(hamming_distance, training_index));\n                    }\n                }\n            }\n        }\n    }\n\n    /** Performs the approximate nearest-neighbor search.\n     * This is a slower version than the above as it uses the ResultSet\n     * @param vec the feature to analyze\n     */\n    void getNeighbors(const ElementType* vec, ResultSet<DistanceType>& result) const\n    {\n        typename std::vector<lsh::LshTable<ElementType> >::const_iterator table = tables_.begin();\n        typename std::vector<lsh::LshTable<ElementType> >::const_iterator table_end = tables_.end();\n        for (; table != table_end; ++table) {\n            size_t key = table->getKey(vec);\n            std::vector<lsh::BucketKey>::const_iterator xor_mask = xor_masks_.begin();\n            std::vector<lsh::BucketKey>::const_iterator xor_mask_end = xor_masks_.end();\n            for (; xor_mask != xor_mask_end; ++xor_mask) {\n                size_t sub_key = key ^ (*xor_mask);\n                const lsh::Bucket* bucket = table->getBucketFromKey(sub_key);\n                if (bucket == 0) continue;\n\n                // Go over each descriptor index\n                std::vector<lsh::FeatureIndex>::const_iterator training_index = bucket->begin();\n                std::vector<lsh::FeatureIndex>::const_iterator last_training_index = bucket->end();\n                DistanceType hamming_distance;\n\n                // Process the rest of the candidates\n                for (; training_index < last_training_index; ++training_index) {\n                \tif (removed_ && removed_points_.test(*training_index)) continue;\n                    // Compute the Hamming distance\n                    hamming_distance = distance_(vec, points_[*training_index], veclen_);\n                    result.addPoint(hamming_distance, *training_index);\n                }\n            }\n        }\n    }\n\n\n    void swap(LshIndex& other)\n    {\n    \tBaseClass::swap(other);\n    \tstd::swap(tables_, other.tables_);\n    \tstd::swap(size_at_build_, other.size_at_build_);\n    \tstd::swap(table_number_, other.table_number_);\n    \tstd::swap(key_size_, other.key_size_);\n    \tstd::swap(multi_probe_level_, other.multi_probe_level_);\n    \tstd::swap(xor_masks_, other.xor_masks_);\n    }\n\n    /** The different hash tables */\n    std::vector<lsh::LshTable<ElementType> > tables_;\n    \n    /** table number */\n    unsigned int table_number_;\n    /** key size */\n    unsigned int key_size_;\n    /** How far should we look for neighbors in multi-probe LSH */\n    unsigned int multi_probe_level_;\n\n    /** The XOR masks to apply to a key to get the neighboring buckets */\n    std::vector<lsh::BucketKey> xor_masks_;\n\n    USING_BASECLASS_SYMBOLS\n};\n}\n\n#endif //FLANN_LSH_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/nn_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_NNINDEX_H\n#define FLANN_NNINDEX_H\n\n#include <vector>\n\n#include \"flann/general.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/params.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/saving.h\"\n\nnamespace flann\n{\n\n#define KNN_HEAP_THRESHOLD 250\n\n\nclass IndexBase\n{\npublic:\n    virtual ~IndexBase() {};\n\n    virtual size_t veclen() const = 0;\n\n    virtual size_t size() const = 0;\n\n    virtual flann_algorithm_t getType() const = 0;\n\n    virtual int usedMemory() const = 0;\n\n    virtual IndexParams getParameters() const = 0;\n\n    virtual void loadIndex(FILE* stream) = 0;\n\n    virtual void saveIndex(FILE* stream) = 0;\n};\n\n/**\n * Nearest-neighbour index base class\n */\ntemplate <typename Distance>\nclass NNIndex : public IndexBase\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n\tNNIndex(Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tremoved_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const IndexParams& params, Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tindex_params_(params), removed_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const NNIndex& other) :\n\t\tdistance_(other.distance_),\n\t\tlast_id_(other.last_id_),\n\t\tsize_(other.size_),\n\t\tsize_at_build_(other.size_at_build_),\n\t\tveclen_(other.veclen_),\n\t\tindex_params_(other.index_params_),\n\t\tremoved_(other.removed_),\n\t\tremoved_points_(other.removed_points_),\n\t\tremoved_count_(other.removed_count_),\n\t\tids_(other.ids_),\n\t\tpoints_(other.points_),\n\t\tdata_ptr_(NULL)\n\t{\n\t\tif (other.data_ptr_) {\n\t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n\t\t\tstd::copy(other.data_ptr_, other.data_ptr_+size_*veclen_, data_ptr_);\n\t\t\tfor (size_t i=0;i<size_;++i) {\n\t\t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n\t\t\t}\n\t\t}\n\t}\n\n\tvirtual ~NNIndex()\n\t{\n\t\tif (data_ptr_) {\n\t\t\tdelete[] data_ptr_;\n\t\t}\n\t}\n\n\n\tvirtual NNIndex* clone() const = 0;\n\n\t/**\n\t * Builds the index\n\t */\n\tvirtual void buildIndex()\n\t{\n    \tfreeIndex();\n    \tcleanRemovedPoints();\n\n    \t// building index\n\t\tbuildIndexImpl();\n\n        size_at_build_ = size_;\n\n\t}\n\n\t/**\n\t * Builds th index using using the specified dataset\n\t * @param dataset the dataset to use\n\t */\n    virtual void buildIndex(const Matrix<ElementType>& dataset)\n    {\n        setDataset(dataset);\n        this->buildIndex();\n    }\n\n\t/**\n\t * @brief Incrementally add points to the index.\n\t * @param points Matrix with points to be added\n\t * @param rebuild_threshold\n\t */\n    virtual void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        throw FLANNException(\"Functionality not supported by this index\");\n    }\n\n    /**\n     * Remove point from the index\n     * @param index Index of point to be removed\n     */\n    virtual void removePoint(size_t id)\n    {\n    \tif (!removed_) {\n    \t\tids_.resize(size_);\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tids_[i] = i;\n    \t\t}\n    \t\tremoved_points_.resize(size_);\n    \t\tremoved_points_.reset();\n    \t\tlast_id_ = size_;\n        \tremoved_ = true;\n    \t}\n\n    \tsize_t point_index = id_to_index(id);\n    \tif (point_index!=size_t(-1) && !removed_points_.test(point_index)) {\n    \t\tremoved_points_.set(point_index);\n    \t\tremoved_count_++;\n    \t}\n    }\n\n\n    /**\n     * Get point with specific id\n     * @param id\n     * @return\n     */\n    virtual ElementType* getPoint(size_t id)\n    {\n    \tsize_t index = id_to_index(id);\n    \tif (index!=size_t(-1)) {\n    \t\treturn points_[index];\n    \t}\n    \telse {\n    \t\treturn NULL;\n    \t}\n    }\n\n    /**\n     * @return number of features in this index.\n     */\n    inline size_t size() const\n    {\n    \treturn size_ - removed_count_;\n    }\n\n    /**\n     * @return The dimensionality of the features in this index.\n     */\n    inline size_t veclen() const\n    {\n        return veclen_;\n    }\n\n    /**\n     * Returns the parameters used by the index.\n     *\n     * @return The index parameters\n     */\n    IndexParams getParameters() const\n    {\n        return index_params_;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tIndexHeader header;\n\n    \tif (Archive::is_saving::value) {\n    \t\theader.data_type = flann_datatype_value<ElementType>::value;\n    \t\theader.index_type = getType();\n    \t\theader.rows = size_;\n    \t\theader.cols = veclen_;\n    \t}\n    \tar & header;\n\n    \t// sanity checks\n    \tif (Archive::is_loading::value) {\n    \t    if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) {\n    \t        throw FLANNException(\"Invalid index file, wrong signature\");\n    \t    }\n            if (header.data_type != flann_datatype_value<ElementType>::value) {\n                throw FLANNException(\"Datatype of saved index is different than of the one to be created.\");\n            }\n            if (header.index_type != getType()) {\n                throw FLANNException(\"Saved index type is different then the current index type.\");\n            }\n            // TODO: check for distance type\n\n    \t}\n\n    \tar & size_;\n    \tar & veclen_;\n    \tar & size_at_build_;\n\n    \tbool save_dataset;\n    \tif (Archive::is_saving::value) {\n    \t\tsave_dataset = get_param(index_params_,\"save_dataset\", false);\n    \t}\n    \tar & save_dataset;\n\n    \tif (save_dataset) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tif (data_ptr_) {\n    \t\t\t\tdelete[] data_ptr_;\n    \t\t\t}\n    \t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n    \t\t\tpoints_.resize(size_);\n        \t\tfor (size_t i=0;i<size_;++i) {\n        \t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n        \t\t}\n    \t\t}\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tar & serialization::make_binary_object (points_[i], veclen_*sizeof(ElementType));\n    \t\t}\n    \t} else {\n    \t\tif (points_.size()!=size_) {\n    \t\t\tthrow FLANNException(\"Saved index does not contain the dataset and no dataset was provided.\");\n    \t\t}\n    \t}\n\n    \tar & last_id_;\n    \tar & ids_;\n    \tar & removed_;\n    \tif (removed_) {\n    \t\tar & removed_points_;\n    \t}\n    \tar & removed_count_;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    virtual int knnSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tsize_t knn,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tassert(indices.rows >= queries.rows);\n    \tassert(dists.rows >= queries.rows);\n    \tassert(indices.cols >= knn);\n    \tassert(dists.cols >= knn);\n    \tbool use_heap;\n\n    \tif (params.use_heap==FLANN_Undefined) {\n    \t\tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n    \t}\n    \telse {\n    \t\tuse_heap = (params.use_heap==FLANN_True)?true:false;\n    \t}\n    \tint count = 0;\n    \tif (use_heap) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<int>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n\t\t\t\t\tstd::vector< std::vector<size_t> >& indices,\n\t\t\t\t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\t\t\tsize_t knn,\n    \t\t\t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n        bool use_heap;\n        if (params.use_heap==FLANN_Undefined) {\n        \tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n        }\n        else {\n        \tuse_heap = (params.use_heap==FLANN_True)?true:false;\n        }\n\n        if (indices.size() < queries.rows ) indices.resize(queries.rows);\n\t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n\t\tint count = 0;\n\t\tif (use_heap) {\n//#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n//#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<int> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tint count = 0;\n    \tsize_t num_neighbors = std::min(indices.cols, dists.cols);\n    \tint max_neighbors = params.max_neighbors;\n    \tif (max_neighbors<0) max_neighbors = num_neighbors;\n    \telse max_neighbors = std::min(max_neighbors,(int)num_neighbors);\n\n    \tif (max_neighbors==0) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\t// explicitly indicated to use unbounded radius result set\n    \t\t// and we know there'll be enough room for resulting indices and dists\n    \t\tif (params.max_neighbors<0 && (num_neighbors>=size())) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif (n>num_neighbors) n = num_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, max_neighbors);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>max_neighbors) n = max_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n        return count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<int>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tstd::vector< std::vector<size_t> >& indices,\n    \t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n    \tint count = 0;\n    \t// just count neighbors\n    \tif (params.max_neighbors==0) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\tif (indices.size() < queries.rows ) indices.resize(queries.rows);\n    \t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n    \t\tif (params.max_neighbors<0) {\n    \t\t\t// search for all neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, params.max_neighbors);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>params.max_neighbors) n = params.max_neighbors;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<int> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n\n    virtual void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const = 0;\n\nprotected:\n\n    virtual void freeIndex() = 0;\n\n    virtual void buildIndexImpl() = 0;\n\n    size_t id_to_index(size_t id)\n    {\n    \tif (ids_.size()==0) {\n    \t\treturn id;\n    \t}\n    \tsize_t point_index = size_t(-1);\n    \tif (ids_[id]==id) {\n    \t\treturn id;\n    \t}\n    \telse {\n    \t\t// binary search\n    \t\tsize_t start = 0;\n    \t\tsize_t end = ids_.size();\n\n    \t\twhile (start<end) {\n    \t\t\tsize_t mid = (start+end)/2;\n    \t\t\tif (ids_[mid]==id) {\n    \t\t\t\tpoint_index = mid;\n    \t\t\t\tbreak;\n    \t\t\t}\n    \t\t\telse if (ids_[mid]<id) {\n    \t\t\t\tstart = mid + 1;\n    \t\t\t}\n    \t\t\telse {\n    \t\t\t\tend = mid;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn point_index;\n    }\n\n\n    void indices_to_ids(const size_t* in, size_t* out, size_t size) const\n    {\n\t\tif (removed_) {\n\t\t\tfor (size_t i=0;i<size;++i) {\n\t\t\t\tout[i] = ids_[in[i]];\n\t\t\t}\n\t\t}\n    }\n\n    void setDataset(const Matrix<ElementType>& dataset)\n    {\n    \tsize_ = dataset.rows;\n    \tveclen_ = dataset.cols;\n    \tlast_id_ = 0;\n\n    \tids_.clear();\n    \tremoved_points_.clear();\n    \tremoved_ = false;\n    \tremoved_count_ = 0;\n\n    \tpoints_.resize(size_);\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tpoints_[i] = dataset[i];\n    \t}\n    }\n\n    void extendDataset(const Matrix<ElementType>& new_points)\n    {\n    \tsize_t new_size = size_ + new_points.rows;\n    \tif (removed_) {\n    \t\tremoved_points_.resize(new_size);\n    \t\tids_.resize(new_size);\n    \t}\n    \tpoints_.resize(new_size);\n    \tfor (size_t i=size_;i<new_size;++i) {\n    \t\tpoints_[i] = new_points[i-size_];\n    \t\tif (removed_) {\n    \t\t\tids_[i] = last_id_++;\n    \t\t\tremoved_points_.reset(i);\n    \t\t}\n    \t}\n    \tsize_ = new_size;\n    }\n\n\n    void cleanRemovedPoints()\n    {\n    \tif (!removed_) return;\n\n    \tsize_t last_idx = 0;\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tif (!removed_points_.test(i)) {\n    \t\t\tpoints_[last_idx] = points_[i];\n    \t\t\tids_[last_idx] = ids_[i];\n    \t\t\tremoved_points_.reset(last_idx);\n    \t\t\t++last_idx;\n    \t\t}\n    \t}\n    \tpoints_.resize(last_idx);\n    \tids_.resize(last_idx);\n    \tremoved_points_.resize(last_idx);\n    \tsize_ = last_idx;\n    \tremoved_count_ = 0;\n    }\n\n    void swap(NNIndex& other)\n    {\n    \tstd::swap(distance_, other.distance_);\n    \tstd::swap(last_id_, other.last_id_);\n    \tstd::swap(size_, other.size_);\n    \tstd::swap(size_at_build_, other.size_at_build_);\n    \tstd::swap(veclen_, other.veclen_);\n    \tstd::swap(index_params_, other.index_params_);\n    \tstd::swap(removed_, other.removed_);\n    \tstd::swap(removed_points_, other.removed_points_);\n    \tstd::swap(removed_count_, other.removed_count_);\n    \tstd::swap(ids_, other.ids_);\n    \tstd::swap(points_, other.points_);\n    \tstd::swap(data_ptr_, other.data_ptr_);\n    }\n\nprotected:\n\n    /**\n     * The distance functor\n     */\n    Distance distance_;\n\n\n    /**\n     * Each index point has an associated ID. IDs are assigned sequentially in\n     * increasing order. This indicates the ID assigned to the last point added to the\n     * index.\n     */\n    size_t last_id_;\n\n    /**\n     * Number of points in the index (and database)\n     */\n    size_t size_;\n\n    /**\n     * Number of features in the dataset when the index was last built.\n     */\n    size_t size_at_build_;\n\n    /**\n     * Size of one point in the index (and database)\n     */\n    size_t veclen_;\n\n    /**\n     * Parameters of the index.\n     */\n    IndexParams index_params_;\n\n    /**\n     * Flag indicating if at least a point was removed from the index\n     */\n    bool removed_;\n\n    /**\n     * Array used to mark points removed from the index\n     */\n    DynamicBitset removed_points_;\n\n    /**\n     * Number of points removed from the index\n     */\n    size_t removed_count_;\n\n    /**\n     * Array of point IDs, returned by nearest-neighbour operations\n     */\n    std::vector<size_t> ids_;\n\n    /**\n     * Point data\n     */\n    std::vector<ElementType*> points_;\n\n    /**\n     * Pointer to dataset memory if allocated by this index, otherwise NULL\n     */\n    ElementType* data_ptr_;\n\n\n};\n\n\n#define USING_BASECLASS_SYMBOLS \\\n\t\tusing NNIndex<Distance>::distance_;\\\n\t\tusing NNIndex<Distance>::size_;\\\n\t\tusing NNIndex<Distance>::size_at_build_;\\\n\t\tusing NNIndex<Distance>::veclen_;\\\n\t\tusing NNIndex<Distance>::index_params_;\\\n\t\tusing NNIndex<Distance>::removed_points_;\\\n\t\tusing NNIndex<Distance>::ids_;\\\n\t\tusing NNIndex<Distance>::removed_;\\\n\t\tusing NNIndex<Distance>::points_;\\\n\t\tusing NNIndex<Distance>::extendDataset;\\\n\t\tusing NNIndex<Distance>::setDataset;\\\n\t\tusing NNIndex<Distance>::cleanRemovedPoints;\\\n\t\tusing NNIndex<Distance>::indices_to_ids;\n\n\n\n}\n\n\n#endif //FLANN_NNINDEX_H\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/algorithms/nn_index.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_NNINDEX_H\n#define FLANN_NNINDEX_H\n\n#include <vector>\n\n#include \"flann/general.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/params.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/saving.h\"\n\nnamespace flann\n{\n\n#define KNN_HEAP_THRESHOLD 250\n\n\nclass IndexBase\n{\npublic:\n    virtual ~IndexBase() {};\n\n    virtual size_t veclen() const = 0;\n\n    virtual size_t size() const = 0;\n\n    virtual flann_algorithm_t getType() const = 0;\n\n    virtual int usedMemory() const = 0;\n\n    virtual IndexParams getParameters() const = 0;\n\n    virtual void loadIndex(FILE* stream) = 0;\n\n    virtual void saveIndex(FILE* stream) = 0;\n};\n\n/**\n * Nearest-neighbour index base class\n */\ntemplate <typename Distance>\nclass NNIndex : public IndexBase\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n\tNNIndex(Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tremoved_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const IndexParams& params, Distance d) : distance_(d), last_id_(0), size_(0), size_at_build_(0), veclen_(0),\n\t\t\tindex_params_(params), removed_(false), removed_count_(0), data_ptr_(NULL)\n\t{\n\t}\n\n\tNNIndex(const NNIndex& other) :\n\t\tdistance_(other.distance_),\n\t\tlast_id_(other.last_id_),\n\t\tsize_(other.size_),\n\t\tsize_at_build_(other.size_at_build_),\n\t\tveclen_(other.veclen_),\n\t\tindex_params_(other.index_params_),\n\t\tremoved_(other.removed_),\n\t\tremoved_points_(other.removed_points_),\n\t\tremoved_count_(other.removed_count_),\n\t\tids_(other.ids_),\n\t\tpoints_(other.points_),\n\t\tdata_ptr_(NULL)\n\t{\n\t\tif (other.data_ptr_) {\n\t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n\t\t\tstd::copy(other.data_ptr_, other.data_ptr_+size_*veclen_, data_ptr_);\n\t\t\tfor (size_t i=0;i<size_;++i) {\n\t\t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n\t\t\t}\n\t\t}\n\t}\n\n\tvirtual ~NNIndex()\n\t{\n\t\tif (data_ptr_) {\n\t\t\tdelete[] data_ptr_;\n\t\t}\n\t}\n\n\n\tvirtual NNIndex* clone() const = 0;\n\n\t/**\n\t * Builds the index\n\t */\n\tvirtual void buildIndex()\n\t{\n    \tfreeIndex();\n    \tcleanRemovedPoints();\n\n    \t// building index\n\t\tbuildIndexImpl();\n\n        size_at_build_ = size_;\n\n\t}\n\n\t/**\n\t * Builds th index using using the specified dataset\n\t * @param dataset the dataset to use\n\t */\n    virtual void buildIndex(const Matrix<ElementType>& dataset)\n    {\n        setDataset(dataset);\n        this->buildIndex();\n    }\n\n\t/**\n\t * @brief Incrementally add points to the index.\n\t * @param points Matrix with points to be added\n\t * @param rebuild_threshold\n\t */\n    virtual void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        throw FLANNException(\"Functionality not supported by this index\");\n    }\n\n    /**\n     * Remove point from the index\n     * @param index Index of point to be removed\n     */\n    virtual void removePoint(size_t id)\n    {\n    \tif (!removed_) {\n    \t\tids_.resize(size_);\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tids_[i] = i;\n    \t\t}\n    \t\tremoved_points_.resize(size_);\n    \t\tremoved_points_.reset();\n    \t\tlast_id_ = size_;\n        \tremoved_ = true;\n    \t}\n\n    \tsize_t point_index = id_to_index(id);\n    \tif (point_index!=size_t(-1) && !removed_points_.test(point_index)) {\n    \t\tremoved_points_.set(point_index);\n    \t\tremoved_count_++;\n    \t}\n    }\n\n\n    /**\n     * Get point with specific id\n     * @param id\n     * @return\n     */\n    virtual ElementType* getPoint(size_t id)\n    {\n    \tsize_t index = id_to_index(id);\n    \tif (index!=size_t(-1)) {\n    \t\treturn points_[index];\n    \t}\n    \telse {\n    \t\treturn NULL;\n    \t}\n    }\n\n    /**\n     * @return number of features in this index.\n     */\n    inline size_t size() const\n    {\n    \treturn size_ - removed_count_;\n    }\n\n    /**\n     * @return The dimensionality of the features in this index.\n     */\n    inline size_t veclen() const\n    {\n        return veclen_;\n    }\n\n    /**\n     * Returns the parameters used by the index.\n     *\n     * @return The index parameters\n     */\n    IndexParams getParameters() const\n    {\n        return index_params_;\n    }\n\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tIndexHeader header;\n\n    \tif (Archive::is_saving::value) {\n    \t\theader.data_type = flann_datatype_value<ElementType>::value;\n    \t\theader.index_type = getType();\n    \t\theader.rows = size_;\n    \t\theader.cols = veclen_;\n    \t}\n    \tar & header;\n\n    \t// sanity checks\n    \tif (Archive::is_loading::value) {\n    \t    if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) {\n    \t        throw FLANNException(\"Invalid index file, wrong signature\");\n    \t    }\n            if (header.data_type != flann_datatype_value<ElementType>::value) {\n                throw FLANNException(\"Datatype of saved index is different than of the one to be created.\");\n            }\n            if (header.index_type != getType()) {\n                throw FLANNException(\"Saved index type is different then the current index type.\");\n            }\n            // TODO: check for distance type\n\n    \t}\n\n    \tar & size_;\n    \tar & veclen_;\n    \tar & size_at_build_;\n\n    \tbool save_dataset;\n    \tif (Archive::is_saving::value) {\n    \t\tsave_dataset = get_param(index_params_,\"save_dataset\", false);\n    \t}\n    \tar & save_dataset;\n\n    \tif (save_dataset) {\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tif (data_ptr_) {\n    \t\t\t\tdelete[] data_ptr_;\n    \t\t\t}\n    \t\t\tdata_ptr_ = new ElementType[size_*veclen_];\n    \t\t\tpoints_.resize(size_);\n        \t\tfor (size_t i=0;i<size_;++i) {\n        \t\t\tpoints_[i] = data_ptr_ + i*veclen_;\n        \t\t}\n    \t\t}\n    \t\tfor (size_t i=0;i<size_;++i) {\n    \t\t\tar & serialization::make_binary_object (points_[i], veclen_*sizeof(ElementType));\n    \t\t}\n    \t} else {\n    \t\tif (points_.size()!=size_) {\n    \t\t\tthrow FLANNException(\"Saved index does not contain the dataset and no dataset was provided.\");\n    \t\t}\n    \t}\n\n    \tar & last_id_;\n    \tar & ids_;\n    \tar & removed_;\n    \tif (removed_) {\n    \t\tar & removed_points_;\n    \t}\n    \tar & removed_count_;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    virtual int knnSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tsize_t knn,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tassert(indices.rows >= queries.rows);\n    \tassert(dists.rows >= queries.rows);\n    \tassert(indices.cols >= knn);\n    \tassert(dists.cols >= knn);\n    \tbool use_heap;\n\n    \tif (params.use_heap==FLANN_Undefined) {\n    \t\tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n    \t}\n    \telse {\n    \t\tuse_heap = (params.use_heap==FLANN_True)?true:false;\n    \t}\n    \tint count = 0;\n\t\t//std::cout<<params.cores<<std::endl;\n\t    //std::cout<<use_heap<<std::endl;\n    \tif (use_heap) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n    \t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n    \t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\tcount += n;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<int>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n\n    /**\n     * @brief Perform k-nearest neighbor search\n     * @param[in] queries The query points for which to find the nearest neighbors\n     * @param[out] indices The indices of the nearest neighbors found\n     * @param[out] dists Distances to the nearest neighbors found\n     * @param[in] knn Number of nearest neighbors to return\n     * @param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n\t\t\t\t\tstd::vector< std::vector<size_t> >& indices,\n\t\t\t\t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\t\t\tsize_t knn,\n    \t\t\t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n        bool use_heap;\n        if (params.use_heap==FLANN_Undefined) {\n        \tuse_heap = (knn>KNN_HEAP_THRESHOLD)?true:false;\n        }\n        else {\n        \tuse_heap = (params.use_heap==FLANN_True)?true:false;\n        }\n\n        if (indices.size() < queries.rows ) indices.resize(queries.rows);\n\t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n\t\tint count = 0;\n\t\tif (use_heap) {\n//#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNResultSet2<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n//#pragma omp parallel num_threads(params.cores)\n\t\t\t{\n\t\t\t\tKNNSimpleResultSet<DistanceType> resultSet(knn);\n//#pragma omp for schedule(static) reduction(+:count)\n\t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n\t\t\t\t\tresultSet.clear();\n\t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n\t\t\t\t\tsize_t n = std::min(resultSet.size(), knn);\n\t\t\t\t\tindices[i].resize(n);\n\t\t\t\t\tdists[i].resize(n);\n\t\t\t\t\tif (n>0) {\n\t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n\t\t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n\t\t\t\t\t}\n\t\t\t\t\tcount += n;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<int> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = knnSearch(queries, indices_, dists, knn, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tMatrix<size_t>& indices,\n    \t\tMatrix<DistanceType>& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n    \tassert(queries.cols == veclen());\n    \tint count = 0;\n    \tsize_t num_neighbors = std::min(indices.cols, dists.cols);\n    \tint max_neighbors = params.max_neighbors;\n    \tif (max_neighbors<0) max_neighbors = num_neighbors;\n    \telse max_neighbors = std::min(max_neighbors,(int)num_neighbors);\n\n    \tif (max_neighbors==0) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\t// explicitly indicated to use unbounded radius result set\n    \t\t// and we know there'll be enough room for resulting indices and dists\n    \t\tif (params.max_neighbors<0 && (num_neighbors>=size())) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif (n>num_neighbors) n = num_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, max_neighbors);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>max_neighbors) n = max_neighbors;\n    \t\t\t\t\tresultSet.copy(indices[i], dists[i], n, params.sorted);\n\n    \t\t\t\t\t// mark the next element in the output buffers as unused\n    \t\t\t\t\tif (n<indices.cols) indices[i][n] = size_t(-1);\n    \t\t\t\t\tif (n<dists.cols) dists[i][n] = std::numeric_limits<DistanceType>::infinity();\n    \t\t\t\t\tindices_to_ids(indices[i], indices[i], n);\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n        return count;\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<int>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tflann::Matrix<size_t> indices_(new size_t[indices.rows*indices.cols], indices.rows, indices.cols);\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tfor (size_t i=0;i<indices.rows;++i) {\n    \t\tfor (size_t j=0;j<indices.cols;++j) {\n    \t\t\tindices[i][j] = indices_[i][j];\n    \t\t}\n    \t}\n        delete[] indices_.ptr();\n    \treturn result;\n    }\n\n    /**\n     * @brief Perform radius search\n     * @param[in] query The query point\n     * @param[out] indices The indinces of the neighbors found within the given radius\n     * @param[out] dists The distances to the nearest neighbors found\n     * @param[in] radius The radius used for search\n     * @param[in] params Search parameters\n     * @return Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n    \t\tstd::vector< std::vector<size_t> >& indices,\n    \t\tstd::vector<std::vector<DistanceType> >& dists,\n    \t\tfloat radius,\n    \t\tconst SearchParams& params) const\n    {\n        assert(queries.cols == veclen());\n    \tint count = 0;\n    \t// just count neighbors\n    \tif (params.max_neighbors==0) {\n//#pragma omp parallel num_threads(params.cores)\n    \t\t{\n    \t\t\tCountRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\tresultSet.clear();\n    \t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\tcount += resultSet.size();\n    \t\t\t}\n    \t\t}\n    \t}\n    \telse {\n    \t\tif (indices.size() < queries.rows ) indices.resize(queries.rows);\n    \t\tif (dists.size() < queries.rows ) dists.resize(queries.rows);\n\n    \t\tif (params.max_neighbors<0) {\n    \t\t\t// search for all neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tRadiusResultSet<DistanceType> resultSet(radius);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t\telse {\n    \t\t\t// number of neighbors limited to max_neighbors\n//#pragma omp parallel num_threads(params.cores)\n    \t\t\t{\n    \t\t\t\tKNNRadiusResultSet<DistanceType> resultSet(radius, params.max_neighbors);\n//#pragma omp for schedule(static) reduction(+:count)\n    \t\t\t\tfor (int i = 0; i < (int)queries.rows; i++) {\n    \t\t\t\t\tresultSet.clear();\n    \t\t\t\t\tfindNeighbors(resultSet, queries[i], params);\n    \t\t\t\t\tsize_t n = resultSet.size();\n    \t\t\t\t\tcount += n;\n    \t\t\t\t\tif ((int)n>params.max_neighbors) n = params.max_neighbors;\n    \t\t\t\t\tindices[i].resize(n);\n    \t\t\t\t\tdists[i].resize(n);\n    \t\t\t\t\tif (n > 0) {\n    \t\t\t\t\t\tresultSet.copy(&indices[i][0], &dists[i][0], n, params.sorted);\n        \t\t\t\t\tindices_to_ids(&indices[i][0], &indices[i][0], n);\n    \t\t\t\t\t}\n    \t\t\t\t}\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn count;\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<int> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \tstd::vector<std::vector<size_t> > indices_;\n    \tint result = radiusSearch(queries, indices_, dists, radius, params);\n\n    \tindices.resize(indices_.size());\n    \tfor (size_t i=0;i<indices_.size();++i) {\n            indices[i].assign(indices_[i].begin(), indices_[i].end());\n    \t}\n    \treturn result;\n    }\n\n\n    virtual void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const = 0;\n\nprotected:\n\n    virtual void freeIndex() = 0;\n\n    virtual void buildIndexImpl() = 0;\n\n    size_t id_to_index(size_t id)\n    {\n    \tif (ids_.size()==0) {\n    \t\treturn id;\n    \t}\n    \tsize_t point_index = size_t(-1);\n    \tif (ids_[id]==id) {\n    \t\treturn id;\n    \t}\n    \telse {\n    \t\t// binary search\n    \t\tsize_t start = 0;\n    \t\tsize_t end = ids_.size();\n\n    \t\twhile (start<end) {\n    \t\t\tsize_t mid = (start+end)/2;\n    \t\t\tif (ids_[mid]==id) {\n    \t\t\t\tpoint_index = mid;\n    \t\t\t\tbreak;\n    \t\t\t}\n    \t\t\telse if (ids_[mid]<id) {\n    \t\t\t\tstart = mid + 1;\n    \t\t\t}\n    \t\t\telse {\n    \t\t\t\tend = mid;\n    \t\t\t}\n    \t\t}\n    \t}\n    \treturn point_index;\n    }\n\n\n    void indices_to_ids(const size_t* in, size_t* out, size_t size) const\n    {\n\t\tif (removed_) {\n\t\t\tfor (size_t i=0;i<size;++i) {\n\t\t\t\tout[i] = ids_[in[i]];\n\t\t\t}\n\t\t}\n    }\n\n    void setDataset(const Matrix<ElementType>& dataset)\n    {\n    \tsize_ = dataset.rows;\n    \tveclen_ = dataset.cols;\n    \tlast_id_ = 0;\n\n    \tids_.clear();\n    \tremoved_points_.clear();\n    \tremoved_ = false;\n    \tremoved_count_ = 0;\n\n    \tpoints_.resize(size_);\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tpoints_[i] = dataset[i];\n    \t}\n    }\n\n    void extendDataset(const Matrix<ElementType>& new_points)\n    {\n    \tsize_t new_size = size_ + new_points.rows;\n    \tif (removed_) {\n    \t\tremoved_points_.resize(new_size);\n    \t\tids_.resize(new_size);\n    \t}\n    \tpoints_.resize(new_size);\n    \tfor (size_t i=size_;i<new_size;++i) {\n    \t\tpoints_[i] = new_points[i-size_];\n    \t\tif (removed_) {\n    \t\t\tids_[i] = last_id_++;\n    \t\t\tremoved_points_.reset(i);\n    \t\t}\n    \t}\n    \tsize_ = new_size;\n    }\n\n\n    void cleanRemovedPoints()\n    {\n    \tif (!removed_) return;\n\n    \tsize_t last_idx = 0;\n    \tfor (size_t i=0;i<size_;++i) {\n    \t\tif (!removed_points_.test(i)) {\n    \t\t\tpoints_[last_idx] = points_[i];\n    \t\t\tids_[last_idx] = ids_[i];\n    \t\t\tremoved_points_.reset(last_idx);\n    \t\t\t++last_idx;\n    \t\t}\n    \t}\n    \tpoints_.resize(last_idx);\n    \tids_.resize(last_idx);\n    \tremoved_points_.resize(last_idx);\n    \tsize_ = last_idx;\n    \tremoved_count_ = 0;\n    }\n\n    void swap(NNIndex& other)\n    {\n    \tstd::swap(distance_, other.distance_);\n    \tstd::swap(last_id_, other.last_id_);\n    \tstd::swap(size_, other.size_);\n    \tstd::swap(size_at_build_, other.size_at_build_);\n    \tstd::swap(veclen_, other.veclen_);\n    \tstd::swap(index_params_, other.index_params_);\n    \tstd::swap(removed_, other.removed_);\n    \tstd::swap(removed_points_, other.removed_points_);\n    \tstd::swap(removed_count_, other.removed_count_);\n    \tstd::swap(ids_, other.ids_);\n    \tstd::swap(points_, other.points_);\n    \tstd::swap(data_ptr_, other.data_ptr_);\n    }\n\nprotected:\n\n    /**\n     * The distance functor\n     */\n    Distance distance_;\n\n\n    /**\n     * Each index point has an associated ID. IDs are assigned sequentially in\n     * increasing order. This indicates the ID assigned to the last point added to the\n     * index.\n     */\n    size_t last_id_;\n\n    /**\n     * Number of points in the index (and database)\n     */\n    size_t size_;\n\n    /**\n     * Number of features in the dataset when the index was last built.\n     */\n    size_t size_at_build_;\n\n    /**\n     * Size of one point in the index (and database)\n     */\n    size_t veclen_;\n\n    /**\n     * Parameters of the index.\n     */\n    IndexParams index_params_;\n\n    /**\n     * Flag indicating if at least a point was removed from the index\n     */\n    bool removed_;\n\n    /**\n     * Array used to mark points removed from the index\n     */\n    DynamicBitset removed_points_;\n\n    /**\n     * Number of points removed from the index\n     */\n    size_t removed_count_;\n\n    /**\n     * Array of point IDs, returned by nearest-neighbour operations\n     */\n    std::vector<size_t> ids_;\n\n    /**\n     * Point data\n     */\n    std::vector<ElementType*> points_;\n\n    /**\n     * Pointer to dataset memory if allocated by this index, otherwise NULL\n     */\n    ElementType* data_ptr_;\n\n\n};\n\n\n#define USING_BASECLASS_SYMBOLS \\\n\t\tusing NNIndex<Distance>::distance_;\\\n\t\tusing NNIndex<Distance>::size_;\\\n\t\tusing NNIndex<Distance>::size_at_build_;\\\n\t\tusing NNIndex<Distance>::veclen_;\\\n\t\tusing NNIndex<Distance>::index_params_;\\\n\t\tusing NNIndex<Distance>::removed_points_;\\\n\t\tusing NNIndex<Distance>::ids_;\\\n\t\tusing NNIndex<Distance>::removed_;\\\n\t\tusing NNIndex<Distance>::points_;\\\n\t\tusing NNIndex<Distance>::extendDataset;\\\n\t\tusing NNIndex<Distance>::setDataset;\\\n\t\tusing NNIndex<Distance>::cleanRemovedPoints;\\\n\t\tusing NNIndex<Distance>::indices_to_ids;\n\n\n\n}\n\n\n#endif //FLANN_NNINDEX_H\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/config.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_CONFIG_H_\n#define FLANN_CONFIG_H_\n\n#ifdef FLANN_VERSION_\n#undef FLANN_VERSION_\n#endif\n#define FLANN_VERSION_ \"1.8.4\"\n\n#endif /* FLANN_CONFIG_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/config.h.in",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_CONFIG_H_\n#define FLANN_CONFIG_H_\n\n#ifdef FLANN_VERSION_\n#undef FLANN_VERSION_\n#endif\n#define FLANN_VERSION_ \"${FLANN_VERSION}\"\n\n#endif /* FLANN_CONFIG_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/defines.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_DEFINES_H_\n#define FLANN_DEFINES_H_\n\n#include \"config.h\"\n\n#ifdef FLANN_EXPORT\n#undef FLANN_EXPORT\n#endif\n#ifdef WIN32\n/* win32 dll export/import directives */\n #ifdef FLANN_EXPORTS\n  #define FLANN_EXPORT __declspec(dllexport)\n #elif defined(FLANN_STATIC)\n  #define FLANN_EXPORT\n #else\n  #define FLANN_EXPORT __declspec(dllimport)\n #endif\n#else\n/* unix needs nothing */\n #define FLANN_EXPORT\n#endif\n\n#ifdef FLANN_DEPRECATED\n#undef FLANN_DEPRECATED\n#endif\n#ifdef __GNUC__\n#define FLANN_DEPRECATED __attribute__ ((deprecated))\n#elif defined(_MSC_VER)\n#define FLANN_DEPRECATED __declspec(deprecated)\n#else\n#pragma message(\"WARNING: You need to implement FLANN_DEPRECATED for this compiler\")\n#define FLANN_DEPRECATED\n#endif\n\n#undef FLANN_PLATFORM_64_BIT\n#undef FLANN_PLATFORM_32_BIT\n#if __amd64__ || __x86_64__ || _WIN64 || _M_X64\n#define FLANN_PLATFORM_64_BIT\n#else\n#define FLANN_PLATFORM_32_BIT\n#endif\n\n#undef FLANN_ARRAY_LEN\n#define FLANN_ARRAY_LEN(a) (sizeof(a)/sizeof(a[0]))\n\n#ifdef __cplusplus\nnamespace flann {\n#endif\n\n/* Nearest neighbour index algorithms */\nenum flann_algorithm_t\n{\n    FLANN_INDEX_LINEAR \t\t\t= 0,\n    FLANN_INDEX_KDTREE \t\t\t= 1,\n    FLANN_INDEX_KMEANS \t\t\t= 2,\n    FLANN_INDEX_COMPOSITE \t\t= 3,\n    FLANN_INDEX_KDTREE_SINGLE \t= 4,\n    FLANN_INDEX_HIERARCHICAL \t= 5,\n    FLANN_INDEX_LSH \t\t\t= 6,\n#ifdef FLANN_USE_CUDA\n    FLANN_INDEX_KDTREE_CUDA \t= 7,\n#endif\n    FLANN_INDEX_SAVED \t\t\t= 254,\n    FLANN_INDEX_AUTOTUNED \t\t= 255,\n};\n\nenum flann_centers_init_t\n{\n    FLANN_CENTERS_RANDOM = 0,\n    FLANN_CENTERS_GONZALES = 1,\n    FLANN_CENTERS_KMEANSPP = 2,\n};\n\nenum flann_log_level_t\n{\n    FLANN_LOG_NONE = 0,\n    FLANN_LOG_FATAL = 1,\n    FLANN_LOG_ERROR = 2,\n    FLANN_LOG_WARN = 3,\n    FLANN_LOG_INFO = 4,\n    FLANN_LOG_DEBUG = 5\n};\n\nenum flann_distance_t\n{\n    FLANN_DIST_EUCLIDEAN \t\t\t= 1,\n    FLANN_DIST_L2 \t\t\t\t\t= 1,\n    FLANN_DIST_MANHATTAN \t\t\t= 2,\n    FLANN_DIST_L1 \t\t\t\t\t= 2,\n    FLANN_DIST_MINKOWSKI \t\t\t= 3,\n    FLANN_DIST_MAX   \t\t\t\t= 4,\n    FLANN_DIST_HIST_INTERSECT  \t\t= 5,\n    FLANN_DIST_HELLINGER \t\t\t= 6,\n    FLANN_DIST_CHI_SQUARE\t\t \t= 7,\n    FLANN_DIST_KULLBACK_LEIBLER  \t= 8,\n    FLANN_DIST_HAMMING         \t\t= 9,\n    FLANN_DIST_HAMMING_LUT\t\t\t= 10,\n    FLANN_DIST_HAMMING_POPCNT   \t= 11,\n    FLANN_DIST_L2_SIMPLE\t   \t\t= 12,\n};\n\nenum flann_datatype_t\n{\n    FLANN_NONE \t\t= -1,\n    FLANN_INT8 \t\t= 0,\n    FLANN_INT16 \t= 1,\n    FLANN_INT32 \t= 2,\n    FLANN_INT64 \t= 3,\n    FLANN_UINT8 \t= 4,\n    FLANN_UINT16 \t= 5,\n    FLANN_UINT32 \t= 6,\n    FLANN_UINT64 \t= 7,\n    FLANN_FLOAT32 \t= 8,\n    FLANN_FLOAT64 \t= 9\n};\n\nenum flann_checks_t {\n    FLANN_CHECKS_UNLIMITED = -1,\n    FLANN_CHECKS_AUTOTUNED = -2,\n};\n\n#ifdef __cplusplus\n}\n#endif\n\n\n#endif /* FLANN_DEFINES_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/flann.cpp",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#define FLANN_FIRST_MATCH\n\n#include \"flann.h\"\n\n\nstruct FLANNParameters DEFAULT_FLANN_PARAMETERS = {\n    FLANN_INDEX_KDTREE,\n    32, 0.0f,\n    0, -1, 0,\n    4, 4,\n    32, 11, FLANN_CENTERS_RANDOM, 0.2f,\n    0.9f, 0.01f, 0, 0.1f,\n    FLANN_LOG_NONE, 0\n};\n\n\nusing namespace flann;\n\n\nflann::IndexParams create_parameters(FLANNParameters* p)\n{\n    flann::IndexParams params;\n\n    params[\"algorithm\"] = p->algorithm;\n\n    params[\"checks\"] = p->checks;\n    params[\"cb_index\"] = p->cb_index;\n    params[\"eps\"] = p->eps;\n\n    if (p->algorithm == FLANN_INDEX_KDTREE) {\n        params[\"trees\"] = p->trees;\n    }\n\n    if (p->algorithm == FLANN_INDEX_KDTREE_SINGLE) {\n        params[\"trees\"] = p->trees;\n        params[\"leaf_max_size\"] = p->leaf_max_size;\n    }\n\n#ifdef FLANN_USE_CUDA\n    if (p->algorithm == FLANN_INDEX_KDTREE_CUDA) {\n        params[\"leaf_max_size\"] = p->leaf_max_size;\n    }\n#endif\n\n    if (p->algorithm == FLANN_INDEX_KMEANS) {\n        params[\"branching\"] = p->branching;\n        params[\"iterations\"] = p->iterations;\n        params[\"centers_init\"] = p->centers_init;\n    }\n\n    if (p->algorithm == FLANN_INDEX_AUTOTUNED) {\n        params[\"target_precision\"] = p->target_precision;\n        params[\"build_weight\"] = p->build_weight;\n        params[\"memory_weight\"] = p->memory_weight;\n        params[\"sample_fraction\"] = p->sample_fraction;\n    }\n\n    if (p->algorithm == FLANN_INDEX_HIERARCHICAL) {\n        params[\"branching\"] = p->branching;\n        params[\"centers_init\"] = p->centers_init;\n        params[\"trees\"] = p->trees;\n        params[\"leaf_max_size\"] = p->leaf_max_size;\n    }\n\n    if (p->algorithm == FLANN_INDEX_LSH) {\n        params[\"table_number\"] = p->table_number_;\n        params[\"key_size\"] = p->key_size_;\n        params[\"multi_probe_level\"] = p->multi_probe_level_;\n    }\n\n    params[\"log_level\"] = p->log_level;\n    params[\"random_seed\"] = p->random_seed;\n\n    return params;\n}\n\nflann::SearchParams create_search_params(FLANNParameters* p)\n{\n    flann::SearchParams params;\n    params.checks = p->checks;\n    params.eps = p->eps;\n    params.sorted = p->sorted;\n    params.max_neighbors = p->max_neighbors;\n    params.cores = p->cores;\n\n    return params;\n}\n\n\nvoid update_flann_parameters(const IndexParams& params, FLANNParameters* flann_params)\n{\n\tif (has_param(params,\"algorithm\")) {\n\t\tflann_params->algorithm = get_param<flann_algorithm_t>(params,\"algorithm\");\n\t}\n\tif (has_param(params,\"trees\")) {\n\t\tflann_params->trees = get_param<int>(params,\"trees\");\n\t}\n\tif (has_param(params,\"leaf_max_size\")) {\n\t\tflann_params->leaf_max_size = get_param<int>(params,\"leaf_max_size\");\n\t}\n\tif (has_param(params,\"branching\")) {\n\t\tflann_params->branching = get_param<int>(params,\"branching\");\n\t}\n\tif (has_param(params,\"iterations\")) {\n\t\tflann_params->iterations = get_param<int>(params,\"iterations\");\n\t}\n\tif (has_param(params,\"centers_init\")) {\n\t\tflann_params->centers_init = get_param<flann_centers_init_t>(params,\"centers_init\");\n\t}\n\tif (has_param(params,\"target_precision\")) {\n\t\tflann_params->target_precision = get_param<float>(params,\"target_precision\");\n\t}\n\tif (has_param(params,\"build_weight\")) {\n\t\tflann_params->build_weight = get_param<float>(params,\"build_weight\");\n\t}\n\tif (has_param(params,\"memory_weight\")) {\n\t\tflann_params->memory_weight = get_param<float>(params,\"memory_weight\");\n\t}\n\tif (has_param(params,\"sample_fraction\")) {\n\t\tflann_params->sample_fraction = get_param<float>(params,\"sample_fraction\");\n\t}\n\tif (has_param(params,\"table_number\")) {\n\t\tflann_params->table_number_ = get_param<unsigned int>(params,\"table_number\");\n\t}\n\tif (has_param(params,\"key_size\")) {\n\t\tflann_params->key_size_ = get_param<unsigned int>(params,\"key_size\");\n\t}\n\tif (has_param(params,\"multi_probe_level\")) {\n\t\tflann_params->multi_probe_level_ = get_param<unsigned int>(params,\"multi_probe_level\");\n\t}\n\tif (has_param(params,\"log_level\")) {\n\t\tflann_params->log_level = get_param<flann_log_level_t>(params,\"log_level\");\n\t}\n\tif (has_param(params,\"random_seed\")) {\n\t\tflann_params->random_seed = get_param<long>(params,\"random_seed\");\n\t}\n}\n\n\nvoid init_flann_parameters(FLANNParameters* p)\n{\n    if (p != NULL) {\n        flann_log_verbosity(p->log_level);\n        if (p->random_seed>0) {\n            seed_random(p->random_seed);\n        }\n    }\n}\n\n\nvoid flann_log_verbosity(int level)\n{\n    flann::log_verbosity(level);\n}\n\nflann_distance_t flann_distance_type = FLANN_DIST_EUCLIDEAN;\nint flann_distance_order = 3;\n\nvoid flann_set_distance_type(flann_distance_t distance_type, int order)\n{\n    flann_distance_type = distance_type;\n    flann_distance_order = order;\n}\n\n\ntemplate<typename Distance>\nflann_index_t __flann_build_index(typename Distance::ElementType* dataset, int rows, int cols, float* speedup,\n                                  FLANNParameters* flann_params, Distance d = Distance())\n{\n    typedef typename Distance::ElementType ElementType;\n    try {\n\n        init_flann_parameters(flann_params);\n        if (flann_params == NULL) {\n            throw FLANNException(\"The flann_params argument must be non-null\");\n        }\n        IndexParams params = create_parameters(flann_params);\n        Index<Distance>* index = new Index<Distance>(Matrix<ElementType>(dataset,rows,cols), params, d);\n        index->buildIndex();\n\n        if (flann_params->algorithm==FLANN_INDEX_AUTOTUNED) {\n            IndexParams params = index->getParameters();\n            update_flann_parameters(params,flann_params);\n            SearchParams search_params = get_param<SearchParams>(params,\"search_params\");\n            *speedup = get_param<float>(params,\"speedup\");\n            flann_params->checks = search_params.checks;\n            flann_params->eps = search_params.eps;\n            flann_params->cb_index = get_param<float>(params,\"cb_index\",0.0);\n        }\n\n        return index;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return NULL;\n    }\n}\n\ntemplate<typename T>\nflann_index_t _flann_build_index(T* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_build_index<L2<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_build_index<L1<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_build_index<MinkowskiDistance<T> >(dataset, rows, cols, speedup, flann_params, MinkowskiDistance<T>(flann_distance_order));\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_build_index<HistIntersectionDistance<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_build_index<HellingerDistance<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_build_index<ChiSquareDistance<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_build_index<KL_Divergence<T> >(dataset, rows, cols, speedup, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return NULL;\n    }\n}\n\nflann_index_t flann_build_index(float* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    return _flann_build_index<float>(dataset, rows, cols, speedup, flann_params);\n}\n\nflann_index_t flann_build_index_float(float* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    return _flann_build_index<float>(dataset, rows, cols, speedup, flann_params);\n}\n\nflann_index_t flann_build_index_double(double* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    return _flann_build_index<double>(dataset, rows, cols, speedup, flann_params);\n}\n\nflann_index_t flann_build_index_byte(unsigned char* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    return _flann_build_index<unsigned char>(dataset, rows, cols, speedup, flann_params);\n}\n\nflann_index_t flann_build_index_int(int* dataset, int rows, int cols, float* speedup, FLANNParameters* flann_params)\n{\n    return _flann_build_index<int>(dataset, rows, cols, speedup, flann_params);\n}\n\ntemplate<typename Distance>\nint __flann_save_index(flann_index_t index_ptr, char* filename)\n{\n    try {\n        if (index_ptr==NULL) {\n            throw FLANNException(\"Invalid index\");\n        }\n\n        Index<Distance>* index = (Index<Distance>*)index_ptr;\n        index->save(filename);\n\n        return 0;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n}\n\ntemplate<typename T>\nint _flann_save_index(flann_index_t index_ptr, char* filename)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_save_index<L2<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_save_index<L1<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_save_index<MinkowskiDistance<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_save_index<HistIntersectionDistance<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_save_index<HellingerDistance<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_save_index<ChiSquareDistance<T> >(index_ptr, filename);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_save_index<KL_Divergence<T> >(index_ptr, filename);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\nint flann_save_index(flann_index_t index_ptr, char* filename)\n{\n    return _flann_save_index<float>(index_ptr, filename);\n}\n\nint flann_save_index_float(flann_index_t index_ptr, char* filename)\n{\n    return _flann_save_index<float>(index_ptr, filename);\n}\n\nint flann_save_index_double(flann_index_t index_ptr, char* filename)\n{\n    return _flann_save_index<double>(index_ptr, filename);\n}\n\nint flann_save_index_byte(flann_index_t index_ptr, char* filename)\n{\n    return _flann_save_index<unsigned char>(index_ptr, filename);\n}\n\nint flann_save_index_int(flann_index_t index_ptr, char* filename)\n{\n    return _flann_save_index<int>(index_ptr, filename);\n}\n\n\ntemplate<typename Distance>\nflann_index_t __flann_load_index(char* filename, typename Distance::ElementType* dataset, int rows, int cols,\n                                 Distance d = Distance())\n{\n    try {\n        Index<Distance>* index = new Index<Distance>(Matrix<typename Distance::ElementType>(dataset,rows,cols), SavedIndexParams(filename), d);\n        return index;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return NULL;\n    }\n}\n\ntemplate<typename T>\nflann_index_t _flann_load_index(char* filename, T* dataset, int rows, int cols)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_load_index<L2<T> >(filename, dataset, rows, cols);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_load_index<L1<T> >(filename, dataset, rows, cols);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_load_index<MinkowskiDistance<T> >(filename, dataset, rows, cols, MinkowskiDistance<T>(flann_distance_order));\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_load_index<HistIntersectionDistance<T> >(filename, dataset, rows, cols);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_load_index<HellingerDistance<T> >(filename, dataset, rows, cols);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_load_index<ChiSquareDistance<T> >(filename, dataset, rows, cols);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_load_index<KL_Divergence<T> >(filename, dataset, rows, cols);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return NULL;\n    }\n}\n\n\nflann_index_t flann_load_index(char* filename, float* dataset, int rows, int cols)\n{\n    return _flann_load_index<float>(filename, dataset, rows, cols);\n}\n\nflann_index_t flann_load_index_float(char* filename, float* dataset, int rows, int cols)\n{\n    return _flann_load_index<float>(filename, dataset, rows, cols);\n}\n\nflann_index_t flann_load_index_double(char* filename, double* dataset, int rows, int cols)\n{\n    return _flann_load_index<double>(filename, dataset, rows, cols);\n}\n\nflann_index_t flann_load_index_byte(char* filename, unsigned char* dataset, int rows, int cols)\n{\n    return _flann_load_index<unsigned char>(filename, dataset, rows, cols);\n}\n\nflann_index_t flann_load_index_int(char* filename, int* dataset, int rows, int cols)\n{\n    return _flann_load_index<int>(filename, dataset, rows, cols);\n}\n\n\n\ntemplate<typename Distance>\nint __flann_find_nearest_neighbors(typename Distance::ElementType* dataset,  int rows, int cols, typename Distance::ElementType* testset, int tcount,\n                                   int* result, typename Distance::ResultType* dists, int nn, FLANNParameters* flann_params, Distance d = Distance())\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    try {\n        init_flann_parameters(flann_params);\n\n        IndexParams params = create_parameters(flann_params);\n        Index<Distance>* index = new Index<Distance>(Matrix<ElementType>(dataset,rows,cols), params, d);\n        index->buildIndex();\n        Matrix<int> m_indices(result,tcount, nn);\n        Matrix<DistanceType> m_dists(dists,tcount, nn);\n        SearchParams search_params = create_search_params(flann_params);\n        index->knnSearch(Matrix<ElementType>(testset, tcount, index->veclen()),\n                         m_indices,\n                         m_dists, nn, search_params );\n        delete index;\n        return 0;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n\n    return -1;\n}\n\ntemplate<typename T, typename R>\nint _flann_find_nearest_neighbors(T* dataset,  int rows, int cols, T* testset, int tcount,\n                                  int* result, R* dists, int nn, FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_find_nearest_neighbors<L2<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_find_nearest_neighbors<L1<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_find_nearest_neighbors<MinkowskiDistance<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params, MinkowskiDistance<T>(flann_distance_order));\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_find_nearest_neighbors<HistIntersectionDistance<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_find_nearest_neighbors<HellingerDistance<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_find_nearest_neighbors<ChiSquareDistance<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_find_nearest_neighbors<KL_Divergence<T> >(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\nint flann_find_nearest_neighbors(float* dataset,  int rows, int cols, float* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_float(float* dataset,  int rows, int cols, float* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_double(double* dataset,  int rows, int cols, double* testset, int tcount, int* result, double* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_byte(unsigned char* dataset,  int rows, int cols, unsigned char* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_int(int* dataset,  int rows, int cols, int* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors(dataset, rows, cols, testset, tcount, result, dists, nn, flann_params);\n}\n\n\ntemplate<typename Distance>\nint __flann_find_nearest_neighbors_index(flann_index_t index_ptr, typename Distance::ElementType* testset, int tcount,\n                                         int* result, typename Distance::ResultType* dists, int nn, FLANNParameters* flann_params)\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    try {\n        init_flann_parameters(flann_params);\n        if (index_ptr==NULL) {\n            throw FLANNException(\"Invalid index\");\n        }\n        Index<Distance>* index = (Index<Distance>*)index_ptr;\n\n        Matrix<int> m_indices(result,tcount, nn);\n        Matrix<DistanceType> m_dists(dists, tcount, nn);\n\n        SearchParams search_params = create_search_params(flann_params);\n        index->knnSearch(Matrix<ElementType>(testset, tcount, index->veclen()),\n                         m_indices,\n                         m_dists, nn, search_params );\n\n        return 0;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n\n    return -1;\n}\n\ntemplate<typename T, typename R>\nint _flann_find_nearest_neighbors_index(flann_index_t index_ptr, T* testset, int tcount,\n                                        int* result, R* dists, int nn, FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_find_nearest_neighbors_index<L2<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_find_nearest_neighbors_index<L1<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_find_nearest_neighbors_index<MinkowskiDistance<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_find_nearest_neighbors_index<HistIntersectionDistance<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_find_nearest_neighbors_index<HellingerDistance<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_find_nearest_neighbors_index<ChiSquareDistance<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_find_nearest_neighbors_index<KL_Divergence<T> >(index_ptr, testset, tcount, result, dists, nn, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\n\nint flann_find_nearest_neighbors_index(flann_index_t index_ptr, float* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors_index(index_ptr, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_index_float(flann_index_t index_ptr, float* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors_index(index_ptr, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_index_double(flann_index_t index_ptr, double* testset, int tcount, int* result, double* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors_index(index_ptr, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_index_byte(flann_index_t index_ptr, unsigned char* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors_index(index_ptr, testset, tcount, result, dists, nn, flann_params);\n}\n\nint flann_find_nearest_neighbors_index_int(flann_index_t index_ptr, int* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)\n{\n    return _flann_find_nearest_neighbors_index(index_ptr, testset, tcount, result, dists, nn, flann_params);\n}\n\n\ntemplate<typename Distance>\nint __flann_radius_search(flann_index_t index_ptr,\n                          typename Distance::ElementType* query,\n                          int* indices,\n                          typename Distance::ResultType* dists,\n                          int max_nn,\n                          float radius,\n                          FLANNParameters* flann_params)\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    try {\n        init_flann_parameters(flann_params);\n        if (index_ptr==NULL) {\n            throw FLANNException(\"Invalid index\");\n        }\n        Index<Distance>* index = (Index<Distance>*)index_ptr;\n\n        Matrix<int> m_indices(indices, 1, max_nn);\n        Matrix<DistanceType> m_dists(dists, 1, max_nn);\n        SearchParams search_params = create_search_params(flann_params);\n        int count = index->radiusSearch(Matrix<ElementType>(query, 1, index->veclen()),\n                                        m_indices,\n                                        m_dists, radius, search_params );\n\n\n        return count;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n}\n\ntemplate<typename T, typename R>\nint _flann_radius_search(flann_index_t index_ptr,\n                         T* query,\n                         int* indices,\n                         R* dists,\n                         int max_nn,\n                         float radius,\n                         FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_radius_search<L2<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_radius_search<L1<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_radius_search<MinkowskiDistance<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_radius_search<HistIntersectionDistance<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_radius_search<HellingerDistance<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_radius_search<ChiSquareDistance<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_radius_search<KL_Divergence<T> >(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\nint flann_radius_search(flann_index_t index_ptr,\n                        float* query,\n                        int* indices,\n                        float* dists,\n                        int max_nn,\n                        float radius,\n                        FLANNParameters* flann_params)\n{\n    return _flann_radius_search(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n}\n\nint flann_radius_search_float(flann_index_t index_ptr,\n                              float* query,\n                              int* indices,\n                              float* dists,\n                              int max_nn,\n                              float radius,\n                              FLANNParameters* flann_params)\n{\n    return _flann_radius_search(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n}\n\nint flann_radius_search_double(flann_index_t index_ptr,\n                               double* query,\n                               int* indices,\n                               double* dists,\n                               int max_nn,\n                               float radius,\n                               FLANNParameters* flann_params)\n{\n    return _flann_radius_search(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n}\n\nint flann_radius_search_byte(flann_index_t index_ptr,\n                             unsigned char* query,\n                             int* indices,\n                             float* dists,\n                             int max_nn,\n                             float radius,\n                             FLANNParameters* flann_params)\n{\n    return _flann_radius_search(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n}\n\nint flann_radius_search_int(flann_index_t index_ptr,\n                            int* query,\n                            int* indices,\n                            float* dists,\n                            int max_nn,\n                            float radius,\n                            FLANNParameters* flann_params)\n{\n    return _flann_radius_search(index_ptr, query, indices, dists, max_nn, radius, flann_params);\n}\n\n\ntemplate<typename Distance>\nint __flann_free_index(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    try {\n        init_flann_parameters(flann_params);\n        if (index_ptr==NULL) {\n            throw FLANNException(\"Invalid index\");\n        }\n        Index<Distance>* index = (Index<Distance>*)index_ptr;\n        delete index;\n\n        return 0;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n}\n\ntemplate<typename T>\nint _flann_free_index(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_free_index<L2<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_free_index<L1<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_free_index<MinkowskiDistance<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_free_index<HistIntersectionDistance<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_free_index<HellingerDistance<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_free_index<ChiSquareDistance<T> >(index_ptr, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_free_index<KL_Divergence<T> >(index_ptr, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\nint flann_free_index(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    return _flann_free_index<float>(index_ptr, flann_params);\n}\n\nint flann_free_index_float(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    return _flann_free_index<float>(index_ptr, flann_params);\n}\n\nint flann_free_index_double(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    return _flann_free_index<double>(index_ptr, flann_params);\n}\n\nint flann_free_index_byte(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    return _flann_free_index<unsigned char>(index_ptr, flann_params);\n}\n\nint flann_free_index_int(flann_index_t index_ptr, FLANNParameters* flann_params)\n{\n    return _flann_free_index<int>(index_ptr, flann_params);\n}\n\n\ntemplate<typename Distance>\nint __flann_compute_cluster_centers(typename Distance::ElementType* dataset, int rows, int cols, int clusters,\n                                    typename Distance::ResultType* result, FLANNParameters* flann_params, Distance d = Distance())\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    try {\n        init_flann_parameters(flann_params);\n\n        Matrix<ElementType> inputData(dataset,rows,cols);\n        KMeansIndexParams params(flann_params->branching, flann_params->iterations, flann_params->centers_init, flann_params->cb_index);\n        Matrix<DistanceType> centers(result,clusters,cols);\n        int clusterNum = hierarchicalClustering<Distance>(inputData, centers, params, d);\n\n        return clusterNum;\n    }\n    catch (std::runtime_error& e) {\n        Logger::error(\"Caught exception: %s\\n\",e.what());\n        return -1;\n    }\n}\n\n\ntemplate<typename T, typename R>\nint _flann_compute_cluster_centers(T* dataset, int rows, int cols, int clusters, R* result, FLANNParameters* flann_params)\n{\n    if (flann_distance_type==FLANN_DIST_EUCLIDEAN) {\n        return __flann_compute_cluster_centers<L2<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MANHATTAN) {\n        return __flann_compute_cluster_centers<L1<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_MINKOWSKI) {\n        return __flann_compute_cluster_centers<MinkowskiDistance<T> >(dataset, rows, cols, clusters, result, flann_params, MinkowskiDistance<T>(flann_distance_order));\n    }\n    else if (flann_distance_type==FLANN_DIST_HIST_INTERSECT) {\n        return __flann_compute_cluster_centers<HistIntersectionDistance<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_HELLINGER) {\n        return __flann_compute_cluster_centers<HellingerDistance<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_CHI_SQUARE) {\n        return __flann_compute_cluster_centers<ChiSquareDistance<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else if (flann_distance_type==FLANN_DIST_KULLBACK_LEIBLER) {\n        return __flann_compute_cluster_centers<KL_Divergence<T> >(dataset, rows, cols, clusters, result, flann_params);\n    }\n    else {\n        Logger::error( \"Distance type unsupported in the C bindings, use the C++ bindings instead\\n\");\n        return -1;\n    }\n}\n\nint flann_compute_cluster_centers(float* dataset, int rows, int cols, int clusters, float* result, FLANNParameters* flann_params)\n{\n    return _flann_compute_cluster_centers(dataset, rows, cols, clusters, result, flann_params);\n}\n\nint flann_compute_cluster_centers_float(float* dataset, int rows, int cols, int clusters, float* result, FLANNParameters* flann_params)\n{\n    return _flann_compute_cluster_centers(dataset, rows, cols, clusters, result, flann_params);\n}\n\nint flann_compute_cluster_centers_double(double* dataset, int rows, int cols, int clusters, double* result, FLANNParameters* flann_params)\n{\n    return _flann_compute_cluster_centers(dataset, rows, cols, clusters, result, flann_params);\n}\n\nint flann_compute_cluster_centers_byte(unsigned char* dataset, int rows, int cols, int clusters, float* result, FLANNParameters* flann_params)\n{\n    return _flann_compute_cluster_centers(dataset, rows, cols, clusters, result, flann_params);\n}\n\nint flann_compute_cluster_centers_int(int* dataset, int rows, int cols, int clusters, float* result, FLANNParameters* flann_params)\n{\n    return _flann_compute_cluster_centers(dataset, rows, cols, clusters, result, flann_params);\n}\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/flann.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_H_\n#define FLANN_H_\n\n#include \"defines.h\"\n\n#ifdef __cplusplus\nextern \"C\"\n{\n    using namespace flann;\n#endif\n\n\nstruct FLANNParameters\n{\n    enum flann_algorithm_t algorithm; /* the algorithm to use */\n\n    /* search time parameters */\n    int checks;                /* how many leafs (features) to check in one search */\n    float eps;     /* eps parameter for eps-knn search */\n    int sorted;     /* indicates if results returned by radius search should be sorted or not */\n    int max_neighbors;  /* limits the maximum number of neighbors should be returned by radius search */\n    int cores;      /* number of paralel cores to use for searching */\n\n    /*  kdtree index parameters */\n    int trees;                 /* number of randomized trees to use (for kdtree) */\n    int leaf_max_size;\n\n    /* kmeans index parameters */\n    int branching;             /* branching factor (for kmeans tree) */\n    int iterations;            /* max iterations to perform in one kmeans cluetering (kmeans tree) */\n    enum flann_centers_init_t centers_init;  /* algorithm used for picking the initial cluster centers for kmeans tree */\n    float cb_index;            /* cluster boundary index. Used when searching the kmeans tree */\n\n    /* autotuned index parameters */\n    float target_precision;    /* precision desired (used for autotuning, -1 otherwise) */\n    float build_weight;        /* build tree time weighting factor */\n    float memory_weight;       /* index memory weigthing factor */\n    float sample_fraction;     /* what fraction of the dataset to use for autotuning */\n\n    /* LSH parameters */\n    unsigned int table_number_; /** The number of hash tables to use */\n    unsigned int key_size_;     /** The length of the key in the hash tables */\n    unsigned int multi_probe_level_; /** Number of levels to use in multi-probe LSH, 0 for standard LSH */\n\n    /* other parameters */\n    enum flann_log_level_t log_level;    /* determines the verbosity of each flann function */\n    long random_seed;            /* random seed to use */\n};\n\n\ntypedef void* FLANN_INDEX; /* deprecated */\ntypedef void* flann_index_t;\n\nFLANN_EXPORT extern struct FLANNParameters DEFAULT_FLANN_PARAMETERS;\n\n/**\n   Sets the log level used for all flann functions (unless\n   specified in FLANNParameters for each call\n\n   Params:\n    level = verbosity level\n */\nFLANN_EXPORT void flann_log_verbosity(int level);\n\n\n/**\n * Sets the distance type to use throughout FLANN.\n * If distance type specified is MINKOWSKI, the second argument\n * specifies which order the minkowski distance should have.\n */\nFLANN_EXPORT void flann_set_distance_type(enum flann_distance_t distance_type, int order);\n\n\n/**\n   Builds and returns an index. It uses autotuning if the target_precision field of index_params\n   is between 0 and 1, or the parameters specified if it's -1.\n\n   Params:\n    dataset = pointer to a data set stored in row major order\n    rows = number of rows (features) in the dataset\n    cols = number of columns in the dataset (feature dimensionality)\n    speedup = speedup over linear search, estimated if using autotuning, output parameter\n    index_params = index related parameters\n    flann_params = generic flann parameters\n\n   Returns: the newly created index or a number <0 for error\n */\nFLANN_EXPORT flann_index_t flann_build_index(float* dataset,\n                                             int rows,\n                                             int cols,\n                                             float* speedup,\n                                             struct FLANNParameters* flann_params);\n\nFLANN_EXPORT flann_index_t flann_build_index_float(float* dataset,\n                                                   int rows,\n                                                   int cols,\n                                                   float* speedup,\n                                                   struct FLANNParameters* flann_params);\n\nFLANN_EXPORT flann_index_t flann_build_index_double(double* dataset,\n                                                    int rows,\n                                                    int cols,\n                                                    float* speedup,\n                                                    struct FLANNParameters* flann_params);\n\nFLANN_EXPORT flann_index_t flann_build_index_byte(unsigned char* dataset,\n                                                  int rows,\n                                                  int cols,\n                                                  float* speedup,\n                                                  struct FLANNParameters* flann_params);\n\nFLANN_EXPORT flann_index_t flann_build_index_int(int* dataset,\n                                                 int rows,\n                                                 int cols,\n                                                 float* speedup,\n                                                 struct FLANNParameters* flann_params);\n\n/**\n * Saves the index to a file. Only the index is saved into the file, the dataset corresponding to the index is not saved.\n *\n * @param index_id The index that should be saved\n * @param filename The filename the index should be saved to\n * @return Returns 0 on success, negative value on error.\n */\nFLANN_EXPORT int flann_save_index(flann_index_t index_id,\n                                  char* filename);\n\nFLANN_EXPORT int flann_save_index_float(flann_index_t index_id,\n                                        char* filename);\n\nFLANN_EXPORT int flann_save_index_double(flann_index_t index_id,\n                                         char* filename);\n\nFLANN_EXPORT int flann_save_index_byte(flann_index_t index_id,\n                                       char* filename);\n\nFLANN_EXPORT int flann_save_index_int(flann_index_t index_id,\n                                      char* filename);\n\n/**\n * Loads an index from a file.\n *\n * @param filename File to load the index from.\n * @param dataset The dataset corresponding to the index.\n * @param rows Dataset tors\n * @param cols Dataset columns\n * @return\n */\nFLANN_EXPORT flann_index_t flann_load_index(char* filename,\n                                            float* dataset,\n                                            int rows,\n                                            int cols);\n\nFLANN_EXPORT flann_index_t flann_load_index_float(char* filename,\n                                                  float* dataset,\n                                                  int rows,\n                                                  int cols);\n\nFLANN_EXPORT flann_index_t flann_load_index_double(char* filename,\n                                                   double* dataset,\n                                                   int rows,\n                                                   int cols);\n\nFLANN_EXPORT flann_index_t flann_load_index_byte(char* filename,\n                                                 unsigned char* dataset,\n                                                 int rows,\n                                                 int cols);\n\nFLANN_EXPORT flann_index_t flann_load_index_int(char* filename,\n                                                int* dataset,\n                                                int rows,\n                                                int cols);\n\n\n/**\n   Builds an index and uses it to find nearest neighbors.\n\n   Params:\n    dataset = pointer to a data set stored in row major order\n    rows = number of rows (features) in the dataset\n    cols = number of columns in the dataset (feature dimensionality)\n    testset = pointer to a query set stored in row major order\n    trows = number of rows (features) in the query dataset (same dimensionality as features in the dataset)\n    indices = pointer to matrix for the indices of the nearest neighbors of the testset features in the dataset\n            (must have trows number of rows and nn number of columns)\n    nn = how many nearest neighbors to return\n    flann_params = generic flann parameters\n\n   Returns: zero or -1 for error\n */\nFLANN_EXPORT int flann_find_nearest_neighbors(float* dataset,\n                                              int rows,\n                                              int cols,\n                                              float* testset,\n                                              int trows,\n                                              int* indices,\n                                              float* dists,\n                                              int nn,\n                                              struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_float(float* dataset,\n                                                    int rows,\n                                                    int cols,\n                                                    float* testset,\n                                                    int trows,\n                                                    int* indices,\n                                                    float* dists,\n                                                    int nn,\n                                                    struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_double(double* dataset,\n                                                     int rows,\n                                                     int cols,\n                                                     double* testset,\n                                                     int trows,\n                                                     int* indices,\n                                                     double* dists,\n                                                     int nn,\n                                                     struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_byte(unsigned char* dataset,\n                                                   int rows,\n                                                   int cols,\n                                                   unsigned char* testset,\n                                                   int trows,\n                                                   int* indices,\n                                                   float* dists,\n                                                   int nn,\n                                                   struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_int(int* dataset,\n                                                  int rows,\n                                                  int cols,\n                                                  int* testset,\n                                                  int trows,\n                                                  int* indices,\n                                                  float* dists,\n                                                  int nn,\n                                                  struct FLANNParameters* flann_params);\n\n\n/**\n   Searches for nearest neighbors using the index provided\n\n   Params:\n    index_id = the index (constructed previously using flann_build_index).\n    testset = pointer to a query set stored in row major order\n    trows = number of rows (features) in the query dataset (same dimensionality as features in the dataset)\n    indices = pointer to matrix for the indices of the nearest neighbors of the testset features in the dataset\n            (must have trows number of rows and nn number of columns)\n    dists = pointer to matrix for the distances of the nearest neighbors of the testset features in the dataset\n            (must have trows number of rows and 1 column)\n    nn = how many nearest neighbors to return\n    flann_params = generic flann parameters\n\n   Returns: zero or a number <0 for error\n */\nFLANN_EXPORT int flann_find_nearest_neighbors_index(flann_index_t index_id,\n                                                    float* testset,\n                                                    int trows,\n                                                    int* indices,\n                                                    float* dists,\n                                                    int nn,\n                                                    struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_index_float(flann_index_t index_id,\n                                                          float* testset,\n                                                          int trows,\n                                                          int* indices,\n                                                          float* dists,\n                                                          int nn,\n                                                          struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_index_double(flann_index_t index_id,\n                                                           double* testset,\n                                                           int trows,\n                                                           int* indices,\n                                                           double* dists,\n                                                           int nn,\n                                                           struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_index_byte(flann_index_t index_id,\n                                                         unsigned char* testset,\n                                                         int trows,\n                                                         int* indices,\n                                                         float* dists,\n                                                         int nn,\n                                                         struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_find_nearest_neighbors_index_int(flann_index_t index_id,\n                                                        int* testset,\n                                                        int trows,\n                                                        int* indices,\n                                                        float* dists,\n                                                        int nn,\n                                                        struct FLANNParameters* flann_params);\n\n\n/**\n * Performs an radius search using an already constructed index.\n *\n * In case of radius search, instead of always returning a predetermined\n * number of nearest neighbours (for example the 10 nearest neighbours), the\n * search will return all the neighbours found within a search radius\n * of the query point.\n *\n * The check parameter in the FLANNParameters below sets the level of approximation\n * for the search by only visiting \"checks\" number of features in the index\n * (the same way as for the KNN search). A lower value for checks will give\n * a higher search speedup at the cost of potentially not returning all the\n * neighbours in the specified radius.\n */\nFLANN_EXPORT int flann_radius_search(flann_index_t index_ptr, /* the index */\n                                     float* query, /* query point */\n                                     int* indices, /* array for storing the indices found (will be modified) */\n                                     float* dists, /* similar, but for storing distances */\n                                     int max_nn,  /* size of arrays indices and dists */\n                                     float radius, /* search radius (squared radius for euclidian metric) */\n                                     struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_radius_search_float(flann_index_t index_ptr, /* the index */\n                                           float* query, /* query point */\n                                           int* indices, /* array for storing the indices found (will be modified) */\n                                           float* dists, /* similar, but for storing distances */\n                                           int max_nn,  /* size of arrays indices and dists */\n                                           float radius, /* search radius (squared radius for euclidian metric) */\n                                           struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_radius_search_double(flann_index_t index_ptr, /* the index */\n                                            double* query, /* query point */\n                                            int* indices, /* array for storing the indices found (will be modified) */\n                                            double* dists, /* similar, but for storing distances */\n                                            int max_nn,  /* size of arrays indices and dists */\n                                            float radius, /* search radius (squared radius for euclidian metric) */\n                                            struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_radius_search_byte(flann_index_t index_ptr, /* the index */\n                                          unsigned char* query, /* query point */\n                                          int* indices, /* array for storing the indices found (will be modified) */\n                                          float* dists, /* similar, but for storing distances */\n                                          int max_nn,  /* size of arrays indices and dists */\n                                          float radius, /* search radius (squared radius for euclidian metric) */\n                                          struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_radius_search_int(flann_index_t index_ptr, /* the index */\n                                         int* query, /* query point */\n                                         int* indices, /* array for storing the indices found (will be modified) */\n                                         float* dists, /* similar, but for storing distances */\n                                         int max_nn,  /* size of arrays indices and dists */\n                                         float radius, /* search radius (squared radius for euclidian metric) */\n                                         struct FLANNParameters* flann_params);\n\n/**\n   Deletes an index and releases the memory used by it.\n\n   Params:\n    index_id = the index (constructed previously using flann_build_index).\n    flann_params = generic flann parameters\n\n   Returns: zero or a number <0 for error\n */\nFLANN_EXPORT int flann_free_index(flann_index_t index_id,\n                                  struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_free_index_float(flann_index_t index_id,\n                                        struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_free_index_double(flann_index_t index_id,\n                                         struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_free_index_byte(flann_index_t index_id,\n                                       struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_free_index_int(flann_index_t index_id,\n                                      struct FLANNParameters* flann_params);\n\n/**\n   Clusters the features in the dataset using a hierarchical kmeans clustering approach.\n   This is significantly faster than using a flat kmeans clustering for a large number\n   of clusters.\n\n   Params:\n    dataset = pointer to a data set stored in row major order\n    rows = number of rows (features) in the dataset\n    cols = number of columns in the dataset (feature dimensionality)\n    clusters = number of cluster to compute\n    result = memory buffer where the output cluster centers are storred\n    index_params = used to specify the kmeans tree parameters (branching factor, max number of iterations to use)\n    flann_params = generic flann parameters\n\n   Returns: number of clusters computed or a number <0 for error. This number can be different than the number of clusters requested, due to the\n    way hierarchical clusters are computed. The number of clusters returned will be the highest number of the form\n    (branch_size-1)*K+1 smaller than the number of clusters requested.\n */\n\nFLANN_EXPORT int flann_compute_cluster_centers(float* dataset,\n                                               int rows,\n                                               int cols,\n                                               int clusters,\n                                               float* result,\n                                               struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_compute_cluster_centers_float(float* dataset,\n                                                     int rows,\n                                                     int cols,\n                                                     int clusters,\n                                                     float* result,\n                                                     struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_compute_cluster_centers_double(double* dataset,\n                                                      int rows,\n                                                      int cols,\n                                                      int clusters,\n                                                      double* result,\n                                                      struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_compute_cluster_centers_byte(unsigned char* dataset,\n                                                    int rows,\n                                                    int cols,\n                                                    int clusters,\n                                                    float* result,\n                                                    struct FLANNParameters* flann_params);\n\nFLANN_EXPORT int flann_compute_cluster_centers_int(int* dataset,\n                                                   int rows,\n                                                   int cols,\n                                                   int clusters,\n                                                   float* result,\n                                                   struct FLANNParameters* flann_params);\n\n\n#ifdef __cplusplus\n}\n\n\n#include \"flann.hpp\"\n\n#endif\n\n\n#endif /*FLANN_H_*/\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/flann.hpp",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_HPP_\n#define FLANN_HPP_\n\n\n#include <vector>\n#include <string>\n#include <cassert>\n#include <cstdio>\n\n#include \"flann/general.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/params.h\"\n#include \"flann/util/saving.h\"\n\n#include \"flann/algorithms/all_indices.h\"\n\nnamespace flann\n{\n\n/**\n * Sets the log level used for all flann functions\n * @param level Verbosity level\n */\ninline void log_verbosity(int level)\n{\n    if (level >= 0) {\n        Logger::setLevel(level);\n    }\n}\n\n/**\n * (Deprecated) Index parameters for creating a saved index.\n */\nstruct SavedIndexParams : public IndexParams\n{\n    SavedIndexParams(std::string filename)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_SAVED;\n        (*this)[\"filename\"] = filename;\n    }\n};\n\n\n\ntemplate<typename Distance>\nclass Index\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    typedef NNIndex<Distance> IndexType;\n\n    Index(const IndexParams& params, Distance distance = Distance() )\n        : index_params_(params)\n    {\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(params,\"algorithm\");\n        loaded_ = false;\n\n        Matrix<ElementType> features;\n        if (index_type == FLANN_INDEX_SAVED) {\n            nnIndex_ = load_saved_index(features, get_param<std::string>(params,\"filename\"), distance);\n            loaded_ = true;\n        }\n        else {\n        \tflann_algorithm_t index_type = get_param<flann_algorithm_t>(params, \"algorithm\");\n            nnIndex_ = create_index_by_type<Distance>(index_type, features, params, distance);\n        }\n    }\n\n\n    Index(const Matrix<ElementType>& features, const IndexParams& params, Distance distance = Distance() )\n        : index_params_(params)\n    {\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(params,\"algorithm\");\n        loaded_ = false;\n\n        if (index_type == FLANN_INDEX_SAVED) {\n            nnIndex_ = load_saved_index(features, get_param<std::string>(params,\"filename\"), distance);\n            loaded_ = true;\n        }\n        else {\n        \tflann_algorithm_t index_type = get_param<flann_algorithm_t>(params, \"algorithm\");\n            nnIndex_ = create_index_by_type<Distance>(index_type, features, params, distance);\n        }\n    }\n\n\n    Index(const Index& other) : loaded_(other.loaded_), index_params_(other.index_params_)\n    {\n    \tnnIndex_ = other.nnIndex_->clone();\n    }\n\n    Index& operator=(Index other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~Index()\n    {\n        delete nnIndex_;\n    }\n\n    /**\n     * Builds the index.\n     */\n    void buildIndex()\n    {\n        if (!loaded_) {\n            nnIndex_->buildIndex();\n        }\n    }\n\n    void buildIndex(const Matrix<ElementType>& points)\n    {\n    \tnnIndex_->buildIndex(points);\n    }\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        nnIndex_->addPoints(points, rebuild_threshold);\n    }\n\n    /**\n     * Remove point from the index\n     * @param index Index of point to be removed\n     */\n    void removePoint(size_t point_id)\n    {\n    \tnnIndex_->removePoint(point_id);\n    }\n\n    /**\n     * Returns pointer to a data point with the specified id.\n     * @param point_id the id of point to retrieve\n     * @return\n     */\n    ElementType* getPoint(size_t point_id)\n    {\n    \treturn nnIndex_->getPoint(point_id);\n    }\n\n    /**\n     * Save index to file\n     * @param filename\n     */\n    void save(std::string filename)\n    {\n        FILE* fout = fopen(filename.c_str(), \"wb\");\n        if (fout == NULL) {\n            throw FLANNException(\"Cannot open file\");\n        }\n        nnIndex_->saveIndex(fout);\n        fclose(fout);\n    }\n\n    /**\n     * \\returns number of features in this index.\n     */\n    size_t veclen() const\n    {\n        return nnIndex_->veclen();\n    }\n\n    /**\n     * \\returns The dimensionality of the features in this index.\n     */\n    size_t size() const\n    {\n        return nnIndex_->size();\n    }\n\n    /**\n     * \\returns The index type (kdtree, kmeans,...)\n     */\n    flann_algorithm_t getType() const\n    {\n        return nnIndex_->getType();\n    }\n\n    /**\n     * \\returns The amount of memory (in bytes) used by the index.\n     */\n    int usedMemory() const\n    {\n        return nnIndex_->usedMemory();\n    }\n\n\n    /**\n     * \\returns The index parameters\n     */\n    IndexParams getParameters() const\n    {\n        return nnIndex_->getParameters();\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<size_t>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<int>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<size_t> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params)\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<int> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     * \\brief Perform radius search\n     * \\param[in] queries The query points\n     * \\param[out] indices The indinces of the neighbors found within the given radius\n     * \\param[out] dists The distances to the nearest neighbors found\n     * \\param[in] radius The radius used for search\n     * \\param[in] params Search parameters\n     * \\returns Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<size_t>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<int>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     * \\brief Perform radius search\n     * \\param[in] queries The query points\n     * \\param[out] indices The indinces of the neighbors found within the given radius\n     * \\param[out] dists The distances to the nearest neighbors found\n     * \\param[in] radius The radius used for search\n     * \\param[in] params Search parameters\n     * \\returns Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<size_t> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<int> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\nprivate:\n    IndexType* load_saved_index(const Matrix<ElementType>& dataset, const std::string& filename, Distance distance)\n    {\n        FILE* fin = fopen(filename.c_str(), \"rb\");\n        if (fin == NULL) {\n            return NULL;\n        }\n        IndexHeader header = load_header(fin);\n        if (header.data_type != flann_datatype_value<ElementType>::value) {\n            throw FLANNException(\"Datatype of saved index is different than of the one to be created.\");\n        }\n\n        IndexParams params;\n        params[\"algorithm\"] = header.index_type;\n        IndexType* nnIndex = create_index_by_type<Distance>(header.index_type, dataset, params, distance);\n        rewind(fin);\n        nnIndex->loadIndex(fin);\n        fclose(fin);\n\n        return nnIndex;\n    }\n\n    void swap( Index& other)\n    {\n    \tstd::swap(nnIndex_, other.nnIndex_);\n    \tstd::swap(loaded_, other.loaded_);\n    \tstd::swap(index_params_, other.index_params_);\n    }\n\nprivate:\n    /** Pointer to actual index class */\n    IndexType* nnIndex_;\n    /** Indices if the index was loaded from a file */\n    bool loaded_;\n    /** Parameters passed to the index */\n    IndexParams index_params_;\n};\n\n\n\n\n\n/**\n * Performs a hierarchical clustering of the points passed as argument and then takes a cut in the\n * the clustering tree to return a flat clustering.\n * @param[in] points Points to be clustered\n * @param centers The computed cluster centres. Matrix should be preallocated and centers.rows is the\n *  number of clusters requested.\n * @param params Clustering parameters (The same as for flann::KMeansIndex)\n * @param d Distance to be used for clustering (eg: flann::L2)\n * @return number of clusters computed (can be different than clusters.rows and is the highest number\n * of the form (branching-1)*K+1 smaller than clusters.rows).\n */\ntemplate <typename Distance>\nint hierarchicalClustering(const Matrix<typename Distance::ElementType>& points, Matrix<typename Distance::ResultType>& centers,\n                           const KMeansIndexParams& params, Distance d = Distance())\n{\n    KMeansIndex<Distance> kmeans(points, params, d);\n    kmeans.buildIndex();\n\n    int clusterNum = kmeans.getClusterCenters(centers);\n    return clusterNum;\n}\n\n}\n#endif /* FLANN_HPP_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/flann.hpp~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_HPP_\n#define FLANN_HPP_\n\n\n#include <vector>\n#include <string>\n#include <cassert>\n#include <cstdio>\n\n#include \"flann/general.h\"\n#include \"flann/util/matrix.h\"\n#include \"flann/util/params.h\"\n#include \"flann/util/saving.h\"\n\n#include \"flann/algorithms/all_indices.h\"\n\nnamespace flann\n{\n\n/**\n * Sets the log level used for all flann functions\n * @param level Verbosity level\n */\ninline void log_verbosity(int level)\n{\n    if (level >= 0) {\n        Logger::setLevel(level);\n    }\n}\n\n/**\n * (Deprecated) Index parameters for creating a saved index.\n */\nstruct SavedIndexParams : public IndexParams\n{\n    SavedIndexParams(std::string filename)\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_SAVED;\n        (*this)[\"filename\"] = filename;\n    }\n};\n\n\n\ntemplate<typename Distance>\nclass Index\n{\npublic:\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    typedef NNIndex<Distance> IndexType;\n\n    Index(const IndexParams& params, Distance distance = Distance() )\n        : index_params_(params)\n    {\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(params,\"algorithm\");\n        loaded_ = false;\n\n        Matrix<ElementType> features;\n        if (index_type == FLANN_INDEX_SAVED) {\n            nnIndex_ = load_saved_index(features, get_param<std::string>(params,\"filename\"), distance);\n            loaded_ = true;\n        }\n        else {\n        \tflann_algorithm_t index_type = get_param<flann_algorithm_t>(params, \"algorithm\");\n            nnIndex_ = create_index_by_type<Distance>(index_type, features, params, distance);\n        }\n    }\n\n\n    Index(const Matrix<ElementType>& features, const IndexParams& params, Distance distance = Distance() )\n        : index_params_(params)\n    {\n        flann_algorithm_t index_type = get_param<flann_algorithm_t>(params,\"algorithm\");\n        loaded_ = false;\n\n        if (index_type == FLANN_INDEX_SAVED) {\n            nnIndex_ = load_saved_index(features, get_param<std::string>(params,\"filename\"), distance);\n            loaded_ = true;\n        }\n        else {\n        \tflann_algorithm_t index_type = get_param<flann_algorithm_t>(params, \"algorithm\");\n            nnIndex_ = create_index_by_type<Distance>(index_type, features, params, distance);\n        }\n    }\n\n\n    Index(const Index& other) : loaded_(other.loaded_), index_params_(other.index_params_)\n    {\n    \tnnIndex_ = other.nnIndex_->clone();\n    }\n\n    Index& operator=(Index other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n    virtual ~Index()\n    {\n        delete nnIndex_;\n    }\n\n    /**\n     * Builds the index.\n     */\n    void buildIndex()\n    {\n        if (!loaded_) {\n            nnIndex_->buildIndex();\n        }\n    }\n\n    void buildIndex(const Matrix<ElementType>& points)\n    {\n    \tnnIndex_->buildIndex(points);\n    }\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        nnIndex_->addPoints(points, rebuild_threshold);\n    }\n\n    /**\n     * Remove point from the index\n     * @param index Index of point to be removed\n     */\n    void removePoint(size_t point_id)\n    {\n    \tnnIndex_->removePoint(point_id);\n    }\n\n    /**\n     * Returns pointer to a data point with the specified id.\n     * @param point_id the id of point to retrieve\n     * @return\n     */\n    ElementType* getPoint(size_t point_id)\n    {\n    \treturn nnIndex_->getPoint(point_id);\n    }\n\n    /**\n     * Save index to file\n     * @param filename\n     */\n    void save(std::string filename)\n    {\n        FILE* fout = fopen(filename.c_str(), \"wb\");\n        if (fout == NULL) {\n            throw FLANNException(\"Cannot open file\");\n        }\n        nnIndex_->saveIndex(fout);\n        fclose(fout);\n    }\n\n    /**\n     * \\returns number of features in this index.\n     */\n    size_t veclen() const\n    {\n        return nnIndex_->veclen();\n    }\n\n    /**\n     * \\returns The dimensionality of the features in this index.\n     */\n    size_t size() const\n    {\n        return nnIndex_->size();\n    }\n\n    /**\n     * \\returns The index type (kdtree, kmeans,...)\n     */\n    flann_algorithm_t getType() const\n    {\n        return nnIndex_->getType();\n    }\n\n    /**\n     * \\returns The amount of memory (in bytes) used by the index.\n     */\n    int usedMemory() const\n    {\n        return nnIndex_->usedMemory();\n    }\n\n\n    /**\n     * \\returns The index parameters\n     */\n    IndexParams getParameters() const\n    {\n        return nnIndex_->getParameters();\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<size_t>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n\tint Search_mAP(const Matrix<ElementType>& queries,\n                                 Matrix<size_t>& indices,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->Search_mAP(queries, indices, knn, params);\n    }\n\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 Matrix<int>& indices,\n                                 Matrix<DistanceType>& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     * \\brief Perform k-nearest neighbor search\n     * \\param[in] queries The query points for which to find the nearest neighbors\n     * \\param[out] indices The indices of the nearest neighbors found\n     * \\param[out] dists Distances to the nearest neighbors found\n     * \\param[in] knn Number of nearest neighbors to return\n     * \\param[in] params Search parameters\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<size_t> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params)\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param knn\n     * @param params\n     * @return\n     */\n    int knnSearch(const Matrix<ElementType>& queries,\n                                 std::vector< std::vector<int> >& indices,\n                                 std::vector<std::vector<DistanceType> >& dists,\n                                 size_t knn,\n                           const SearchParams& params) const\n    {\n    \treturn nnIndex_->knnSearch(queries, indices, dists, knn, params);\n    }\n\n    /**\n     * \\brief Perform radius search\n     * \\param[in] queries The query points\n     * \\param[out] indices The indinces of the neighbors found within the given radius\n     * \\param[out] dists The distances to the nearest neighbors found\n     * \\param[in] radius The radius used for search\n     * \\param[in] params Search parameters\n     * \\returns Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<size_t>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    Matrix<int>& indices,\n                                    Matrix<DistanceType>& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     * \\brief Perform radius search\n     * \\param[in] queries The query points\n     * \\param[out] indices The indinces of the neighbors found within the given radius\n     * \\param[out] dists The distances to the nearest neighbors found\n     * \\param[in] radius The radius used for search\n     * \\param[in] params Search parameters\n     * \\returns Number of neighbors found\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<size_t> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\n    /**\n     *\n     * @param queries\n     * @param indices\n     * @param dists\n     * @param radius\n     * @param params\n     * @return\n     */\n    int radiusSearch(const Matrix<ElementType>& queries,\n                                    std::vector< std::vector<int> >& indices,\n                                    std::vector<std::vector<DistanceType> >& dists,\n                                    float radius,\n                              const SearchParams& params) const\n    {\n    \treturn nnIndex_->radiusSearch(queries, indices, dists, radius, params);\n    }\n\nprivate:\n    IndexType* load_saved_index(const Matrix<ElementType>& dataset, const std::string& filename, Distance distance)\n    {\n        FILE* fin = fopen(filename.c_str(), \"rb\");\n        if (fin == NULL) {\n            return NULL;\n        }\n        IndexHeader header = load_header(fin);\n        if (header.data_type != flann_datatype_value<ElementType>::value) {\n            throw FLANNException(\"Datatype of saved index is different than of the one to be created.\");\n        }\n\n        IndexParams params;\n        params[\"algorithm\"] = header.index_type;\n        IndexType* nnIndex = create_index_by_type<Distance>(header.index_type, dataset, params, distance);\n        rewind(fin);\n        nnIndex->loadIndex(fin);\n        fclose(fin);\n\n        return nnIndex;\n    }\n\n    void swap( Index& other)\n    {\n    \tstd::swap(nnIndex_, other.nnIndex_);\n    \tstd::swap(loaded_, other.loaded_);\n    \tstd::swap(index_params_, other.index_params_);\n    }\n\nprivate:\n    /** Pointer to actual index class */\n    IndexType* nnIndex_;\n    /** Indices if the index was loaded from a file */\n    bool loaded_;\n    /** Parameters passed to the index */\n    IndexParams index_params_;\n};\n\n\n\n\n\n/**\n * Performs a hierarchical clustering of the points passed as argument and then takes a cut in the\n * the clustering tree to return a flat clustering.\n * @param[in] points Points to be clustered\n * @param centers The computed cluster centres. Matrix should be preallocated and centers.rows is the\n *  number of clusters requested.\n * @param params Clustering parameters (The same as for flann::KMeansIndex)\n * @param d Distance to be used for clustering (eg: flann::L2)\n * @return number of clusters computed (can be different than clusters.rows and is the highest number\n * of the form (branching-1)*K+1 smaller than clusters.rows).\n */\ntemplate <typename Distance>\nint hierarchicalClustering(const Matrix<typename Distance::ElementType>& points, Matrix<typename Distance::ResultType>& centers,\n                           const KMeansIndexParams& params, Distance d = Distance())\n{\n    KMeansIndex<Distance> kmeans(points, params, d);\n    kmeans.buildIndex();\n\n    int clusterNum = kmeans.getClusterCenters(centers);\n    return clusterNum;\n}\n\n}\n#endif /* FLANN_HPP_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/flann_cpp.cpp",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#include \"flann/flann.hpp\"\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/general.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_GENERAL_H_\n#define FLANN_GENERAL_H_\n\n#include \"defines.h\"\n#include <stdexcept>\n#include <cassert>\n#include <limits.h>\n\nnamespace flann\n{\n\nclass FLANNException : public std::runtime_error\n{\npublic:\n    FLANNException(const char* message) : std::runtime_error(message) { }\n\n    FLANNException(const std::string& message) : std::runtime_error(message) { }\n};\n\n\ntemplate <typename T>\nstruct flann_datatype_value\n{\n\tstatic const flann_datatype_t value = FLANN_NONE;\n};\n\ntemplate<>\nstruct flann_datatype_value<char>\n{\n\tstatic const flann_datatype_t value = FLANN_INT8;\n};\n\ntemplate<>\nstruct flann_datatype_value<short>\n{\n\tstatic const flann_datatype_t value = FLANN_INT16;\n};\n\ntemplate<>\nstruct flann_datatype_value<int>\n{\n\tstatic const flann_datatype_t value = FLANN_INT32;\n};\n\n#ifdef LLONG_MAX\ntemplate<>\nstruct flann_datatype_value<long long>\n{\n\tstatic const flann_datatype_t value = FLANN_INT64;\n};\n#endif\n\ntemplate<>\nstruct flann_datatype_value<unsigned char>\n{\n\tstatic const flann_datatype_t value = FLANN_UINT8;\n};\n\ntemplate<>\nstruct flann_datatype_value<unsigned short>\n{\n\tstatic const flann_datatype_t value = FLANN_UINT16;\n};\n\ntemplate<>\nstruct flann_datatype_value<unsigned int>\n{\n\tstatic const flann_datatype_t value = FLANN_UINT32;\n};\n\n#ifdef ULLONG_MAX\ntemplate<>\nstruct flann_datatype_value<unsigned long long>\n{\n\tstatic const flann_datatype_t value = FLANN_UINT64;\n};\n#endif\n\n\ntemplate<>\nstruct flann_datatype_value<float>\n{\n\tstatic const flann_datatype_t value = FLANN_FLOAT32;\n};\n\ntemplate<>\nstruct flann_datatype_value<double>\n{\n\tstatic const flann_datatype_t value = FLANN_FLOAT64;\n};\n\n\n\ntemplate <flann_datatype_t datatype>\nstruct flann_datatype_type\n{\n\ttypedef void type;\n};\n\ntemplate<>\nstruct flann_datatype_type<FLANN_INT8>\n{\n\ttypedef char type;\n};\n\ntemplate<>\nstruct flann_datatype_type<FLANN_INT16>\n{\n\ttypedef short type;\n};\n\ntemplate<>\nstruct flann_datatype_type<FLANN_INT32>\n{\n\ttypedef int type;\n};\n\n#ifdef LLONG_MAX\ntemplate<>\nstruct flann_datatype_type<FLANN_INT64>\n{\n\ttypedef long long type;\n};\n#endif\n\ntemplate<>\nstruct flann_datatype_type<FLANN_UINT8>\n{\n\ttypedef unsigned char type;\n};\n\n\ntemplate<>\nstruct flann_datatype_type<FLANN_UINT16>\n{\n\ttypedef unsigned short type;\n};\n\ntemplate<>\nstruct flann_datatype_type<FLANN_UINT32>\n{\n\ttypedef unsigned int type;\n};\n\n#ifdef ULLONG_MAX\ntemplate<>\nstruct flann_datatype_type<FLANN_UINT64>\n{\n\ttypedef unsigned long long type;\n};\n#endif\n\ntemplate<>\nstruct flann_datatype_type<FLANN_FLOAT32>\n{\n\ttypedef float type;\n};\n\ntemplate<>\nstruct flann_datatype_type<FLANN_FLOAT64>\n{\n\ttypedef double type;\n};\n\n\ninline size_t flann_datatype_size(flann_datatype_t type)\n{\n\tswitch (type) {\n\tcase FLANN_INT8:\n\t\treturn sizeof(flann_datatype_type<FLANN_INT8>::type);\n\tcase FLANN_INT16:\n\t\treturn sizeof(flann_datatype_type<FLANN_INT16>::type);\n\tcase FLANN_INT32:\n\t\treturn sizeof(flann_datatype_type<FLANN_INT32>::type);\n\tcase FLANN_INT64:\n\t\treturn sizeof(flann_datatype_type<FLANN_INT64>::type);\n\tcase FLANN_UINT8:\n\t\treturn sizeof(flann_datatype_type<FLANN_UINT8>::type);\n\tcase FLANN_UINT16:\n\t\treturn sizeof(flann_datatype_type<FLANN_UINT16>::type);\n\tcase FLANN_UINT32:\n\t\treturn sizeof(flann_datatype_type<FLANN_UINT32>::type);\n\tcase FLANN_UINT64:\n\t\treturn sizeof(flann_datatype_type<FLANN_UINT64>::type);\n\tcase FLANN_FLOAT32:\n\t\treturn sizeof(flann_datatype_type<FLANN_FLOAT32>::type);\n\tcase FLANN_FLOAT64:\n\t\treturn sizeof(flann_datatype_type<FLANN_FLOAT64>::type);\n\tdefault:\n\t\treturn 0;\n\t}\n}\n\n}\n\n\n#endif  /* FLANN_GENERAL_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/io/hdf5.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_HDF5_H_\n#define FLANN_HDF5_H_\n\n#include <hdf5.h>\n\n#include \"flann/util/matrix.h\"\n\n\nnamespace flann\n{\n\nnamespace\n{\n\ntemplate<typename T>\nhid_t get_hdf5_type()\n{\n    throw FLANNException(\"Unsupported type for IO operations\");\n}\n\ntemplate<>\nhid_t get_hdf5_type<char>() { return H5T_NATIVE_CHAR; }\ntemplate<>\nhid_t get_hdf5_type<unsigned char>() { return H5T_NATIVE_UCHAR; }\ntemplate<>\nhid_t get_hdf5_type<short int>() { return H5T_NATIVE_SHORT; }\ntemplate<>\nhid_t get_hdf5_type<unsigned short int>() { return H5T_NATIVE_USHORT; }\ntemplate<>\nhid_t get_hdf5_type<int>() { return H5T_NATIVE_INT; }\ntemplate<>\nhid_t get_hdf5_type<unsigned int>() { return H5T_NATIVE_UINT; }\ntemplate<>\nhid_t get_hdf5_type<long>() { return H5T_NATIVE_LONG; }\ntemplate<>\nhid_t get_hdf5_type<unsigned long>() { return H5T_NATIVE_ULONG; }\ntemplate<>\nhid_t get_hdf5_type<float>() { return H5T_NATIVE_FLOAT; }\ntemplate<>\nhid_t get_hdf5_type<double>() { return H5T_NATIVE_DOUBLE; }\ntemplate<>\nhid_t get_hdf5_type<long double>() { return H5T_NATIVE_LDOUBLE; }\n}\n\n\n#define CHECK_ERROR(x,y) if ((x)<0) throw FLANNException((y));\n\ntemplate<typename T>\nvoid save_to_file(const flann::Matrix<T>& dataset, const std::string& filename, const std::string& name)\n{\n\n#if H5Eset_auto_vers == 2\n    H5Eset_auto( H5E_DEFAULT, NULL, NULL );\n#else\n    H5Eset_auto( NULL, NULL );\n#endif\n\n    herr_t status;\n    hid_t file_id;\n    file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, H5P_DEFAULT);\n    if (file_id < 0) {\n        file_id = H5Fcreate(filename.c_str(), H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);\n    }\n    CHECK_ERROR(file_id,\"Error creating hdf5 file.\");\n\n    hsize_t     dimsf[2];              // dataset dimensions\n    dimsf[0] = dataset.rows;\n    dimsf[1] = dataset.cols;\n\n    hid_t space_id = H5Screate_simple(2, dimsf, NULL);\n    hid_t memspace_id = H5Screate_simple(2, dimsf, NULL);\n\n    hid_t dataset_id;\n#if H5Dcreate_vers == 2\n    dataset_id = H5Dcreate2(file_id, name.c_str(), get_hdf5_type<T>(), space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);\n#else\n    dataset_id = H5Dcreate(file_id, name.c_str(), get_hdf5_type<T>(), space_id, H5P_DEFAULT);\n#endif\n\n    if (dataset_id<0) {\n#if H5Dopen_vers == 2\n        dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT);\n#else\n        dataset_id = H5Dopen(file_id, name.c_str());\n#endif\n    }\n    CHECK_ERROR(dataset_id,\"Error creating or opening dataset in file.\");\n\n    status = H5Dwrite(dataset_id, get_hdf5_type<T>(), memspace_id, space_id, H5P_DEFAULT, dataset.ptr() );\n    CHECK_ERROR(status, \"Error writing to dataset\");\n\n    H5Sclose(memspace_id);\n    H5Sclose(space_id);\n    H5Dclose(dataset_id);\n    H5Fclose(file_id);\n\n}\n\n\ntemplate<typename T>\nvoid load_from_file(flann::Matrix<T>& dataset, const std::string& filename, const std::string& name)\n{\n    herr_t status;\n    hid_t file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, H5P_DEFAULT);\n    CHECK_ERROR(file_id,\"Error opening hdf5 file.\");\n\n    hid_t dataset_id;\n#if H5Dopen_vers == 2\n    dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT);\n#else\n    dataset_id = H5Dopen(file_id, name.c_str());\n#endif\n    CHECK_ERROR(dataset_id,\"Error opening dataset in file.\");\n\n    hid_t space_id = H5Dget_space(dataset_id);\n\n    hsize_t dims_out[2];\n    H5Sget_simple_extent_dims(space_id, dims_out, NULL);\n\n    dataset = flann::Matrix<T>(new T[dims_out[0]*dims_out[1]], dims_out[0], dims_out[1]);\n\n    status = H5Dread(dataset_id, get_hdf5_type<T>(), H5S_ALL, H5S_ALL, H5P_DEFAULT, dataset[0]);\n    CHECK_ERROR(status, \"Error reading dataset\");\n\n    H5Sclose(space_id);\n    H5Dclose(dataset_id);\n    H5Fclose(file_id);\n}\n\n\n#ifdef HAVE_MPI\n\nnamespace mpi\n{\n/**\n * Loads a the hyperslice corresponding to this processor from a hdf5 file.\n * @param flann_dataset Dataset where the data is loaded\n * @param filename HDF5 file name\n * @param name Name of dataset inside file\n */\ntemplate<typename T>\nvoid load_from_file(flann::Matrix<T>& dataset, const std::string& filename, const std::string& name)\n{\n    MPI_Comm comm  = MPI_COMM_WORLD;\n    MPI_Info info  = MPI_INFO_NULL;\n\n    int mpi_size, mpi_rank;\n    MPI_Comm_size(comm, &mpi_size);\n    MPI_Comm_rank(comm, &mpi_rank);\n\n    herr_t status;\n\n    hid_t plist_id = H5Pcreate(H5P_FILE_ACCESS);\n    H5Pset_fapl_mpio(plist_id, comm, info);\n    hid_t file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, plist_id);\n    CHECK_ERROR(file_id,\"Error opening hdf5 file.\");\n    H5Pclose(plist_id);\n    hid_t dataset_id;\n#if H5Dopen_vers == 2\n    dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT);\n#else\n    dataset_id = H5Dopen(file_id, name.c_str());\n#endif\n    CHECK_ERROR(dataset_id,\"Error opening dataset in file.\");\n\n    hid_t space_id = H5Dget_space(dataset_id);\n    hsize_t dims[2];\n    H5Sget_simple_extent_dims(space_id, dims, NULL);\n\n    hsize_t count[2];\n    hsize_t offset[2];\n\n    hsize_t item_cnt = dims[0]/mpi_size+(dims[0]%mpi_size==0 ? 0 : 1);\n    hsize_t cnt = (mpi_rank<mpi_size-1 ? item_cnt : dims[0]-item_cnt*(mpi_size-1));\n\n    count[0] = cnt;\n    count[1] = dims[1];\n    offset[0] = mpi_rank*item_cnt;\n    offset[1] = 0;\n\n    hid_t memspace_id = H5Screate_simple(2,count,NULL);\n\n    H5Sselect_hyperslab(space_id, H5S_SELECT_SET, offset, NULL, count, NULL);\n\n    dataset = flann::Matrix<T>(new T[count[0]*count[1]], count[0], count[1]);\n\n    plist_id = H5Pcreate(H5P_DATASET_XFER);\n//    H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_COLLECTIVE);\n    status = H5Dread(dataset_id, get_hdf5_type<T>(), memspace_id, space_id, plist_id, dataset[0]);\n    CHECK_ERROR(status, \"Error reading dataset\");\n\n    H5Pclose(plist_id);\n    H5Sclose(space_id);\n    H5Sclose(memspace_id);\n    H5Dclose(dataset_id);\n    H5Fclose(file_id);\n}\n}\n#endif // HAVE_MPI\n} // namespace flann::mpi\n\n#endif /* FLANN_HDF5_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/kmeans_index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_KMEANS_INDEX_H_\n#define FLANN_KMEANS_INDEX_H_\n\n#include <algorithm>\n#include <string>\n#include <map>\n#include <cassert>\n#include <limits>\n#include <cmath>\n\n#include \"flann/general.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/algorithms/dist.h\"\n#include <flann/algorithms/center_chooser.h>\n#include \"flann/util/matrix.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/heap.h\"\n#include \"flann/util/allocator.h\"\n#include \"flann/util/random.h\"\n#include \"flann/util/saving.h\"\n#include \"flann/util/logger.h\"\n\n\n\nnamespace flann\n{\n\nstruct KMeansIndexParams : public IndexParams\n{\n    KMeansIndexParams(int branching = 32, int iterations = 11,\n                      flann_centers_init_t centers_init = FLANN_CENTERS_RANDOM, float cb_index = 0.2 )\n    {\n        (*this)[\"algorithm\"] = FLANN_INDEX_KMEANS;\n        // branching factor\n        (*this)[\"branching\"] = branching;\n        // max iterations to perform in one kmeans clustering (kmeans tree)\n        (*this)[\"iterations\"] = iterations;\n        // algorithm used for picking the initial cluster centers for kmeans tree\n        (*this)[\"centers_init\"] = centers_init;\n        // cluster boundary index. Used when searching the kmeans tree\n        (*this)[\"cb_index\"] = cb_index;\n    }\n};\n\n\n/**\n * Hierarchical kmeans index\n *\n * Contains a tree constructed through a hierarchical kmeans clustering\n * and other information for indexing a set of points for nearest-neighbour matching.\n */\ntemplate <typename Distance>\nclass KMeansIndex : public NNIndex<Distance>\n{\npublic:\n\n    int kk;\n\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    typedef NNIndex<Distance> BaseClass;\n\n    typedef bool needs_vector_space_distance;\n\n\n\n    flann_algorithm_t getType() const\n    {\n        return FLANN_INDEX_KMEANS;\n    }\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KMeansIndexParams(),\n                Distance d = Distance())\n        : BaseClass(params,d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n        chooseCenters_->setDataset(inputData);\n        \n        setDataset(inputData);\n    }\n\n\n    /**\n     * Index constructor\n     *\n     * Params:\n     *          inputData = dataset with the input features\n     *          params = parameters passed to the hierarchical k-means algorithm\n     */\n    KMeansIndex(const IndexParams& params = KMeansIndexParams(), Distance d = Distance())\n        : BaseClass(params, d), root_(NULL), memoryCounter_(0)\n    {\n        branching_ = get_param(params,\"branching\",32);\n        iterations_ = get_param(params,\"iterations\",11);\n        if (iterations_<0) {\n            iterations_ = (std::numeric_limits<int>::max)();\n        }\n        centers_init_  = get_param(params,\"centers_init\",FLANN_CENTERS_RANDOM);\n        cb_index_  = get_param(params,\"cb_index\",0.4f);\n\n        initCenterChooser();\n    }\n\n\n    KMeansIndex(const KMeansIndex& other) : BaseClass(other),\n    \t\tbranching_(other.branching_),\n    \t\titerations_(other.iterations_),\n    \t\tcenters_init_(other.centers_init_),\n    \t\tcb_index_(other.cb_index_),\n    \t\tmemoryCounter_(other.memoryCounter_)\n    {\n    \tinitCenterChooser();\n\n    \tcopyTree(root_, other.root_);\n    }\n\n    KMeansIndex& operator=(KMeansIndex other)\n    {\n    \tthis->swap(other);\n    \treturn *this;\n    }\n\n\n    void initCenterChooser()\n    {\n        switch(centers_init_) {\n        case FLANN_CENTERS_RANDOM:\n        \tchooseCenters_ = new RandomCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_GONZALES:\n        \tchooseCenters_ = new GonzalesCenterChooser<Distance>(distance_);\n        \tbreak;\n        case FLANN_CENTERS_KMEANSPP:\n            chooseCenters_ = new KMeansppCenterChooser<Distance>(distance_);\n        \tbreak;\n        default:\n            throw FLANNException(\"Unknown algorithm for choosing initial centers.\");\n        }\n    }\n\n    /**\n     * Index destructor.\n     *\n     * Release the memory used by the index.\n     */\n    virtual ~KMeansIndex()\n    {\n    \tdelete chooseCenters_;\n    \tfreeIndex();\n    }\n\n    BaseClass* clone() const\n    {\n    \treturn new KMeansIndex(*this);\n    }\n\n\n    void set_cb_index( float index)\n    {\n        cb_index_ = index;\n    }\n\n    /**\n     * Computes the inde memory usage\n     * Returns: memory used by the index\n     */\n    int usedMemory() const\n    {\n        return pool_.usedMemory+pool_.wastedMemory+memoryCounter_;\n    }\n\n    using BaseClass::buildIndex;\n\n    void addPoints(const Matrix<ElementType>& points, float rebuild_threshold = 2)\n    {\n        assert(points.cols==veclen_);\n        size_t old_size = size_;\n\n        extendDataset(points);\n        \n        if (rebuild_threshold>1 && size_at_build_*rebuild_threshold<size_) {\n            buildIndex();\n        }\n        else {\n            for (size_t i=0;i<points.rows;++i) {\n                DistanceType dist = distance_(root_->pivot, points[i], veclen_);\n                addPointToTree(root_, old_size + i, dist);\n            }            \n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar.setObject(this);\n\n    \tar & *static_cast<NNIndex<Distance>*>(this);\n\n    \tar & branching_;\n    \tar & iterations_;\n    \tar & memoryCounter_;\n    \tar & cb_index_;\n    \tar & centers_init_;\n\n    \tif (Archive::is_loading::value) {\n    \t\troot_ = new(pool_) Node();\n    \t}\n    \tar & *root_;\n\n    \tif (Archive::is_loading::value) {\n            index_params_[\"algorithm\"] = getType();\n            index_params_[\"branching\"] = branching_;\n            index_params_[\"iterations\"] = iterations_;\n            index_params_[\"centers_init\"] = centers_init_;\n            index_params_[\"cb_index\"] = cb_index_;\n    \t}\n    }\n\n    void saveIndex(FILE* stream)\n    {\n    \tserialization::SaveArchive sa(stream);\n    \tsa & *this;\n    }\n\n    void loadIndex(FILE* stream)\n    {\n    \tfreeIndex();\n    \tserialization::LoadArchive la(stream);\n    \tla & *this;\n    }\n\n    /**\n     * Find set of nearest neighbors to vec. Their indices are stored inside\n     * the result object.\n     *\n     * Params:\n     *     result = the result object in which the indices of the nearest-neighbors are stored\n     *     vec = the vector for which to search the nearest neighbors\n     *     searchParams = parameters that influence the search algorithm (checks, cb_index)\n     */\n\n    void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n    \tif (removed_) {\n    \t\tfindNeighborsWithRemoved<true>(result, vec, searchParams);\n    \t}\n    \telse {\n    \t\tfindNeighborsWithRemoved<false>(result, vec, searchParams);\n    \t}\n\n    }\n\n    /**\n     * Clustering function that takes a cut in the hierarchical k-means\n     * tree and return the clusters centers of that clustering.\n     * Params:\n     *     numClusters = number of clusters to have in the clustering computed\n     * Returns: number of cluster centers\n     */\n    int getClusterCenters(Matrix<DistanceType>& centers)\n    {\n        int numClusters = centers.rows;\n        if (numClusters<1) {\n            throw FLANNException(\"Number of clusters must be at least 1\");\n        }\n\n        DistanceType variance;\n        std::vector<NodePtr> clusters(numClusters);\n\n        int clusterCount = getMinVarianceClusters(root_, clusters, numClusters, variance);\n\n        Logger::info(\"Clusters requested: %d, returning %d\\n\",numClusters, clusterCount);\n\n        for (int i=0; i<clusterCount; ++i) {\n            DistanceType* center = clusters[i]->pivot;\n            for (size_t j=0; j<veclen_; ++j) {\n                centers[i][j] = center[j];\n            }\n        }\n\n        return clusterCount;\n    }\n\nprotected:\n    /**\n     * Builds the index\n     */\n    void buildIndexImpl()\n    {\n        if (branching_<2) {\n            throw FLANNException(\"Branching factor must be at least 2\");\n        }\n\n        std::vector<int> indices(size_);\n        for (size_t i=0; i<size_; ++i) {\n        \tindices[i] = int(i);\n        }\n\n        root_ = new(pool_) Node();\n        kk=0;\n        computeNodeStatistics(root_, indices);\n        //std::cout<<\"radius\"<<root_->radius <<\"mean:\"<< root_->pivot<<endl;\n        computeClustering(root_, &indices[0], (int)size_, branching_);\n\t\t\n        /*\n        for(int i=0;i<branching_;i++)\n        {\n\t\t\tNodePtr node=root_->childs[i];\n            std::cout<<node->size<<endl;\n        }*/\n    }\n\nprivate:\n\n    struct PointInfo\n    {\n    \tsize_t index;\n    \tElementType* point;\n    private:\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tar & index;\n//    \t\tar & point;\n\n\t\t\tif (Archive::is_loading::value) point = obj->points_[index];\n    \t}\n    \tfriend struct serialization::access;\n    };\n\n    /**\n     * Struture representing a node in the hierarchical k-means tree.\n     */\n    struct Node\n    {\n        /**\n         * The cluster center.\n         */\n        DistanceType* pivot;\n        /**\n         * The cluster radius.\n         */\n        DistanceType radius;\n        /**\n         * The cluster variance.\n         */\n        DistanceType variance;\n        /**\n         * The cluster size (number of points in the cluster)\n         */\n        int size;\n        /**\n         * Child nodes (only for non-terminal nodes)\n         */\n        std::vector<Node*> childs;\n        /**\n         * Node points (only for terminal nodes)\n         */\n        std::vector<PointInfo> points;\n        /**\n         * Level\n         */\n//        int level;\n\n        ~Node()\n        {\n            delete[] pivot;\n            if (!childs.empty()) {\n                for (size_t i=0; i<childs.size(); ++i) {\n                    childs[i]->~Node();\n                }\n            }\n        }\n\n    \ttemplate<typename Archive>\n    \tvoid serialize(Archive& ar)\n    \t{\n    \t\ttypedef KMeansIndex<Distance> Index;\n    \t\tIndex* obj = static_cast<Index*>(ar.getObject());\n\n    \t\tif (Archive::is_loading::value) {\n    \t\t\tpivot = new DistanceType[obj->veclen_];\n    \t\t}\n    \t\tar & serialization::make_binary_object(pivot, obj->veclen_*sizeof(DistanceType));\n    \t\tar & radius;\n    \t\tar & variance;\n    \t\tar & size;\n\n    \t\tsize_t childs_size;\n    \t\tif (Archive::is_saving::value) {\n    \t\t\tchilds_size = childs.size();\n    \t\t}\n    \t\tar & childs_size;\n\n    \t\tif (childs_size==0) {\n    \t\t\tar & points;\n    \t\t}\n    \t\telse {\n    \t\t\tif (Archive::is_loading::value) {\n    \t\t\t\tchilds.resize(childs_size);\n    \t\t\t}\n    \t\t\tfor (size_t i=0;i<childs_size;++i) {\n    \t\t\t\tif (Archive::is_loading::value) {\n    \t\t\t\t\tchilds[i] = new(obj->pool_) Node();\n    \t\t\t\t}\n    \t\t\t\tar & *childs[i];\n    \t\t\t}\n    \t\t}\n    \t}\n    \tfriend struct serialization::access;\n    };\n    typedef Node* NodePtr;\n\n    /**\n     * Alias definition for a nicer syntax.\n     */\n    typedef BranchStruct<NodePtr, DistanceType> BranchSt;\n\n\n    /**\n     * Helper function\n     */\n    void freeIndex()\n    {\n    \tif (root_) root_->~Node();\n    \troot_ = NULL;\n    \tpool_.free();\n    }\n\n    void copyTree(NodePtr& dst, const NodePtr& src)\n    {\n    \tdst = new(pool_) Node();\n    \tdst->pivot = new DistanceType[veclen_];\n    \tstd::copy(src->pivot, src->pivot+veclen_, dst->pivot);\n    \tdst->radius = src->radius;\n    \tdst->variance = src->variance;\n    \tdst->size = src->size;\n\n    \tif (src->childs.size()==0) {\n    \t\tdst->points = src->points;\n    \t}\n    \telse {\n    \t\tdst->childs.resize(src->childs.size());\n    \t\tfor (size_t i=0;i<src->childs.size();++i) {\n    \t\t\tcopyTree(dst->childs[i], src->childs[i]);\n    \t\t}\n    \t}\n    }\n\n\n    /**\n     * Computes the statistics of a node (mean, radius, variance).\n     *\n     * Params:\n     *     node = the node to use\n     *     indices = the indices of the points belonging to the node\n     */\n    void computeNodeStatistics(NodePtr node, const std::vector<int>& indices)\n    {\n        size_t size = indices.size();\n\n        DistanceType* mean = new DistanceType[veclen_];\n        memoryCounter_ += int(veclen_*sizeof(DistanceType));\n        memset(mean,0,veclen_*sizeof(DistanceType));\n\n        for (size_t i=0; i<size; ++i) {\n            ElementType* vec = points_[indices[i]];\n            for (size_t j=0; j<veclen_; ++j) {\n                mean[j] += vec[j];\n            }\n        }\n        DistanceType div_factor = DistanceType(1)/size;\n        for (size_t j=0; j<veclen_; ++j) {\n            mean[j] *= div_factor;\n        }\n        \n        DistanceType radius = 0;\n        DistanceType variance = 0;\n        for (size_t i=0; i<size; ++i) {\n            DistanceType dist = distance_(mean, points_[indices[i]], veclen_);\n            if (dist>radius) {\n                radius = dist;\n            }\n            variance += dist;\n        }        \n        variance /= size;\n\n        node->variance = variance;\n        node->radius = radius;\n        node->pivot = mean;\n    }\n\n\n    /**\n     * The method responsible with actually doing the recursive hierarchical\n     * clustering\n     *\n     * Params:\n     *     node = the node to cluster\n     *     indices = indices of the points belonging to the current node\n     *     branching = the branching factor to use in the clustering\n     *\n     * TODO: for 1-sized clusters don't store a cluster center (it's the same as the single cluster point)\n     */\n    void computeClustering(NodePtr node, int* indices, int indices_length, int branching)\n    {\n        node->size = indices_length;\n\n        if (indices_length < branching) { //kk>0 ||        \n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n        std::vector<int> centers_idx(branching);\n        int centers_length;\n        (*chooseCenters_)(branching, indices, indices_length, &centers_idx[0], centers_length);\n\n        if (centers_length<branching) {\n            node->points.resize(indices_length);\n            for (int i=0;i<indices_length;++i) {\n            \tnode->points[i].index = indices[i];\n            \tnode->points[i].point = points_[indices[i]];\n            }\n            node->childs.clear();\n            return;\n        }\n\n\n        Matrix<double> dcenters(new double[branching*veclen_],branching,veclen_);\n        for (int i=0; i<centers_length; ++i) {\n            ElementType* vec = points_[centers_idx[i]];\n            for (size_t k=0; k<veclen_; ++k) {\n                dcenters[i][k] = double(vec[k]);\n            }\n        }\n\n        std::vector<DistanceType> radiuses(branching,0);\n        std::vector<int> count(branching,0);\n\n        //\tassign points to clusters\n        std::vector<int> belongs_to(indices_length);\n        for (int i=0; i<indices_length; ++i) {\n\n            DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n            belongs_to[i] = 0;\n            for (int j=1; j<branching; ++j) {\n                DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                if (sq_dist>new_sq_dist) {\n                    belongs_to[i] = j;\n                    sq_dist = new_sq_dist;\n                }\n            }\n            if (sq_dist>radiuses[belongs_to[i]]) {\n                radiuses[belongs_to[i]] = sq_dist;\n            }\n            count[belongs_to[i]]++;\n        }\n\n        bool converged = false;\n        int iteration = 0;\n        while (!converged && iteration<iterations_) {\n            converged = true;\n            iteration++;\n\n            // compute the new cluster centers\n            for (int i=0; i<branching; ++i) {\n                memset(dcenters[i],0,sizeof(double)*veclen_);\n                radiuses[i] = 0;\n            }\n            for (int i=0; i<indices_length; ++i) {\n                ElementType* vec = points_[indices[i]];\n                double* center = dcenters[belongs_to[i]];\n                for (size_t k=0; k<veclen_; ++k) {\n                    center[k] += vec[k];\n                }\n            }\n            for (int i=0; i<branching; ++i) {\n                int cnt = count[i];\n                double div_factor = 1.0/cnt;\n                for (size_t k=0; k<veclen_; ++k) {\n                    dcenters[i][k] *= div_factor;\n                }\n            }\n\n            // reassign points to clusters\n            for (int i=0; i<indices_length; ++i) {\n                DistanceType sq_dist = distance_(points_[indices[i]], dcenters[0], veclen_);\n                int new_centroid = 0;\n                for (int j=1; j<branching; ++j) {\n                    DistanceType new_sq_dist = distance_(points_[indices[i]], dcenters[j], veclen_);\n                    if (sq_dist>new_sq_dist) {\n                        new_centroid = j;\n                        sq_dist = new_sq_dist;\n                    }\n                }\n                if (sq_dist>radiuses[new_centroid]) {\n                    radiuses[new_centroid] = sq_dist;\n                }\n                if (new_centroid != belongs_to[i]) {\n                    count[belongs_to[i]]--;\n                    count[new_centroid]++;\n                    belongs_to[i] = new_centroid;\n\n                    converged = false;\n                }\n            }\n\n            for (int i=0; i<branching; ++i) {\n                // if one cluster converges to an empty cluster,\n                // move an element into that cluster\n                if (count[i]==0) {\n                    int j = (i+1)%branching;\n                    while (count[j]<=1) {\n                        j = (j+1)%branching;\n                    }\n\n                    for (int k=0; k<indices_length; ++k) {\n                        if (belongs_to[k]==j) {\n                            belongs_to[k] = i;\n                            count[j]--;\n                            count[i]++;\n                            break;\n                        }\n                    }\n                    converged = false;\n                }\n            }\n\n        }\n\n        std::vector<DistanceType*> centers(branching);\n\n        for (int i=0; i<branching; ++i) {\n            centers[i] = new DistanceType[veclen_];\n            memoryCounter_ += veclen_*sizeof(DistanceType);\n            for (size_t k=0; k<veclen_; ++k) {\n                centers[i][k] = (DistanceType)dcenters[i][k];\n            }\n        }\n\n        \n        // compute kmeans clustering for each of the resulting clusters\n        node->childs.resize(branching);\n        int start = 0;\n        int end = start;\n        for (int c=0; c<branching; ++c) {\n            int s = count[c];\n\n            DistanceType variance = 0;\n            for (int i=0; i<indices_length; ++i) {\n                if (belongs_to[i]==c) {\n                    variance += distance_(centers[c], points_[indices[i]], veclen_);\n                    std::swap(indices[i],indices[end]);\n                    std::swap(belongs_to[i],belongs_to[end]);\n                    end++;\n                }\n            }\n            variance /= s;\n\n            node->childs[c] = new(pool_) Node();\n            node->childs[c]->radius = radiuses[c];\n            node->childs[c]->pivot = centers[c];\n            node->childs[c]->variance = variance;\n            computeClustering(node->childs[c],indices+start, end-start, branching);\n            kk++;\n            start=end;\n        }\n        \n\n        delete[] dcenters.ptr();\n    }\n  \n\n    template<bool with_removed>\n    void findNeighborsWithRemoved(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const\n    {\n\n        int maxChecks = searchParams.checks;\n\n        if (maxChecks==FLANN_CHECKS_UNLIMITED) {\n            findExactNN<with_removed>(root_, result, vec);\n        }\n        else {\n            // Priority queue storing intermediate branches in the best-bin-first search\n            Heap<BranchSt>* heap = new Heap<BranchSt>((int)size_);\n\n            int checks = 0;\n            findNN<with_removed>(root_, result, vec, checks, maxChecks, heap);\n\n            BranchSt branch;\n            while (heap->popMin(branch) && (checks<maxChecks || !result.full())) {\n                NodePtr node = branch.node;\n                findNN<with_removed>(node, result, vec, checks, maxChecks, heap);\n            }\n\n            delete heap;\n        }\n\n    }\n\n\n    /**\n     * Performs one descent in the hierarchical k-means tree. The branches not\n     * visited are stored in a priority queue.\n     *\n     * Params:\n     *      node = node to explore\n     *      result = container for the k-nearest neighbors found\n     *      vec = query points\n     *      checks = how many points in the dataset have been checked so far\n     *      maxChecks = maximum dataset points to checks\n     */\n\n    template<bool with_removed>\n    void findNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec, int& checks, int maxChecks,\n                Heap<BranchSt>* heap) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            if (checks>=maxChecks) {\n                if (result.full()) return;\n            }\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n                ++checks;\n            }\n        }\n        else {\n            int closest_center = exploreNodeBranches(node, vec, heap);\n            findNN<with_removed>(node->childs[closest_center],result,vec, checks, maxChecks, heap);\n        }\n    }\n\n    /**\n     * Helper function that computes the nearest childs of a node to a given query point.\n     * Params:\n     *     node = the node\n     *     q = the query point\n     *     distances = array with the distances to each child node.\n     * Returns:\n     */\n    int exploreNodeBranches(NodePtr node, const ElementType* q, Heap<BranchSt>* heap) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        int best_index = 0;\n        domain_distances[best_index] = distance_(q, node->childs[best_index]->pivot, veclen_);\n        for (int i=1; i<branching_; ++i) {\n            domain_distances[i] = distance_(q, node->childs[i]->pivot, veclen_);\n            if (domain_distances[i]<domain_distances[best_index]) {\n                best_index = i;\n            }\n        }\n\n        //\t\tfloat* best_center = node->childs[best_index]->pivot;\n        for (int i=0; i<branching_; ++i) {\n            if (i != best_index) {\n                domain_distances[i] -= cb_index_*node->childs[i]->variance;\n\n                //\t\t\t\tfloat dist_to_border = getDistanceToBorder(node.childs[i].pivot,best_center,q);\n                //\t\t\t\tif (domain_distances[i]<dist_to_border) {\n                //\t\t\t\t\tdomain_distances[i] = dist_to_border;\n                //\t\t\t\t}\n                heap->insert(BranchSt(node->childs[i],domain_distances[i]));\n            }\n        }\n\n        return best_index;\n    }\n\n\n    /**\n     * Function the performs exact nearest neighbor search by traversing the entire tree.\n     */\n    template<bool with_removed>\n    void findExactNN(NodePtr node, ResultSet<DistanceType>& result, const ElementType* vec) const\n    {\n        // Ignore those clusters that are too far away\n        {\n            DistanceType bsq = distance_(vec, node->pivot, veclen_);\n            DistanceType rsq = node->radius;\n            DistanceType wsq = result.worstDist();\n\n            DistanceType val = bsq-rsq-wsq;\n            DistanceType val2 = val*val-4*rsq*wsq;\n\n            //                  if (val>0) {\n            if ((val>0)&&(val2>0)) {\n                return;\n            }\n        }\n\n        if (node->childs.empty()) {\n            for (int i=0; i<node->size; ++i) {\n            \tPointInfo& point_info = node->points[i];\n                int index = point_info.index;\n                if (with_removed) {\n                \tif (removed_points_.test(index)) continue;\n                }\n                DistanceType dist = distance_(point_info.point, vec, veclen_);\n                result.addPoint(dist, index);\n            }\n        }\n        else {\n            std::vector<int> sort_indices(branching_);\n            getCenterOrdering(node, vec, sort_indices);\n\n            for (int i=0; i<branching_; ++i) {\n                findExactNN<with_removed>(node->childs[sort_indices[i]],result,vec);\n            }\n\n        }\n    }\n\n\n    /**\n     * Helper function.\n     *\n     * I computes the order in which to traverse the child nodes of a particular node.\n     */\n    void getCenterOrdering(NodePtr node, const ElementType* q, std::vector<int>& sort_indices) const\n    {\n        std::vector<DistanceType> domain_distances(branching_);\n        for (int i=0; i<branching_; ++i) {\n            DistanceType dist = distance_(q, node->childs[i]->pivot, veclen_);\n\n            int j=0;\n            while (domain_distances[j]<dist && j<i) j++;\n            for (int k=i; k>j; --k) {\n                domain_distances[k] = domain_distances[k-1];\n                sort_indices[k] = sort_indices[k-1];\n            }\n            domain_distances[j] = dist;\n            sort_indices[j] = i;\n        }\n    }\n\n    /**\n     * Method that computes the squared distance from the query point q\n     * from inside region with center c to the border between this\n     * region and the region with center p\n     */\n    DistanceType getDistanceToBorder(DistanceType* p, DistanceType* c, DistanceType* q) const\n    {\n        DistanceType sum = 0;\n        DistanceType sum2 = 0;\n\n        for (int i=0; i<veclen_; ++i) {\n            DistanceType t = c[i]-p[i];\n            sum += t*(q[i]-(c[i]+p[i])/2);\n            sum2 += t*t;\n        }\n\n        return sum*sum/sum2;\n    }\n\n\n    /**\n     * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize\n     * the overall variance of the clustering.\n     * Params:\n     *     root = root node\n     *     clusters = array with clusters centers (return value)\n     *     varianceValue = variance of the clustering (return value)\n     * Returns:\n     */\n    int getMinVarianceClusters(NodePtr root, std::vector<NodePtr>& clusters, int clusters_length, DistanceType& varianceValue) const\n    {\n        int clusterCount = 1;\n        clusters[0] = root;\n\n        DistanceType meanVariance = root->variance*root->size;\n\n        while (clusterCount<clusters_length) {\n            DistanceType minVariance = (std::numeric_limits<DistanceType>::max)();\n            int splitIndex = -1;\n\n            for (int i=0; i<clusterCount; ++i) {\n                if (!clusters[i]->childs.empty()) {\n\n                    DistanceType variance = meanVariance - clusters[i]->variance*clusters[i]->size;\n\n                    for (int j=0; j<branching_; ++j) {\n                        variance += clusters[i]->childs[j]->variance*clusters[i]->childs[j]->size;\n                    }\n                    if (variance<minVariance) {\n                        minVariance = variance;\n                        splitIndex = i;\n                    }\n                }\n            }\n\n            if (splitIndex==-1) break;\n            if ( (branching_+clusterCount-1) > clusters_length) break;\n\n            meanVariance = minVariance;\n\n            // split node\n            NodePtr toSplit = clusters[splitIndex];\n            clusters[splitIndex] = toSplit->childs[0];\n            for (int i=1; i<branching_; ++i) {\n                clusters[clusterCount++] = toSplit->childs[i];\n            }\n        }\n\n        varianceValue = meanVariance/root->size;\n        return clusterCount;\n    }\n    \n    void addPointToTree(NodePtr node, size_t index, DistanceType dist_to_pivot)\n    {\n        ElementType* point = points_[index];\n        if (dist_to_pivot>node->radius) {\n            node->radius = dist_to_pivot;\n        }\n        // if radius changed above, the variance will be an approximation\n        node->variance = (node->size*node->variance+dist_to_pivot)/(node->size+1);\n        node->size++;\n        \n        if (node->childs.empty()) { // leaf node\n        \tPointInfo point_info;\n        \tpoint_info.index = index;\n        \tpoint_info.point = point;\n        \tnode->points.push_back(point_info);\n\n            std::vector<int> indices(node->points.size());\n            for (size_t i=0;i<node->points.size();++i) {\n            \tindices[i] = node->points[i].index;\n            }\n            computeNodeStatistics(node, indices);\n            if (indices.size()>=size_t(branching_)) {\n                computeClustering(node, &indices[0], indices.size(), branching_);\n            }\n        }\n        else {            \n            // find the closest child\n            int closest = 0;\n            DistanceType dist = distance_(node->childs[closest]->pivot, point, veclen_);\n            for (size_t i=1;i<size_t(branching_);++i) {\n                DistanceType crt_dist = distance_(node->childs[i]->pivot, point, veclen_);\n                if (crt_dist<dist) {\n                    dist = crt_dist;\n                    closest = i;\n                }\n            }\n            addPointToTree(node->childs[closest], index, dist);\n        }                \n    }\n\n\n    void swap(KMeansIndex& other)\n    {\n    \tstd::swap(branching_, other.branching_);\n    \tstd::swap(iterations_, other.iterations_);\n    \tstd::swap(centers_init_, other.centers_init_);\n    \tstd::swap(cb_index_, other.cb_index_);\n    \tstd::swap(root_, other.root_);\n    \tstd::swap(pool_, other.pool_);\n    \tstd::swap(memoryCounter_, other.memoryCounter_);\n    \tstd::swap(chooseCenters_, other.chooseCenters_);\n    }\n\n\nprivate:\n    /** The branching factor used in the hierarchical k-means clustering */\n    int branching_;\n\n    /** Maximum number of iterations to use when performing k-means clustering */\n    int iterations_;\n\n    /** Algorithm for choosing the cluster centers */\n    flann_centers_init_t centers_init_;\n\n    /**\n     * Cluster border index. This is used in the tree search phase when determining\n     * the closest cluster to explore next. A zero value takes into account only\n     * the cluster centres, a value greater then zero also take into account the size\n     * of the cluster.\n     */\n    float cb_index_;\n    \n    /**\n     * The root node in the tree.\n     */\n    NodePtr root_;\n\n    /**\n     * Pooled memory allocator.\n     */\n    PooledAllocator pool_;\n\n    /**\n     * Memory occupied by the index.\n     */\n    int memoryCounter_;\n\n    /**\n     * Algorithm used to choose initial centers\n     */\n    CenterChooser<Distance>* chooseCenters_;\n\n    USING_BASECLASS_SYMBOLS\n};\n\n}\n\n#endif //FLANN_KMEANS_INDEX_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/client.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef MPI_CLIENT_H_\n#define MPI_CLIENT_H_\n\n#include <cstdlib>\n#include <boost/asio.hpp>\n#include <flann/util/matrix.h>\n#include <flann/util/params.h>\n#include \"queries.h\"\n\nnamespace flann {\nnamespace mpi {\n\n\nclass Client\n{\npublic:\n\tClient(const std::string& host, const std::string& service)\n\t{\n\t    tcp::resolver resolver(io_service_);\n\t    tcp::resolver::query query(tcp::v4(), host, service);\n\t    iterator_ = resolver.resolve(query);\n\t}\n\n\n\ttemplate<typename ElementType, typename DistanceType>\n\tvoid knnSearch(const flann::Matrix<ElementType>& queries, flann::Matrix<int>& indices, flann::Matrix<DistanceType>& dists, int knn, const SearchParams& params)\n\t{\n\t    tcp::socket sock(io_service_);\n\t    sock.connect(*iterator_);\n\n\t    Request<ElementType> req;\n\t    req.nn = knn;\n\t    req.queries = queries;\n\t    req.checks = params.checks;\n\t    // send request\n\t    write_object(sock,req);\n\n\t    Response<DistanceType> resp;\n\t    // read response\n\t    read_object(sock, resp);\n\n\t    for (size_t i=0;i<indices.rows;++i) {\n\t    \tfor (size_t j=0;j<indices.cols;++j) {\n\t    \t\tindices[i][j] = resp.indices[i][j];\n\t    \t\tdists[i][j] = resp.dists[i][j];\n\t    \t}\n\t    }\n\t}\n\n\nprivate:\n\tboost::asio::io_service io_service_;\n\ttcp::resolver::iterator iterator_;\n};\n\n\n} //namespace mpi\n} // namespace flann\n\n#endif // MPI_CLIENT_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/flann_mpi_client.cpp",
    "content": "#include <stdio.h>\n#include <time.h>\n\n#include <cstdlib>\n#include <iostream>\n#include <flann/util/params.h>\n#include <flann/io/hdf5.h>\n#include <flann/mpi/client.h>\n\n\n\n#define IF_RANK0 if (world.rank()==0)\n\ntimeval start_time_;\nvoid start_timer(const std::string& message = \"\")\n{\n\tif (!message.empty()) {\n\t\tprintf(\"%s\", message.c_str());\n\t\tfflush(stdout);\n\t}\n    gettimeofday(&start_time_,NULL);\n}\n\ndouble stop_timer()\n{\n    timeval end_time;\n    gettimeofday(&end_time,NULL);\n\n\treturn double(end_time.tv_sec-start_time_.tv_sec)+ double(end_time.tv_usec-start_time_.tv_usec)/1000000;\n}\n\nfloat compute_precision(const flann::Matrix<int>& match, const flann::Matrix<int>& indices)\n{\n\tint count = 0;\n\n\tassert(match.rows == indices.rows);\n\tsize_t nn = std::min(match.cols, indices.cols);\n\n\tfor(size_t i=0; i<match.rows; ++i) {\n\t\tfor (size_t j=0;j<nn;++j) {\n\t\t\tfor (size_t k=0;k<nn;++k) {\n\t\t\t\tif (match[i][j]==indices[i][k]) {\n\t\t\t\t\tcount ++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn float(count)/(nn*match.rows);\n}\n\n\nint main(int argc, char* argv[])\n{\n\ttry {\n\n\t\tflann::Matrix<float> query;\n\t\tflann::Matrix<int> match;\n\n\t\tflann::load_from_file(query, \"sift100K.h5\",\"query\");\n\t\tflann::load_from_file(match, \"sift100K.h5\",\"match\");\n\t\t//\tflann::load_from_file(gt_dists, \"sift100K.h5\",\"dists\");\n\n\t\tflann::mpi::Client index(\"localhost\",\"9999\");\n\n\t\tint nn = 1;\n\t\tflann::Matrix<int> indices(new int[query.rows*nn], query.rows, nn);\n\t\tflann::Matrix<float> dists(new float[query.rows*nn], query.rows, nn);\n\n\t\tstart_timer(\"Performing search...\\n\");\n\t\tindex.knnSearch(query, indices, dists, nn, flann::SearchParams(64));\n\t\tprintf(\"Search done (%g seconds)\\n\", stop_timer());\n\n\t\tprintf(\"Checking results\\n\");\n\t\tfloat precision = compute_precision(match, indices);\n\t\tprintf(\"Precision is: %g\\n\", precision);\n\n\t}\n\tcatch (std::exception& e) {\n\t\tstd::cerr << \"Exception: \" << e.what() << \"\\n\";\n\t}\n\n\treturn 0;\n}\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/flann_mpi_server.cpp",
    "content": "#include <boost/mpi.hpp>\n#include <flann/mpi/server.h>\n#include <stdio.h>\n#include <time.h>\n\nint main(int argc, char* argv[])\n{\n\tboost::mpi::environment env(argc, argv);\n\n\ttry {\n\t\tif (argc != 4) {\n\t\t\tstd::cout << \"Usage: \" << argv[0] << \" <file> <dataset> <port>\\n\";\n\t\t\treturn 1;\n\t\t}\n\t\tflann::mpi::Server<flann::L2<float> > server(argv[1], argv[2], std::atoi(argv[3]),\n\t\t\t\tflann::KDTreeIndexParams(4));\n\n\t\tserver.run();\n\t}\n\tcatch (std::exception& e) {\n\t\tstd::cerr << \"Exception: \" << e.what() << \"\\n\";\n\t}\n\n\treturn 0;\n}\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/index.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2010  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2010  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_MPI_HPP_\n#define FLANN_MPI_HPP_\n\n#include <boost/mpi.hpp>\n#include <boost/serialization/array.hpp>\n#include <flann/flann.hpp>\n#include <flann/io/hdf5.h>\n\nnamespace flann\n{\nnamespace mpi\n{\n\ntemplate<typename DistanceType>\nstruct SearchResults\n{\n    flann::Matrix<int> indices;\n    flann::Matrix<DistanceType> dists;\n\n    template<typename Archive>\n    void serialize(Archive& ar, const unsigned int version)\n    {\n        ar& indices.rows;\n        ar& indices.cols;\n        if (Archive::is_loading::value) {\n            indices = Matrix<int>(new int[indices.rows*indices.cols], indices.rows, indices.cols);\n        }\n        ar& boost::serialization::make_array(indices.ptr(), indices.rows*indices.cols);\n        if (Archive::is_saving::value) {\n            delete[] indices.ptr();\n        }\n        ar& dists.rows;\n        ar& dists.cols;\n        if (Archive::is_loading::value) {\n            dists = Matrix<DistanceType>(new DistanceType[dists.rows*dists.cols], dists.rows, dists.cols);\n        }\n        ar& boost::serialization::make_array(dists.ptr(), dists.rows*dists.cols);\n        if (Archive::is_saving::value) {\n            delete[] dists.ptr();\n        }\n    }\n};\n\ntemplate<typename DistanceType>\nstruct ResultsMerger\n{\n    SearchResults<DistanceType> operator()(SearchResults<DistanceType> a, SearchResults<DistanceType> b)\n    {\n        SearchResults<DistanceType> results;\n        results.indices = flann::Matrix<int>(new int[a.indices.rows*a.indices.cols],a.indices.rows,a.indices.cols);\n        results.dists = flann::Matrix<DistanceType>(new DistanceType[a.dists.rows*a.dists.cols],a.dists.rows,a.dists.cols);\n\n\n        for (size_t i = 0; i < results.dists.rows; ++i) {\n            size_t idx = 0;\n            size_t a_idx = 0;\n            size_t b_idx = 0;\n            while (idx < results.dists.cols) {\n                if (a.dists[i][a_idx] <= b.dists[i][b_idx]) {\n                    results.dists[i][idx] = a.dists[i][a_idx];\n                    results.indices[i][idx] = a.indices[i][a_idx];\n                    idx++;\n                    a_idx++;\n                }\n                else {\n                    results.dists[i][idx] = b.dists[i][b_idx];\n                    results.indices[i][idx] = b.indices[i][b_idx];\n                    idx++;\n                    b_idx++;\n                }\n            }\n        }\n        delete[] a.indices.ptr();\n        delete[] a.dists.ptr();\n        delete[] b.indices.ptr();\n        delete[] b.dists.ptr();\n        return results;\n    }\n};\n\n\n\ntemplate<typename Distance>\nclass Index\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    flann::Index<Distance>* flann_index;\n    flann::Matrix<ElementType> dataset;\n    int size_;\n    int offset_;\n\npublic:\n    Index(const std::string& file_name,\n          const std::string& dataset_name,\n          const IndexParams& params);\n\n    ~Index();\n\n    void buildIndex()\n    {\n        flann_index->buildIndex();\n    }\n\n    void knnSearch(const flann::Matrix<ElementType>& queries,\n                   flann::Matrix<int>& indices,\n                   flann::Matrix<DistanceType>& dists,\n                   int knn, const\n                   SearchParams& params);\n\n    int radiusSearch(const flann::Matrix<ElementType>& query,\n                     flann::Matrix<int>& indices,\n                     flann::Matrix<DistanceType>& dists,\n                     float radius,\n                     const SearchParams& params);\n\n    // void save(std::string filename);\n\n    int veclen() const\n    {\n        return flann_index->veclen();\n    }\n\n    int size() const\n    {\n        return size_;\n    }\n\n    IndexParams getIndexParameters()\n    {\n        return flann_index->getParameters();\n    }\n};\n\n\ntemplate<typename Distance>\nIndex<Distance>::Index(const std::string& file_name, const std::string& dataset_name, const IndexParams& params)\n{\n    boost::mpi::communicator world;\n    flann_algorithm_t index_type = get_param<flann_algorithm_t>(params,\"algorithm\");\n    if (index_type == FLANN_INDEX_SAVED) {\n        throw FLANNException(\"Saving/loading of MPI indexes is not currently supported.\");\n    }\n    flann::mpi::load_from_file(dataset, file_name, dataset_name);\n    flann_index = new flann::Index<Distance>(dataset, params);\n\n    std::vector<int> sizes;\n    // get the sizes of all MPI indices\n    all_gather(world, (int)flann_index->size(), sizes);\n    size_ = 0;\n    offset_ = 0;\n    for (size_t i = 0; i < sizes.size(); ++i) {\n        if ((int)i < world.rank()) offset_ += sizes[i];\n        size_ += sizes[i];\n    }\n}\n\ntemplate<typename Distance>\nIndex<Distance>::~Index()\n{\n    delete flann_index;\n    delete[] dataset.ptr();\n}\n\ntemplate<typename Distance>\nvoid Index<Distance>::knnSearch(const flann::Matrix<ElementType>& queries, flann::Matrix<int>& indices, flann::Matrix<DistanceType>& dists, int knn, const SearchParams& params)\n{\n    boost::mpi::communicator world;\n    flann::Matrix<int> local_indices(new int[queries.rows*knn], queries.rows, knn);\n    flann::Matrix<DistanceType> local_dists(new DistanceType[queries.rows*knn], queries.rows, knn);\n\n    flann_index->knnSearch(queries, local_indices, local_dists, knn, params);\n    for (size_t i = 0; i < local_indices.rows; ++i) {\n        for (size_t j = 0; j < local_indices.cols; ++j) {\n            local_indices[i][j] += offset_;\n        }\n    }\n    SearchResults<DistanceType> local_results;\n    local_results.indices = local_indices;\n    local_results.dists = local_dists;\n    SearchResults<DistanceType> results;\n\n    // perform MPI reduce\n    reduce(world, local_results, results, ResultsMerger<DistanceType>(), 0);\n\n    if (world.rank() == 0) {\n        for (size_t i = 0; i < results.indices.rows; ++i) {\n            for (size_t j = 0; j < results.indices.cols; ++j) {\n                indices[i][j] = results.indices[i][j];\n                dists[i][j] = results.dists[i][j];\n            }\n        }\n        delete[] results.indices.ptr();\n        delete[] results.dists.ptr();\n    }\n}\n\ntemplate<typename Distance>\nint Index<Distance>::radiusSearch(const flann::Matrix<ElementType>& query, flann::Matrix<int>& indices, flann::Matrix<DistanceType>& dists, float radius, const SearchParams& params)\n{\n    boost::mpi::communicator world;\n    flann::Matrix<int> local_indices(new int[indices.rows*indices.cols], indices.rows, indices.cols);\n    flann::Matrix<DistanceType> local_dists(new DistanceType[dists.rows*dists.cols], dists.rows, dists.cols);\n\n    flann_index->radiusSearch(query, local_indices, local_dists, radius, params);\n    for (size_t i = 0; i < local_indices.rows; ++i) {\n        for (size_t j = 0; j < local_indices.cols; ++j) {\n            local_indices[i][j] += offset_;\n        }\n    }\n    SearchResults<DistanceType> local_results;\n    local_results.indices = local_indices;\n    local_results.dists = local_dists;\n    SearchResults<DistanceType> results;\n\n    // perform MPI reduce\n    reduce(world, local_results, results, ResultsMerger<DistanceType>(), 0);\n\n    if (world.rank() == 0) {\n        for (int i = 0; i < std::min(results.indices.rows, indices.rows); ++i) {\n            for (int j = 0; j < std::min(results.indices.cols, indices.cols); ++j) {\n                indices[i][j] = results.indices[i][j];\n                dists[i][j] = results.dists[i][j];\n            }\n        }\n        delete[] results.indices.ptr();\n        delete[] results.dists.ptr();\n    }\n    return 0;\n}\n\n}\n} //namespace flann::mpi\n\nnamespace boost { namespace mpi {\ntemplate<typename DistanceType>\nstruct is_commutative<flann::mpi::ResultsMerger<DistanceType>, flann::mpi::SearchResults<DistanceType> > : mpl::true_ { };\n} } // end namespace boost::mpi\n\n\n#endif /* FLANN_MPI_HPP_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/matrix.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef MPI_MATRIX_H_\n#define MPI_MATRIX_H_\n\n#include <flann/util/matrix.h>\n#include <boost/serialization/array.hpp>\n\n\nnamespace boost {\nnamespace serialization {\n\ntemplate<class Archive, class T>\nvoid serialize(Archive & ar, flann::Matrix<T> & matrix, const unsigned int version)\n{\n\tar & matrix.rows & matrix.cols & matrix.stride;\n    if (Archive::is_loading::value) {\n        matrix = flann::Matrix<T>(new T[matrix.rows*matrix.cols], matrix.rows, matrix.cols, matrix.stride);\n    }\n    ar & boost::serialization::make_array(matrix.ptr(), matrix.rows*matrix.cols);\n}\n\n}\n}\n\n\n#endif /* MPI_MATRIX_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/queries.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef MPI_QUERIES_H_\n#define MPI_QUERIES_H_\n\n#include <flann/mpi/matrix.h>\n#include <boost/archive/binary_iarchive.hpp>\n#include <boost/archive/binary_oarchive.hpp>\n#include <boost/asio.hpp>\n\nnamespace flann\n{\n\ntemplate<typename T>\nstruct Request\n{\n\tflann::Matrix<T> queries;\n\tint nn;\n\tint checks;\n\n\ttemplate<typename Archive>\n\tvoid serialize(Archive& ar, const unsigned int version)\n\t{\n\t\tar & queries & nn & checks;\n\t}\n};\n\ntemplate<typename T>\nstruct Response\n{\n\tflann::Matrix<int> indices;\n\tflann::Matrix<T> dists;\n\n\ttemplate<typename Archive>\n\tvoid serialize(Archive& ar, const unsigned int version)\n\t{\n\t\tar & indices & dists;\n\t}\n};\n\n\nusing boost::asio::ip::tcp;\n\ntemplate <typename T>\nvoid read_object(tcp::socket& sock, T& val)\n{\n\tuint32_t size;\n\tboost::asio::read(sock, boost::asio::buffer(&size, sizeof(size)));\n\tsize = ntohl(size);\n\n\tboost::asio::streambuf archive_stream;\n\tboost::asio::read(sock, archive_stream, boost::asio::transfer_at_least(size));\n\n\tboost::archive::binary_iarchive archive(archive_stream);\n\tarchive >> val;\n}\n\ntemplate <typename T>\nvoid write_object(tcp::socket& sock, const T& val)\n{\n\tboost::asio::streambuf archive_stream;\n\tboost::archive::binary_oarchive archive(archive_stream);\n\tarchive << val;\n\n\tuint32_t size = archive_stream.size();\n\tsize = htonl(size);\n\tboost::asio::write(sock, boost::asio::buffer(&size, sizeof(size)));\n\tboost::asio::write(sock, archive_stream);\n\n}\n\n}\n\n\n\n#endif /* MPI_QUERIES_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/mpi/server.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef MPI_SERVER_H_\n#define MPI_SERVER_H_\n\n#include <flann/mpi/index.h>\n#include <stdio.h>\n#include <time.h>\n\n#include <cstdlib>\n#include <iostream>\n#include <boost/bind.hpp>\n#include <boost/shared_ptr.hpp>\n#include <boost/asio.hpp>\n#include <boost/thread/thread.hpp>\n\n#include \"queries.h\"\n\nnamespace flann {\n\nnamespace mpi {\n\ntemplate<typename Distance>\nclass Server\n{\n\n\ttypedef typename Distance::ElementType ElementType;\n\ttypedef typename Distance::ResultType DistanceType;\n\ttypedef boost::shared_ptr<tcp::socket> socket_ptr;\n\ttypedef flann::mpi::Index<Distance> FlannIndex;\n\n\tvoid session(socket_ptr sock)\n\t{\n\t\tboost::mpi::communicator world;\n\t\ttry {\n\t\t\tRequest<ElementType> req;\n\t\t\tif (world.rank()==0) {\n\t\t\t\tread_object(*sock,req);\n\t\t\t\tstd::cout << \"Received query\\n\";\n\t\t\t}\n\t\t\t// broadcast request to all MPI processes\n\t\t\tboost::mpi::broadcast(world, req, 0);\n\n\t\t\tResponse<DistanceType> resp;\n\t\t\tif (world.rank()==0) {\n\t\t\t\tint rows = req.queries.rows;\n\t\t\t\tint cols = req.nn;\n\t\t\t\tresp.indices = flann::Matrix<int>(new int[rows*cols], rows, cols);\n\t\t\t\tresp.dists = flann::Matrix<DistanceType>(new DistanceType[rows*cols], rows, cols);\n\t\t\t}\n\n\t\t\tstd::cout << \"Searching in process \" << world.rank() << \"\\n\";\n\t\t\tindex_->knnSearch(req.queries, resp.indices, resp.dists, req.nn, flann::SearchParams(req.checks));\n\n\t\t\tif (world.rank()==0) {\n\t\t\t\tstd::cout << \"Sending result\\n\";\n\t\t\t\twrite_object(*sock,resp);\n\t\t\t}\n\n\t\t\tdelete[] req.queries.ptr();\n\t\t\tif (world.rank()==0) {\n\t\t\t\tdelete[] resp.indices.ptr();\n\t\t\t\tdelete[] resp.dists.ptr();\n\t\t\t}\n\n\t\t}\n\t\tcatch (std::exception& e) {\n\t\t\tstd::cerr << \"Exception in thread: \" << e.what() << \"\\n\";\n\t\t}\n\t}\n\n\n\npublic:\n\tServer(const std::string& filename, const std::string& dataset, short port, const IndexParams& params) :\n\t\tport_(port)\n\t{\n\t\tboost::mpi::communicator world;\n\t\tif (world.rank()==0) {\n\t\t\tstd::cout << \"Reading dataset and building index...\";\n\t\t\tstd::flush(std::cout);\n\t\t}\n\t\tindex_ = new FlannIndex(filename, dataset, params);\n\t\tindex_->buildIndex();\n\t\tworld.barrier(); // wait for data to be loaded and indexes to be created\n\t\tif (world.rank()==0) {\n\t\t\tstd::cout << \"done.\\n\";\n\t\t}\n\t}\n\n\n\tvoid run()\n\t{\n\t\tboost::mpi::communicator world;\n\t\tboost::shared_ptr<boost::asio::io_service> io_service;\n\t\tboost::shared_ptr<tcp::acceptor> acceptor;\n\n\t\tif (world.rank()==0) {\n\t\t\tio_service.reset(new boost::asio::io_service());\n\t\t\tacceptor.reset(new tcp::acceptor(*io_service, tcp::endpoint(tcp::v4(), port_)));\n\t\t\tstd::cout << \"Start listening for queries...\\n\";\n\t\t}\n\t\tfor (;;) {\n\t\t\tsocket_ptr sock;\n\t\t\tif (world.rank()==0) {\n\t\t\t\tsock.reset(new tcp::socket(*io_service));\n\t\t\t\tacceptor->accept(*sock);\n\t\t\t\tstd::cout << \"Accepted connection\\n\";\n\t\t\t}\n\t\t\tworld.barrier(); // everybody waits here for a connection\n\t\t\tboost::thread t(boost::bind(&Server::session, this, sock));\n\t\t\tt.join();\n\t\t}\n\n\t}\n\nprivate:\n\tFlannIndex* index_;\n\tshort port_;\n};\n\n\n} // namespace mpi\n} // namespace flann\n\n#endif // MPI_SERVER_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/nn/ground_truth.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_GROUND_TRUTH_H_\n#define FLANN_GROUND_TRUTH_H_\n\n#include \"flann/algorithms/dist.h\"\n#include \"flann/util/matrix.h\"\n\n\nnamespace flann\n{\n\ntemplate <typename Distance>\nvoid find_nearest(const Matrix<typename Distance::ElementType>& dataset, typename Distance::ElementType* query, size_t* matches, size_t nn,\n                  size_t skip = 0, Distance distance = Distance())\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n    int n = nn + skip;\n\n    int* match = new int[n];\n    DistanceType* dists = new DistanceType[n];\n\n    dists[0] = distance(dataset[0], query, dataset.cols);\n    match[0] = 0;\n    int dcnt = 1;\n\n    for (size_t i=1; i<dataset.rows; ++i) {\n        DistanceType tmp = distance(dataset[i], query, dataset.cols);\n\n        if (dcnt<n) {\n            match[dcnt] = i;\n            dists[dcnt++] = tmp;\n        }\n        else if (tmp < dists[dcnt-1]) {\n            dists[dcnt-1] = tmp;\n            match[dcnt-1] = i;\n        }\n\n        int j = dcnt-1;\n        // bubble up\n        while (j>=1 && dists[j]<dists[j-1]) {\n            std::swap(dists[j],dists[j-1]);\n            std::swap(match[j],match[j-1]);\n            j--;\n        }\n    }\n\n    for (size_t i=0; i<nn; ++i) {\n        matches[i] = match[i+skip];\n    }\n\n    delete[] match;\n    delete[] dists;\n}\n\n\ntemplate <typename Distance>\nvoid compute_ground_truth(const Matrix<typename Distance::ElementType>& dataset, const Matrix<typename Distance::ElementType>& testset, Matrix<size_t>& matches,\n                          int skip=0, Distance d = Distance())\n{\n    for (size_t i=0; i<testset.rows; ++i) {\n        find_nearest<Distance>(dataset, testset[i], matches[i], matches.cols, skip, d);\n    }\n}\n\n\n}\n\n#endif //FLANN_GROUND_TRUTH_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/nn/index_testing.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_INDEX_TESTING_H_\n#define FLANN_INDEX_TESTING_H_\n\n#include <cstring>\n#include <cassert>\n#include <cmath>\n\n#include \"flann/util/matrix.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/logger.h\"\n#include \"flann/util/timer.h\"\n\n\nnamespace flann\n{\n\ninline int countCorrectMatches(size_t* neighbors, size_t* groundTruth, int n)\n{\n    int count = 0;\n    for (int i=0; i<n; ++i) {\n        for (int k=0; k<n; ++k) {\n            if (neighbors[i]==groundTruth[k]) {\n                count++;\n                break;\n            }\n        }\n    }\n    return count;\n}\n\n\ntemplate <typename Distance>\ntypename Distance::ResultType computeDistanceRaport(const Matrix<typename Distance::ElementType>& inputData, typename Distance::ElementType* target,\n\t\tsize_t* neighbors, size_t* groundTruth, int veclen, int n, const Distance& distance)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    DistanceType ret = 0;\n    for (int i=0; i<n; ++i) {\n        DistanceType den = distance(inputData[groundTruth[i]], target, veclen);\n        DistanceType num = distance(inputData[neighbors[i]], target, veclen);\n\n        if ((den==0)&&(num==0)) {\n            ret += 1;\n        }\n        else {\n            ret += num/den;\n        }\n    }\n\n    return ret;\n}\n\ntemplate <typename Index, typename Distance>\nfloat search_with_ground_truth(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                               const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches, int nn, int checks,\n                               float& time, typename Distance::ResultType& dist, const Distance& distance, int skipMatches)\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    if (matches.cols<size_t(nn)) {\n        Logger::info(\"matches.cols=%d, nn=%d\\n\",matches.cols,nn);\n        throw FLANNException(\"Ground truth is not computed for as many neighbors as requested\");\n    }\n\n    SearchParams searchParams(checks);\n\n    size_t* indices = new size_t[nn+skipMatches];\n    DistanceType* dists = new DistanceType[nn+skipMatches];\n    \n    Matrix<size_t> indices_mat(indices, 1, nn+skipMatches);\n    Matrix<DistanceType> dists_mat(dists, 1, nn+skipMatches);\n        \n    size_t* neighbors = indices + skipMatches;\n\n    int correct = 0;\n    DistanceType distR = 0;\n    StartStopTimer t;\n    int repeats = 0;\n    while (t.value<0.2) {\n        repeats++;\n        t.start();\n        correct = 0;\n        distR = 0;        \n        for (size_t i = 0; i < testData.rows; i++) {\n            index.knnSearch(Matrix<ElementType>(testData[i], 1, testData.cols), indices_mat, dists_mat, nn+skipMatches, searchParams);\n\n            correct += countCorrectMatches(neighbors,matches[i], nn);\n            distR += computeDistanceRaport<Distance>(inputData, testData[i], neighbors, matches[i], testData.cols, nn, distance);\n        }\n        t.stop();\n    }\n    time = float(t.value/repeats);\n\n    delete[] indices;\n    delete[] dists;\n\n    float precicion = (float)correct/(nn*testData.rows);\n\n    dist = distR/(testData.rows*nn);\n\n    Logger::info(\"%8d %10.4g %10.5g %10.5g %10.5g\\n\",\n                 checks, precicion, time, 1000.0 * time / testData.rows, dist);\n\n    return precicion;\n}\n\n\ntemplate <typename Index, typename Distance>\nfloat test_index_checks(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                        const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches,\n                        int checks, float& precision, const Distance& distance, int nn = 1, int skipMatches = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    float time = 0;\n    DistanceType dist = 0;\n    precision = search_with_ground_truth(index, inputData, testData, matches, nn, checks, time, dist, distance, skipMatches);\n\n    return time;\n}\n\ntemplate <typename Index, typename Distance>\nfloat test_index_precision(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                           const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches,\n                           float precision, int& checks, const Distance& distance, int nn = 1, int skipMatches = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n    const float SEARCH_EPS = 0.001f;\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    int c2 = 1;\n    float p2;\n    int c1 = 1;\n//     float p1;\n    float time;\n    DistanceType dist;\n\n    p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n\n    if (p2>precision) {\n        Logger::info(\"Got as close as I can\\n\");\n        checks = c2;\n        return time;\n    }\n\n    while (p2<precision) {\n        c1 = c2;\n//         p1 = p2;\n        c2 *=2;\n        p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n    }\n\n    int cx;\n    float realPrecision;\n    if (fabs(p2-precision)>SEARCH_EPS) {\n        Logger::info(\"Start linear estimation\\n\");\n        // after we got to values in the vecinity of the desired precision\n        // use linear approximation get a better estimation\n\n        cx = (c1+c2)/2;\n        realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n        while (fabs(realPrecision-precision)>SEARCH_EPS) {\n\n            if (realPrecision<precision) {\n                c1 = cx;\n            }\n            else {\n                c2 = cx;\n            }\n            cx = (c1+c2)/2;\n            if (cx==c1) {\n                Logger::info(\"Got as close as I can\\n\");\n                break;\n            }\n            realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n        }\n\n        c2 = cx;\n        p2 = realPrecision;\n\n    }\n    else {\n        Logger::info(\"No need for linear estimation\\n\");\n        cx = c2;\n        realPrecision = p2;\n    }\n\n    checks = cx;\n    return time;\n}\n\n\ntemplate <typename Index, typename Distance>\nvoid test_index_precisions(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                           const Matrix<typename Distance::ElementType>& testData, const Matrix<int>& matches,\n                           float* precisions, int precisions_length, const Distance& distance, int nn = 1, int skipMatches = 0, float maxTime = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    const float SEARCH_EPS = 0.001;\n\n    // make sure precisions array is sorted\n    std::sort(precisions, precisions+precisions_length);\n\n    int pindex = 0;\n    float precision = precisions[pindex];\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    int c2 = 1;\n    float p2;\n\n    int c1 = 1;\n    float p1;\n\n    float time;\n    DistanceType dist;\n\n    p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n\n    // if precision for 1 run down the tree is already\n    // better then some of the requested precisions, then\n    // skip those\n    while (precisions[pindex]<p2 && pindex<precisions_length) {\n        pindex++;\n    }\n\n    if (pindex==precisions_length) {\n        Logger::info(\"Got as close as I can\\n\");\n        return;\n    }\n\n    for (int i=pindex; i<precisions_length; ++i) {\n\n        precision = precisions[i];\n        while (p2<precision) {\n            c1 = c2;\n            p1 = p2;\n            c2 *=2;\n            p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n            if ((maxTime> 0)&&(time > maxTime)&&(p2<precision)) return;\n        }\n\n        int cx;\n        float realPrecision;\n        if (fabs(p2-precision)>SEARCH_EPS) {\n            Logger::info(\"Start linear estimation\\n\");\n            // after we got to values in the vecinity of the desired precision\n            // use linear approximation get a better estimation\n\n            cx = (c1+c2)/2;\n            realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n            while (fabs(realPrecision-precision)>SEARCH_EPS) {\n\n                if (realPrecision<precision) {\n                    c1 = cx;\n                }\n                else {\n                    c2 = cx;\n                }\n                cx = (c1+c2)/2;\n                if (cx==c1) {\n                    Logger::info(\"Got as close as I can\\n\");\n                    break;\n                }\n                realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n            }\n\n            c2 = cx;\n            p2 = realPrecision;\n\n        }\n        else {\n            Logger::info(\"No need for linear estimation\\n\");\n            cx = c2;\n            realPrecision = p2;\n        }\n\n    }\n}\n\n}\n\n#endif //FLANN_INDEX_TESTING_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/nn/index_testing.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_INDEX_TESTING_H_\n#define FLANN_INDEX_TESTING_H_\n\n#include <cstring>\n#include <cassert>\n#include <cmath>\n\n#include \"flann/util/matrix.h\"\n#include \"flann/algorithms/nn_index.h\"\n#include \"flann/util/result_set.h\"\n#include \"flann/util/logger.h\"\n#include \"flann/util/timer.h\"\n\n\nnamespace flann\n{\n\ninline int GetRecall(const size_t* neighbors, size_t* groundTruth, int n)\n{\n    int count = 0;\n    for (int i=0; i<n; ++i) {\n        for (int k=0; k<n; ++k) {\n            if (neighbors[i]==groundTruth[k]) {\n                count++;\n                break;\n            }\n        }\n    }\n    return count;\n}\n\ninline int countCorrectMatches(size_t* neighbors, size_t* groundTruth, int n)\n{\n    int count = 0;\n    for (int i=0; i<n; ++i) {\n        for (int k=0; k<n; ++k) {\n            if (neighbors[i]==groundTruth[k]) {\n                count++;\n                break;\n            }\n        }\n    }\n    return count;\n}\n\n\ntemplate <typename Distance>\ntypename Distance::ResultType computeDistanceRaport(const Matrix<typename Distance::ElementType>& inputData, typename Distance::ElementType* target,\n\t\tsize_t* neighbors, size_t* groundTruth, int veclen, int n, const Distance& distance)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    DistanceType ret = 0;\n    for (int i=0; i<n; ++i) {\n        DistanceType den = distance(inputData[groundTruth[i]], target, veclen);\n        DistanceType num = distance(inputData[neighbors[i]], target, veclen);\n\n        if ((den==0)&&(num==0)) {\n            ret += 1;\n        }\n        else {\n            ret += num/den;\n        }\n    }\n\n    return ret;\n}\n\ntemplate <typename Index, typename Distance>\nfloat search_with_ground_truth(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                               const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches, int nn, int checks,\n                               float& time, typename Distance::ResultType& dist, const Distance& distance, int skipMatches)\n{\n    typedef typename Distance::ElementType ElementType;\n    typedef typename Distance::ResultType DistanceType;\n\n    if (matches.cols<size_t(nn)) {\n        Logger::info(\"matches.cols=%d, nn=%d\\n\",matches.cols,nn);\n        throw FLANNException(\"Ground truth is not computed for as many neighbors as requested\");\n    }\n\n    SearchParams searchParams(checks);\n\n    size_t* indices = new size_t[nn+skipMatches];\n    DistanceType* dists = new DistanceType[nn+skipMatches];\n    \n    Matrix<size_t> indices_mat(indices, 1, nn+skipMatches);\n    Matrix<DistanceType> dists_mat(dists, 1, nn+skipMatches);\n        \n    size_t* neighbors = indices + skipMatches;\n\n    int correct = 0;\n    DistanceType distR = 0;\n    StartStopTimer t;\n    int repeats = 0;\n    while (t.value<0.2) {\n        repeats++;\n        t.start();\n        correct = 0;\n        distR = 0;        \n        for (size_t i = 0; i < testData.rows; i++) {\n            index.knnSearch(Matrix<ElementType>(testData[i], 1, testData.cols), indices_mat, dists_mat, nn+skipMatches, searchParams);\n\n            correct += countCorrectMatches(neighbors,matches[i], nn);\n            distR += computeDistanceRaport<Distance>(inputData, testData[i], neighbors, matches[i], testData.cols, nn, distance);\n        }\n        t.stop();\n    }\n    time = float(t.value/repeats);\n\n    delete[] indices;\n    delete[] dists;\n\n    float precicion = (float)correct/(nn*testData.rows);\n\n    dist = distR/(testData.rows*nn);\n\n    Logger::info(\"%8d %10.4g %10.5g %10.5g %10.5g\\n\",\n                 checks, precicion, time, 1000.0 * time / testData.rows, dist);\n\n    return precicion;\n}\n\n\ntemplate <typename Index, typename Distance>\nfloat test_index_checks(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                        const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches,\n                        int checks, float& precision, const Distance& distance, int nn = 1, int skipMatches = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    float time = 0;\n    DistanceType dist = 0;\n    precision = search_with_ground_truth(index, inputData, testData, matches, nn, checks, time, dist, distance, skipMatches);\n\n    return time;\n}\n\ntemplate <typename Index, typename Distance>\nfloat test_index_precision(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                           const Matrix<typename Distance::ElementType>& testData, const Matrix<size_t>& matches,\n                           float precision, int& checks, const Distance& distance, int nn = 1, int skipMatches = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n    const float SEARCH_EPS = 0.001f;\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    int c2 = 1;\n    float p2;\n    int c1 = 1;\n//     float p1;\n    float time;\n    DistanceType dist;\n\n    p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n\n    if (p2>precision) {\n        Logger::info(\"Got as close as I can\\n\");\n        checks = c2;\n        return time;\n    }\n\n    while (p2<precision) {\n        c1 = c2;\n//         p1 = p2;\n        c2 *=2;\n        p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n    }\n\n    int cx;\n    float realPrecision;\n    if (fabs(p2-precision)>SEARCH_EPS) {\n        Logger::info(\"Start linear estimation\\n\");\n        // after we got to values in the vecinity of the desired precision\n        // use linear approximation get a better estimation\n\n        cx = (c1+c2)/2;\n        realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n        while (fabs(realPrecision-precision)>SEARCH_EPS) {\n\n            if (realPrecision<precision) {\n                c1 = cx;\n            }\n            else {\n                c2 = cx;\n            }\n            cx = (c1+c2)/2;\n            if (cx==c1) {\n                Logger::info(\"Got as close as I can\\n\");\n                break;\n            }\n            realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n        }\n\n        c2 = cx;\n        p2 = realPrecision;\n\n    }\n    else {\n        Logger::info(\"No need for linear estimation\\n\");\n        cx = c2;\n        realPrecision = p2;\n    }\n\n    checks = cx;\n    return time;\n}\n\n\ntemplate <typename Index, typename Distance>\nvoid test_index_precisions(Index& index, const Matrix<typename Distance::ElementType>& inputData,\n                           const Matrix<typename Distance::ElementType>& testData, const Matrix<int>& matches,\n                           float* precisions, int precisions_length, const Distance& distance, int nn = 1, int skipMatches = 0, float maxTime = 0)\n{\n    typedef typename Distance::ResultType DistanceType;\n\n    const float SEARCH_EPS = 0.001;\n\n    // make sure precisions array is sorted\n    std::sort(precisions, precisions+precisions_length);\n\n    int pindex = 0;\n    float precision = precisions[pindex];\n\n    Logger::info(\"  Nodes  Precision(%)   Time(s)   Time/vec(ms)  Mean dist\\n\");\n    Logger::info(\"---------------------------------------------------------\\n\");\n\n    int c2 = 1;\n    float p2;\n\n    int c1 = 1;\n    float p1;\n\n    float time;\n    DistanceType dist;\n\n    p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n\n    // if precision for 1 run down the tree is already\n    // better then some of the requested precisions, then\n    // skip those\n    while (precisions[pindex]<p2 && pindex<precisions_length) {\n        pindex++;\n    }\n\n    if (pindex==precisions_length) {\n        Logger::info(\"Got as close as I can\\n\");\n        return;\n    }\n\n    for (int i=pindex; i<precisions_length; ++i) {\n\n        precision = precisions[i];\n        while (p2<precision) {\n            c1 = c2;\n            p1 = p2;\n            c2 *=2;\n            p2 = search_with_ground_truth(index, inputData, testData, matches, nn, c2, time, dist, distance, skipMatches);\n            if ((maxTime> 0)&&(time > maxTime)&&(p2<precision)) return;\n        }\n\n        int cx;\n        float realPrecision;\n        if (fabs(p2-precision)>SEARCH_EPS) {\n            Logger::info(\"Start linear estimation\\n\");\n            // after we got to values in the vecinity of the desired precision\n            // use linear approximation get a better estimation\n\n            cx = (c1+c2)/2;\n            realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n            while (fabs(realPrecision-precision)>SEARCH_EPS) {\n\n                if (realPrecision<precision) {\n                    c1 = cx;\n                }\n                else {\n                    c2 = cx;\n                }\n                cx = (c1+c2)/2;\n                if (cx==c1) {\n                    Logger::info(\"Got as close as I can\\n\");\n                    break;\n                }\n                realPrecision = search_with_ground_truth(index, inputData, testData, matches, nn, cx, time, dist, distance, skipMatches);\n            }\n\n            c2 = cx;\n            p2 = realPrecision;\n\n        }\n        else {\n            Logger::info(\"No need for linear estimation\\n\");\n            cx = c2;\n            realPrecision = p2;\n        }\n\n    }\n}\n\n}\n\n#endif //FLANN_INDEX_TESTING_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/nn/simplex_downhill.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_SIMPLEX_DOWNHILL_H_\n#define FLANN_SIMPLEX_DOWNHILL_H_\n\nnamespace flann\n{\n\n/**\n    Adds val to array vals (and point to array points) and keeping the arrays sorted by vals.\n */\ntemplate <typename T>\nvoid addValue(int pos, float val, float* vals, T* point, T* points, int n)\n{\n    vals[pos] = val;\n    for (int i=0; i<n; ++i) {\n        points[pos*n+i] = point[i];\n    }\n\n    // bubble down\n    int j=pos;\n    while (j>0 && vals[j]<vals[j-1]) {\n        swap(vals[j],vals[j-1]);\n        for (int i=0; i<n; ++i) {\n            swap(points[j*n+i],points[(j-1)*n+i]);\n        }\n        --j;\n    }\n}\n\n\n/**\n    Simplex downhill optimization function.\n    Preconditions: points is a 2D mattrix of size (n+1) x n\n                    func is the cost function taking n an array of n params and returning float\n                    vals is the cost function in the n+1 simplex points, if NULL it will be computed\n\n    Postcondition: returns optimum value and points[0..n] are the optimum parameters\n */\ntemplate <typename T, typename F>\nfloat optimizeSimplexDownhill(T* points, int n, F func, float* vals = NULL )\n{\n    const int MAX_ITERATIONS = 10;\n\n    assert(n>0);\n\n    T* p_o = new T[n];\n    T* p_r = new T[n];\n    T* p_e = new T[n];\n\n    int alpha = 1;\n\n    int iterations = 0;\n\n    bool ownVals = false;\n    if (vals == NULL) {\n        ownVals = true;\n        vals = new float[n+1];\n        for (int i=0; i<n+1; ++i) {\n            float val = func(points+i*n);\n            addValue(i, val, vals, points+i*n, points, n);\n        }\n    }\n    int nn = n*n;\n\n    while (true) {\n\n        if (iterations++ > MAX_ITERATIONS) break;\n\n        // compute average of simplex points (except the highest point)\n        for (int j=0; j<n; ++j) {\n            p_o[j] = 0;\n            for (int i=0; i<n; ++i) {\n                p_o[i] += points[j*n+i];\n            }\n        }\n        for (int i=0; i<n; ++i) {\n            p_o[i] /= n;\n        }\n\n        bool converged = true;\n        for (int i=0; i<n; ++i) {\n            if (p_o[i] != points[nn+i]) {\n                converged = false;\n            }\n        }\n        if (converged) break;\n\n        // trying a reflection\n        for (int i=0; i<n; ++i) {\n            p_r[i] = p_o[i] + alpha*(p_o[i]-points[nn+i]);\n        }\n        float val_r = func(p_r);\n\n        if ((val_r>=vals[0])&&(val_r<vals[n])) {\n            // reflection between second highest and lowest\n            // add it to the simplex\n            Logger::info(\"Choosing reflection\\n\");\n            addValue(n, val_r,vals, p_r, points, n);\n            continue;\n        }\n\n        if (val_r<vals[0]) {\n            // value is smaller than smalest in simplex\n\n            // expand some more to see if it drops further\n            for (int i=0; i<n; ++i) {\n                p_e[i] = 2*p_r[i]-p_o[i];\n            }\n            float val_e = func(p_e);\n\n            if (val_e<val_r) {\n                Logger::info(\"Choosing reflection and expansion\\n\");\n                addValue(n, val_e,vals,p_e,points,n);\n            }\n            else {\n                Logger::info(\"Choosing reflection\\n\");\n                addValue(n, val_r,vals,p_r,points,n);\n            }\n            continue;\n        }\n        if (val_r>=vals[n]) {\n            for (int i=0; i<n; ++i) {\n                p_e[i] = (p_o[i]+points[nn+i])/2;\n            }\n            float val_e = func(p_e);\n\n            if (val_e<vals[n]) {\n                Logger::info(\"Choosing contraction\\n\");\n                addValue(n,val_e,vals,p_e,points,n);\n                continue;\n            }\n        }\n        {\n            Logger::info(\"Full contraction\\n\");\n            for (int j=1; j<=n; ++j) {\n                for (int i=0; i<n; ++i) {\n                    points[j*n+i] = (points[j*n+i]+points[i])/2;\n                }\n                float val = func(points+j*n);\n                addValue(j,val,vals,points+j*n,points,n);\n            }\n        }\n    }\n\n    float bestVal = vals[0];\n\n    delete[] p_r;\n    delete[] p_o;\n    delete[] p_e;\n    if (ownVals) delete[] vals;\n\n    return bestVal;\n}\n\n}\n\n#endif //FLANN_SIMPLEX_DOWNHILL_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/#result_set.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_RESULTSET_H\n#define FLANN_RESULTSET_H\n\n#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\n\nnamespace flann\n{\n\n/* This record represents a branch point when finding neighbors in\n    the tree.  It contains a record of the minimum distance to the query\n    point, as well as the node at which the search resumes.\n */\n\ntemplate <typename T, typename DistanceType>\nstruct BranchStruct\n{\n    T node;           /* Tree node at which search resumes */\n    DistanceType mindist;     /* Minimum distance to query for all nodes below. */\n\n    BranchStruct() {}\n    BranchStruct(const T& aNode, DistanceType dist) : node(aNode), mindist(dist) {}\n\n    bool operator<(const BranchStruct<T, DistanceType>& rhs) const\n    {\n        return mindist<rhs.mindist;\n    }\n};\n\n\ntemplate <typename DistanceType>\nstruct DistanceIndex\n{\n    DistanceIndex(DistanceType dist, size_t index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    DistanceType dist_;\n    size_t index_;\n};\n\n\ntemplate <typename DistanceType>\nclass ResultSet\n{\npublic:\n    virtual ~ResultSet() {}\n\n    virtual bool full() const = 0;\n\n    virtual void addPoint(DistanceType dist, size_t index) = 0;\n\n    virtual DistanceType worstDist() const = 0;\n\n};\n\n/**\n * KNNSimpleResultSet does not ensure that the element it holds are unique.\n * Is used in those cases where the nearest neighbour algorithm used does not\n * attempt to insert the same element multiple times.\n */\ntemplate <typename DistanceType>\nclass KNNSimpleResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNSimpleResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\tstd::cout<<\"SimpleResultSet\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNSimpleResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return count_;\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return count_==capacity_;\n    }\n    /**\n     * Add a point to result set\n     * @param dist distance to point\n     * @param index index of point\n     */\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\tif(count_ >= capacity_) return;\n\t\tdist_index_[count_].dist_ = dist;\n        dist_index_[count_].index_ = index;\n\t\tcount_++;\n/*\n    \tif (dist>=worst_distance_) return;\n\n        if (count_ < capacity_) ++count_;\n        size_t i;\n        for (i=count_-1; i>0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_>dist) || ((dist==dist_index_[i-1].dist_)&&(dist_index_[i-1].index_>index)) )\n#else\n            if (dist_index_[i-1].dist_>dist)\n#endif\n            {\n            \tdist_index_[i] = dist_index_[i-1];\n            }\n            else break;\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n};\n\n/**\n * K-Nearest neighbour result set. Ensures that the elements inserted are unique\n */\ntemplate <typename DistanceType>\nclass KNNResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n    KNNResultSet(int capacity) : capacity_(capacity)\n    {\n\t\tstd::cout<<\"KNNResultSet\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNResultSet()\n    {\n\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    size_t size() const\n    {\n        return count_;\n    }\n\n    bool full() const\n    {\n        return count_ == capacity_;\n    }\n\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\tif(count_ >= capacity_) return;\n\t\tdist_index_[count_].dist_ = dist;\n        dist_index_[count_].index_ = index;\n\t\tcount_++;\n\t\t/*\n        if (dist >= worst_distance_) return;\n        size_t i;\n        for (i = count_; i > 0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_<=dist) && ((dist!=dist_index_[i-1].dist_)||(dist_index_[i-1].index_<=index)) )\n#else\n            if (dist_index_[i-1].dist_<=dist)\n#endif\n            {\n                // Check for duplicate indices\n                size_t j = i - 1;\n                while (dist_index_[j].dist_ == dist) {\n                    if (dist_index_[j].index_ == index) {\n                        return;\n                    }\n                    --j;\n                }\n                break;\n            }\n        }\n        if (count_ < capacity_) ++count_;\n        for (size_t j = count_-1; j > i; --j) {\n            dist_index_[j] = dist_index_[j-1];\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n\n};\n\n\n\ntemplate <typename DistanceType>\nclass KNNResultSet2 : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNResultSet2(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\tstd::cout<<\"KNNResultSet222\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNResultSet2()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\tif(dist_index_.size() >= capacity_) return;\n\t\tdist_index_.push_back(DistIndex(dist,index));\n\t\t/*\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = false)//true\n    {/*\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}*/\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n    bool is_full_;\n};\n\n\n/**\n * Unbounded radius result set. It will hold as many elements as\n * are added to it.\n */\ntemplate <typename DistanceType>\nclass RadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tRadiusResultSet(DistanceType radius_) :\n        radius_(radius_)\n    {\n\t\t// reserving some memory to limit number of re-allocations\n\t\tdist_index_.reserve(1024);\n    \tclear();\n    }\n\n    ~RadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist<radius_) {\n    \t\t// add new element\n    \t\tdist_index_.push_back(DistIndex(dist,index));\n    \t}\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {/*\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}*/\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn radius_;\n    }\n\nprivate:\n    DistanceType radius_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n\n/**\n * Bounded radius result set. It limits the number of elements\n * it can hold to a preset capacity.\n */\ntemplate <typename DistanceType>\nclass KNNRadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNRadiusResultSet(DistanceType radius_, size_t capacity_) :\n        radius_(radius_), capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNRadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = radius_;\n        is_heap_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set is filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_heap_) {\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// when got to full capacity, make it a heap\n    \t\tif (!is_heap_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n    \t\t\tis_heap_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    bool is_heap_;\n    DistanceType radius_;\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n/**\n * This is a result set that only counts the neighbors within a radius.\n */\n\ntemplate <typename DistanceType>\nclass CountRadiusResultSet : public ResultSet<DistanceType>\n{\n    DistanceType radius;\n    size_t count;\n\npublic:\n    CountRadiusResultSet(DistanceType radius_ ) :\n        radius(radius_)\n    {\n        clear();\n    }\n\n    ~CountRadiusResultSet()\n    {\n    }\n\n    void clear()\n    {\n        count = 0;\n    }\n\n    size_t size() const\n    {\n        return count;\n    }\n\n    bool full() const\n    {\n        return true;\n    }\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist<radius) {\n            count++;\n        }\n    }\n\n    DistanceType worstDist() const\n    {\n        return radius;\n    }\n\n};\n\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n */\ntemplate<typename DistanceType>\nclass UniqueResultSet : public ResultSet<DistanceType>\n{\npublic:\n    struct DistIndex\n    {\n        DistIndex(DistanceType dist, unsigned int index) :\n            dist_(dist), index_(index)\n        {\n        }\n        bool operator<(const DistIndex dist_index) const\n        {\n            return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n        }\n        DistanceType dist_;\n        unsigned int index_;\n    };\n\n    /** Default cosntructor */\n    UniqueResultSet() :\n        worst_distance_(std::numeric_limits<DistanceType>::max())\n    {\n    }\n\n    /** Check the status of the set\n     * @return true if we have k NN\n     */\n    inline bool full() const\n    {\n        return is_full_;\n    }\n\n    /** Copy the set to two C arrays\n     * @param indices pointer to a C array of indices\n     * @param dist pointer to a C array of distances\n     * @param n_neighbors the number of neighbors to copy\n     */\n    void copy(size_t* indices, DistanceType* dist, int n_neighbors, bool sorted = true)\n    {\n    \tif (n_neighbors<0) n_neighbors = dist_indices_.size();\n    \tint i = 0;\n    \ttypedef typename std::set<DistIndex>::const_iterator Iterator;\n    \tfor (Iterator dist_index = dist_indices_.begin(), dist_index_end =\n    \t\t\tdist_indices_.end(); (dist_index != dist_index_end) && (i < n_neighbors); ++dist_index, ++indices, ++dist, ++i) {\n    \t\t*indices = dist_index->index_;\n    \t\t*dist = dist_index->dist_;\n    \t}\n    }\n\n    /** The number of neighbors in the set\n     * @return\n     */\n    size_t size() const\n    {\n        return dist_indices_.size();\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\nprotected:\n    /** Flag to say if the set is full */\n    bool is_full_;\n\n    /** The worst distance found so far */\n    DistanceType worst_distance_;\n\n    /** The best candidates so far */\n    std::set<DistIndex> dist_indices_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n * Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays\n */\ntemplate<typename DistanceType>\nclass KNNUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNUniqueResultSet(unsigned int capacity) : capacity_(capacity)\n    {\n        this->is_full_ = false;\n        this->clear();\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    inline void addPoint(DistanceType dist, size_t index)\n    {\n        // Don't do anything if we are worse than the worst\n        if (dist >= worst_distance_) return;\n        dist_indices_.insert(DistIndex(dist, index));\n\n        if (is_full_) {\n            if (dist_indices_.size() > capacity_) {\n                dist_indices_.erase(*dist_indices_.rbegin());\n                worst_distance_ = dist_indices_.rbegin()->dist_;\n            }\n        }\n        else if (dist_indices_.size() == capacity_) {\n            is_full_ = true;\n            worst_distance_ = dist_indices_.rbegin()->dist_;\n        }\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\nprotected:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::is_full_;\n    using UniqueResultSet<DistanceType>::worst_distance_;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n\n    /** The number of neighbors to keep */\n    unsigned int capacity_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the radius nearest neighbors\n * It is more accurate than RadiusResult as it is not limited in the number of neighbors\n */\ntemplate<typename DistanceType>\nclass RadiusUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    RadiusUniqueResultSet(DistanceType radius) :\n        radius_(radius)\n    {\n        is_full_ = true;\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist < radius_) dist_indices_.insert(DistIndex(dist, index));\n    }\n\n    /** Remove all elements in the set\n     */\n    inline void clear()\n    {\n        dist_indices_.clear();\n    }\n\n\n    /** Check the status of the set\n     * @return alwys false\n     */\n    inline bool full() const\n    {\n        return true;\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return radius_;\n    }\nprivate:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n    using UniqueResultSet<DistanceType>::is_full_;\n\n    /** The furthest distance a neighbor can be */\n    DistanceType radius_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors within a radius distance\n */\ntemplate<typename DistanceType>\nclass KNNRadiusUniqueResultSet : public KNNUniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNRadiusUniqueResultSet(DistanceType radius, size_t capacity) : KNNUniqueResultSet<DistanceType>(capacity)\n    {\n        this->radius_ = radius;\n        this->clear();\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = radius_;\n        is_full_ = true;\n    }\nprivate:\n    using KNNUniqueResultSet<DistanceType>::dist_indices_;\n    using KNNUniqueResultSet<DistanceType>::is_full_;\n    using KNNUniqueResultSet<DistanceType>::worst_distance_;\n\n    /** The maximum distance of a neighbor */\n    DistanceType radius_;\n};\n}\n\n#endif //FLANN_RESULTSET_H\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/allocator.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_ALLOCATOR_H_\n#define FLANN_ALLOCATOR_H_\n\n#include <stdlib.h>\n#include <stdio.h>\n\n\nnamespace flann\n{\n\n/**\n * Allocates (using C's malloc) a generic type T.\n *\n * Params:\n *     count = number of instances to allocate.\n * Returns: pointer (of type T*) to memory buffer\n */\ntemplate <typename T>\nT* allocate(size_t count = 1)\n{\n    T* mem = (T*) ::malloc(sizeof(T)*count);\n    return mem;\n}\n\n\n\n/**\n * Pooled storage allocator\n *\n * The following routines allow for the efficient allocation of storage in\n * small chunks from a specified pool.  Rather than allowing each structure\n * to be freed individually, an entire pool of storage is freed at once.\n * This method has two advantages over just using malloc() and free().  First,\n * it is far more efficient for allocating small objects, as there is\n * no overhead for remembering all the information needed to free each\n * object or consolidating fragmented memory.  Second, the decision about\n * how long to keep an object is made at the time of allocation, and there\n * is no need to track down all the objects to free them.\n *\n */\n\nconst size_t     WORDSIZE=16;\nconst  size_t     BLOCKSIZE=8192;\n\nclass PooledAllocator\n{\n    /* We maintain memory alignment to word boundaries by requiring that all\n        allocations be in multiples of the machine wordsize.  */\n    /* Size of machine word in bytes.  Must be power of 2. */\n    /* Minimum number of bytes requested at a time from\tthe system.  Must be multiple of WORDSIZE. */\n\n\n    int     remaining;  /* Number of bytes left in current block of storage. */\n    void*   base;     /* Pointer to base of current block of storage. */\n    void*   loc;      /* Current location in block to next allocate memory. */\n    int     blocksize;\n\n\npublic:\n    int     usedMemory;\n    int     wastedMemory;\n\n    /**\n        Default constructor. Initializes a new pool.\n     */\n    PooledAllocator(int blocksize = BLOCKSIZE)\n    {\n        this->blocksize = blocksize;\n        remaining = 0;\n        base = NULL;\n\n        usedMemory = 0;\n        wastedMemory = 0;\n    }\n\n    /**\n     * Destructor. Frees all the memory allocated in this pool.\n     */\n    ~PooledAllocator()\n    {\n        free();\n    }\n    \n    void free()\n    {\n        void* prev;\n        while (base != NULL) {\n            prev = *((void**) base); /* Get pointer to prev block. */\n            ::free(base);\n            base = prev;\n        }\n        base = NULL;\n        remaining = 0;\n        usedMemory = 0;\n        wastedMemory = 0;\n    }\n\n    /**\n     * Returns a pointer to a piece of new memory of the given size in bytes\n     * allocated from the pool.\n     */\n    void* allocateMemory(int size)\n    {\n        int blocksize;\n\n        /* Round size up to a multiple of wordsize.  The following expression\n            only works for WORDSIZE that is a power of 2, by masking last bits of\n            incremented size to zero.\n         */\n        size = (size + (WORDSIZE - 1)) & ~(WORDSIZE - 1);\n\n        /* Check whether a new block must be allocated.  Note that the first word\n            of a block is reserved for a pointer to the previous block.\n         */\n        if (size > remaining) {\n\n            wastedMemory += remaining;\n\n            /* Allocate new storage. */\n            blocksize = (size + sizeof(void*) + (WORDSIZE-1) > BLOCKSIZE) ?\n                        size + sizeof(void*) + (WORDSIZE-1) : BLOCKSIZE;\n\n            // use the standard C malloc to allocate memory\n            void* m = ::malloc(blocksize);\n            if (!m) {\n                fprintf(stderr,\"Failed to allocate memory.\\n\");\n                return NULL;\n            }\n\n            /* Fill first word of new block with pointer to previous block. */\n            ((void**) m)[0] = base;\n            base = m;\n\n            int shift = 0;\n            //int shift = (WORDSIZE - ( (((size_t)m) + sizeof(void*)) & (WORDSIZE-1))) & (WORDSIZE-1);\n\n            remaining = blocksize - sizeof(void*) - shift;\n            loc = ((char*)m + sizeof(void*) + shift);\n        }\n        void* rloc = loc;\n        loc = (char*)loc + size;\n        remaining -= size;\n\n        usedMemory += size;\n\n        return rloc;\n    }\n\n    /**\n     * Allocates (using this pool) a generic type T.\n     *\n     * Params:\n     *     count = number of instances to allocate.\n     * Returns: pointer (of type T*) to memory buffer\n     */\n    template <typename T>\n    T* allocate(size_t count = 1)\n    {\n        T* mem = (T*) this->allocateMemory((int)(sizeof(T)*count));\n        return mem;\n    }\n\n};\n\n}\n\ninline void* operator new (std::size_t size, flann::PooledAllocator& allocator)\n{\n    return allocator.allocateMemory(size) ;\n}\n\n#endif //FLANN_ALLOCATOR_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/any.h",
    "content": "#ifndef FLANN_ANY_H_\n#define FLANN_ANY_H_\n/*\n * (C) Copyright Christopher Diggins 2005-2011\n * (C) Copyright Pablo Aguilar 2005\n * (C) Copyright Kevlin Henney 2001\n *\n * Distributed under the Boost Software License, Version 1.0. (See\n * accompanying file LICENSE_1_0.txt or copy at\n * http://www.boost.org/LICENSE_1_0.txt\n *\n * Adapted for FLANN by Marius Muja\n */\n\n#include <stdexcept>\n#include <ostream>\n#include <typeinfo>\n\nnamespace flann\n{\n\nnamespace anyimpl\n{\n\nstruct bad_any_cast : public std::runtime_error\n{\n\tbad_any_cast() : std::runtime_error(\"Cannot convert 'any' value\") { }\n};\n\nstruct empty_any\n{\n};\n\ninline std::ostream& operator <<(std::ostream& out, const empty_any&)\n{\n    out << \"[empty_any]\";\n    return out;\n}\n\nstruct base_any_policy\n{\n    virtual void static_delete(void** x) = 0;\n    virtual void copy_from_value(void const* src, void** dest) = 0;\n    virtual void clone(void* const* src, void** dest) = 0;\n    virtual void move(void* const* src, void** dest) = 0;\n    virtual void* get_value(void** src) = 0;\n    virtual ::size_t get_size() = 0;\n    virtual const std::type_info& type() = 0;\n    virtual void print(std::ostream& out, void* const* src) = 0;\n};\n\ntemplate<typename T>\nstruct typed_base_any_policy : base_any_policy\n{\n    virtual ::size_t get_size() { return sizeof(T); }\n    virtual const std::type_info& type() { return typeid(T); }\n\n};\n\ntemplate<typename T>\nstruct small_any_policy : typed_base_any_policy<T>\n{\n    virtual void static_delete(void**) { }\n    virtual void copy_from_value(void const* src, void** dest)\n    {\n        new (dest) T(* reinterpret_cast<T const*>(src));\n    }\n    virtual void clone(void* const* src, void** dest) { *dest = *src; }\n    virtual void move(void* const* src, void** dest) { *dest = *src; }\n    virtual void* get_value(void** src) { return reinterpret_cast<void*>(src); }\n    virtual void print(std::ostream& out, void* const* src) { out << *reinterpret_cast<T const*>(src); }\n};\n\ntemplate<typename T>\nstruct big_any_policy : typed_base_any_policy<T>\n{\n    virtual void static_delete(void** x)\n    {\n        if (* x) delete (* reinterpret_cast<T**>(x)); *x = NULL;\n    }\n    virtual void copy_from_value(void const* src, void** dest)\n    {\n        *dest = new T(*reinterpret_cast<T const*>(src));\n    }\n    virtual void clone(void* const* src, void** dest)\n    {\n        *dest = new T(**reinterpret_cast<T* const*>(src));\n    }\n    virtual void move(void* const* src, void** dest)\n    {\n        (*reinterpret_cast<T**>(dest))->~T();\n        **reinterpret_cast<T**>(dest) = **reinterpret_cast<T* const*>(src);\n    }\n    virtual void* get_value(void** src) { return *src; }\n    virtual void print(std::ostream& out, void* const* src) { out << *reinterpret_cast<T const*>(*src); }\n};\n\ntemplate<typename T>\nstruct choose_policy\n{\n    typedef big_any_policy<T> type;\n};\n\ntemplate<typename T>\nstruct choose_policy<T*>\n{\n    typedef small_any_policy<T*> type;\n};\n\nstruct any;\n\n/// Choosing the policy for an any type is illegal, but should never happen.\n/// This is designed to throw a compiler error.\ntemplate<>\nstruct choose_policy<any>\n{\n    typedef void type;\n};\n\n/// Specializations for small types.\n#define SMALL_POLICY(TYPE) \\\n    template<> \\\n    struct choose_policy<TYPE> { typedef small_any_policy<TYPE> type; \\\n    }\n\nSMALL_POLICY(signed char);\nSMALL_POLICY(unsigned char);\nSMALL_POLICY(signed short);\nSMALL_POLICY(unsigned short);\nSMALL_POLICY(signed int);\nSMALL_POLICY(unsigned int);\nSMALL_POLICY(signed long);\nSMALL_POLICY(unsigned long);\nSMALL_POLICY(float);\nSMALL_POLICY(bool);\n\n//#undef SMALL_POLICY\n\n/// This function will return a different policy for each type.\ntemplate<typename T>\nbase_any_policy* get_policy()\n{\n    static typename choose_policy<T>::type policy;\n    return &policy;\n}\n} // namespace anyimpl\n\nclass any\n{\n\ttypedef any any_t; // workaround for the NVCC compiler under windows\nprivate:\n    // fields\n    anyimpl::base_any_policy* policy;\n    void* object;\n\npublic:\n    /// Initializing constructor.\n    template <typename T>\n    any(const T& x)\n        : policy(anyimpl::get_policy<anyimpl::empty_any>()), object(NULL)\n    {\n        assign(x);\n    }\n\n    /// Empty constructor.\n    any()\n        : policy(anyimpl::get_policy<anyimpl::empty_any>()), object(NULL)\n    { }\n\n    /// Special initializing constructor for string literals.\n    any(const char* x)\n        : policy(anyimpl::get_policy<anyimpl::empty_any>()), object(NULL)\n    {\n        assign(x);\n    }\n\n    /// Copy constructor.\n    any(const any& x)\n        : policy(anyimpl::get_policy<anyimpl::empty_any>()), object(NULL)\n    {\n        assign(x);\n    }\n\n    /// Destructor.\n    ~any()\n    {\n        policy->static_delete(&object);\n    }\n\n    /// Assignment function from another any.\n    any& assign(const any& x)\n    {\n        reset();\n        policy = x.policy;\n        policy->clone(&x.object, &object);\n        return *this;\n    }\n\n    /// Assignment function.\n    template <typename T>\n    any_t& assign(const T& x)\n    {\n        reset();\n        policy = anyimpl::get_policy<T>();\n        policy->copy_from_value(&x, &object);\n        return *this;\n    }\n\n    /// Assignment operator.\n    template<typename T>\n    any_t& operator=(const T& x)\n    {\n        return assign(x);\n    }\n\n    /// Assignment operator, specialed for literal strings.\n    /// They have types like const char [6] which don't work as expected.\n    any& operator=(const char* x)\n    {\n        return assign(x);\n    }\n\n    /// Utility functions\n    any& swap(any& x)\n    {\n        std::swap(policy, x.policy);\n        std::swap(object, x.object);\n        return *this;\n    }\n\n    /// Cast operator. You can only cast to the original type.\n    template<typename T>\n    T& cast()\n    {\n        if (policy->type() != typeid(T)) throw anyimpl::bad_any_cast();\n        T* r = reinterpret_cast<T*>(policy->get_value(&object));\n        return *r;\n    }\n\n    /// Cast operator. You can only cast to the original type.\n    template<typename T>\n    const T& cast() const\n    {\n        if (policy->type() != typeid(T)) throw anyimpl::bad_any_cast();\n        void* obj = const_cast<void*>(object);\n        T* r = reinterpret_cast<T*>(policy->get_value(&obj));\n        return *r;\n    }\n\n    /// Returns true if the any contains no value.\n    bool empty() const\n    {\n        return policy->type() == typeid(anyimpl::empty_any);\n    }\n\n    /// Frees any allocated memory, and sets the value to NULL.\n    void reset()\n    {\n        policy->static_delete(&object);\n        policy = anyimpl::get_policy<anyimpl::empty_any>();\n    }\n\n    /// Returns true if the two types are the same.\n    bool compatible(const any& x) const\n    {\n        return policy->type() == x.policy->type();\n    }\n\n    /// Returns if the type is compatible with the policy\n    template<typename T>\n    bool has_type()\n    {\n        return policy->type() == typeid(T);\n    }\n\n    const std::type_info& type() const\n    {\n        return policy->type();\n    }\n\n    friend std::ostream& operator <<(std::ostream& out, const any& any_val);\n};\n\ninline std::ostream& operator <<(std::ostream& out, const any& any_val)\n{\n    any_val.policy->print(out,&any_val.object);\n    return out;\n}\n\n}\n\n#endif // FLANN_ANY_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/cuda/heap.h",
    "content": "#ifndef FLANN_UTIL_CUDA_HEAP_H\n#define FLANN_UTIL_CUDA_HEAP_H\n\n/*\n    Copyright (c) 2011, Andreas Mützel <andreas.muetzel@gmx.net>\n    All rights reserved.\n\n    Redistribution and use in source and binary forms, with or without\n    modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n        notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n        notice, this list of conditions and the following disclaimer in the\n        documentation and/or other materials provided with the distribution.\n * Neither the name of the <organization> nor the\n        names of its contributors may be used to endorse or promote products\n        derived from this software without specific prior written permission.\n\n    THIS SOFTWARE IS PROVIDED BY Andreas Mützel <andreas.muetzel@gmx.net> ''AS IS'' AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n    DISCLAIMED. IN NO EVENT SHALL Andreas Mützel <andreas.muetzel@gmx.net> BE LIABLE FOR ANY\n    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nnamespace flann\n{\nnamespace cuda\n{\ntemplate <class T>\n__device__ __host__ void swap( T& x, T& y )\n{\n    T t=x;\n    x=y;\n    y=t;\n}\n\nnamespace heap\n{\n\n//! moves an element down the heap until all children are smaller than the elemnent\n//! if c is a less-than comparator, it do this until all children are larger\ntemplate <class GreaterThan, class RandomAccessIterator>\n__host__ __device__ void\nsift_down( RandomAccessIterator array, size_t begin, size_t length, GreaterThan c = GreaterThan() )\n{\n\n    while( 2*begin+1 < length ) {\n        size_t left = 2*begin+1;\n        size_t right = 2*begin+2;\n        size_t largest=begin;\n        if((left < length)&& c(array[left], array[largest]) ) largest=left;\n\n        if((right < length)&& c(array[right], array[largest]) ) largest=right;\n\n        if( largest != begin ) {\n            cuda::swap( array[begin], array[largest] );\n            begin=largest;\n        }\n        else return;\n    }\n}\n\n//! creates a max-heap in the array beginning at begin of length \"length\"\n//! if c is a less-than comparator, it will create a min-heap\ntemplate <class GreaterThan, class RandomAccessIterator>\n__host__ __device__ void\nmake_heap( RandomAccessIterator begin, size_t length, GreaterThan c = GreaterThan() )\n{\n    int i=length/2-1;\n    while( i>=0 ) {\n        sift_down( begin, i, length, c );\n        i--;\n    }\n}\n\n\n//! verifies if the array is a max-heap\n//! if c is a less-than comparator, it will verify if it is a min-heap\ntemplate <class GreaterThan, class RandomAccessIterator>\n__host__ __device__ bool\nis_heap( RandomAccessIterator begin, size_t length, GreaterThan c = GreaterThan() )\n{\n    for( unsigned i=0; i<length; i++ ) {\n        if((2*i+1 < length)&& c(begin[2*i+1],begin[i]) ) return false;\n        if((2*i+2 < length)&& c(begin[2*i+2],begin[i]) ) return false;\n    }\n    return true;\n}\n\n\n//! moves an element down the heap until all children are smaller than the elemnent\n//! if c is a less-than comparator, it do this until all children are larger\ntemplate <class GreaterThan, class RandomAccessIterator, class RandomAccessIterator2>\n__host__ __device__ void\nsift_down( RandomAccessIterator key, RandomAccessIterator2 value, size_t begin, size_t length, GreaterThan c = GreaterThan() )\n{\n\n    while( 2*begin+1 < length ) {\n        size_t left = 2*begin+1;\n        size_t right = 2*begin+2;\n        size_t largest=begin;\n        if((left < length)&& c(key[left], key[largest]) ) largest=left;\n\n        if((right < length)&& c(key[right], key[largest]) ) largest=right;\n\n        if( largest != begin ) {\n            cuda::swap( key[begin], key[largest] );\n            cuda::swap( value[begin], value[largest] );\n            begin=largest;\n        }\n        else return;\n    }\n}\n\n//! creates a max-heap in the array beginning at begin of length \"length\"\n//! if c is a less-than comparator, it will create a min-heap\ntemplate <class GreaterThan, class RandomAccessIterator, class RandomAccessIterator2>\n__host__ __device__ void\nmake_heap( RandomAccessIterator key,  RandomAccessIterator2 value, size_t length, GreaterThan c = GreaterThan() )\n{\n    int i=length/2-1;\n    while( i>=0 ) {\n        sift_down( key, value, i, length, c );\n        i--;\n    }\n}\n\n}\n\n}\n}\n\n#endif"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/cuda/result_set.h",
    "content": "/**********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2011  Andreas Muetzel (amuetzel@uni-koblenz.de). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n#ifndef FLANN_UTIL_CUDA_RESULTSET_H\n#define FLANN_UTIL_CUDA_RESULTSET_H\n\n#include <flann/util/cuda/heap.h>\n#include <limits>\n\n__device__ __forceinline__\nfloat infinity()\n{\n       return __int_as_float(0x7f800000);\n}\n\n#ifndef INFINITY\n#define INFINITY infinity()\n#endif\n\nnamespace flann\n{\nnamespace cuda\n{\n//! result set for the 1nn search. Doesn't do any global memory accesses on its own,\ntemplate< typename DistanceType >\nstruct SingleResultSet\n{\n    int bestIndex;\n    DistanceType bestDist;\n    const DistanceType epsError;\n\n    __device__\n    SingleResultSet( DistanceType eps ) : bestIndex(-1),bestDist(INFINITY), epsError(eps){ }\n\n    __device__\n    inline float\n    worstDist()\n    {\n        return bestDist;\n    }\n\n    __device__\n    inline void\n    insert(int index, DistanceType dist)\n    {\n        if( dist <= bestDist ) {\n            bestIndex=index;\n            bestDist=dist;\n        }\n    }\n\n    DistanceType* resultDist;\n    int* resultIndex;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* dists, int* index, int thread, int stride )\n    {\n        resultDist=dists+thread*stride;\n        resultIndex=index+thread*stride;\n        if( stride != 1 ) {\n            for( int i=1; i<stride; i++ ) {\n                resultDist[i]=INFINITY;\n                resultIndex[i]=-1;\n            }\n        }\n    }\n\n    __device__\n    inline void\n    finish()\n    {\n        resultDist[0]=bestDist;\n        resultIndex[0]=bestIndex;\n    }\n};\n\ntemplate< typename DistanceType >\nstruct GreaterThan\n{\n    __device__\n    bool operator()(DistanceType a, DistanceType b)\n    {\n        return a>b;\n    }\n};\n\n\n// using this and the template uses 2 or 3 registers more than the direct implementation in the kNearestKernel, but\n// there is no speed difference.\n// Setting useHeap as a template parameter leads to a whole lot of things being\n// optimized away by nvcc.\n// Register counts are the same as when removing not-needed variables in explicit specializations\n// and the \"if( useHeap )\" branches are eliminated at compile time.\n// The downside of this: a bit more complex kernel launch code.\ntemplate< typename DistanceType, bool useHeap >\nstruct KnnResultSet\n{\n    int foundNeighbors;\n    DistanceType largestHeapDist;\n    int maxDistIndex;\n    const int k;\n    const bool sorted;\n    const DistanceType epsError;\n\n\n    __device__\n    KnnResultSet(int knn, bool sortResults, DistanceType eps) : foundNeighbors(0),largestHeapDist(INFINITY),k(knn), sorted(sortResults), epsError(eps){ }\n\n    //          __host__ __device__\n    //          KnnResultSet(const KnnResultSet& o):foundNeighbors(o.foundNeighbors),largestHeapDist(o.largestHeapDist),k(o.k){ }\n\n    __device__\n    inline DistanceType\n    worstDist()\n    {\n        return largestHeapDist;\n    }\n\n    __device__\n    inline void\n    insert(int index, DistanceType dist)\n    {\n        if( foundNeighbors<k ) {\n            resultDist[foundNeighbors]=dist;\n            resultIndex[foundNeighbors]=index;\n            if( foundNeighbors==k-1) {\n                if( useHeap ) {\n                    flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n                    largestHeapDist=resultDist[0];\n                }\n                else {\n                    findLargestDistIndex();\n                }\n\n            }\n            foundNeighbors++;\n        }\n        else if( dist < largestHeapDist ) {\n            if( useHeap ) {\n                resultDist[0]=dist;\n                resultIndex[0]=index;\n                flann::cuda::heap::sift_down(resultDist,resultIndex,0,k,GreaterThan<DistanceType>());\n                largestHeapDist=resultDist[0];\n            }\n            else {\n                resultDist[maxDistIndex]=dist;\n                resultIndex[maxDistIndex]=index;\n                findLargestDistIndex();\n            }\n\n        }\n    }\n\n    __device__\n    void\n    findLargestDistIndex( )\n    {\n        largestHeapDist=resultDist[0];\n        maxDistIndex=0;\n        for( int i=1; i<k; i++ )\n            if( resultDist[i] > largestHeapDist ) {\n                maxDistIndex=i;\n                largestHeapDist=resultDist[i];\n            }\n    }\n\n    float* resultDist;\n    int* resultIndex;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* dists, int* index, int thread, int stride )\n    {\n        resultDist=dists+stride*thread;\n        resultIndex=index+stride*thread;\n        for( int i=0; i<stride; i++ ) {\n            resultDist[i]=INFINITY;\n            resultIndex[i]=-1;\n            //                  resultIndex[tid+i*blockDim.x]=-1;\n            //                  resultDist[tid+i*blockDim.x]=INFINITY;\n        }\n    }\n\n    __host__ __device__\n    inline void\n    finish()\n    {\n        if( sorted ) {\n            if( !useHeap ) flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n            for( int i=k-1; i>0; i-- ) {\n                flann::cuda::swap( resultDist[0], resultDist[i] );\n                flann::cuda::swap( resultIndex[0], resultIndex[i] );\n                flann::cuda::heap::sift_down( resultDist,resultIndex, 0, i, GreaterThan<DistanceType>() );\n            }\n        }\n    }\n};\n\ntemplate <typename DistanceType>\nstruct CountingRadiusResultSet\n{\n    int count_;\n    DistanceType radius_sq_;\n    int max_neighbors_;\n\n    __device__\n    CountingRadiusResultSet(DistanceType radius, int max_neighbors) : count_(0),radius_sq_(radius), max_neighbors_(max_neighbors){ }\n\n    __device__\n    inline DistanceType\n    worstDist()\n    {\n        return radius_sq_;\n    }\n\n    __device__\n    inline void\n    insert(int index, float dist)\n    {\n        if( dist < radius_sq_ ) {\n            count_++;\n        }\n    }\n\n    int* resultIndex;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* /*dists*/, int* count, int thread, int stride )\n    {\n        resultIndex=count+thread*stride;\n    }\n\n    __device__\n    inline void\n    finish()\n    {\n        if(( max_neighbors_<=0) ||( count_<=max_neighbors_) ) resultIndex[0]=count_;\n        else resultIndex[0]=max_neighbors_;\n    }\n};\n\ntemplate<typename DistanceType, bool useHeap>\nstruct RadiusKnnResultSet\n{\n    int foundNeighbors;\n    DistanceType largestHeapDist;\n    int maxDistElem;\n    const int k;\n    const bool sorted;\n    const DistanceType radius_sq_;\n    int* segment_starts_;\n    //          int count_;\n\n\n    __device__\n    RadiusKnnResultSet(DistanceType radius, int knn, int* segment_starts, bool sortResults) : foundNeighbors(0),largestHeapDist(radius),k(knn), sorted(sortResults), radius_sq_(radius),segment_starts_(segment_starts) { }\n\n    //          __host__ __device__\n    //          KnnResultSet(const KnnResultSet& o):foundNeighbors(o.foundNeighbors),largestHeapDist(o.largestHeapDist),k(o.k){ }\n\n    __device__\n    inline DistanceType\n    worstDist()\n    {\n        return largestHeapDist;\n    }\n\n    __device__\n    inline void\n    insert(int index, DistanceType dist)\n    {\n        if( dist < radius_sq_ ) {\n            if( foundNeighbors<k ) {\n                resultDist[foundNeighbors]=dist;\n                resultIndex[foundNeighbors]=index;\n                if(( foundNeighbors==k-1) && useHeap) {\n                    if( useHeap ) {\n                        flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n                        largestHeapDist=resultDist[0];\n                    }\n                    else {\n                        findLargestDistIndex();\n                    }\n                }\n                foundNeighbors++;\n\n            }\n            else if( dist < largestHeapDist ) {\n                if( useHeap ) {\n                    resultDist[0]=dist;\n                    resultIndex[0]=index;\n                    flann::cuda::heap::sift_down(resultDist,resultIndex,0,k,GreaterThan<DistanceType>());\n                    largestHeapDist=resultDist[0];\n                }\n                else {\n                    resultDist[maxDistElem]=dist;\n                    resultIndex[maxDistElem]=index;\n                    findLargestDistIndex();\n                }\n            }\n        }\n    }\n\n    __device__\n    void\n    findLargestDistIndex( )\n    {\n        largestHeapDist=resultDist[0];\n        maxDistElem=0;\n        for( int i=1; i<k; i++ )\n            if( resultDist[i] > largestHeapDist ) {\n                maxDistElem=i;\n                largestHeapDist=resultDist[i];\n            }\n    }\n\n\n    DistanceType* resultDist;\n    int* resultIndex;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* dists, int* index, int thread, int /*stride*/ )\n    {\n        resultDist=dists+segment_starts_[thread];\n        resultIndex=index+segment_starts_[thread];\n    }\n\n    __device__\n    inline void\n    finish()\n    {\n        if( sorted ) {\n            if( !useHeap ) flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n            for( int i=foundNeighbors-1; i>0; i-- ) {\n                flann::cuda::swap( resultDist[0], resultDist[i] );\n                flann::cuda::swap( resultIndex[0], resultIndex[i] );\n                flann::cuda::heap::sift_down( resultDist,resultIndex, 0, i, GreaterThan<DistanceType>() );\n            }\n        }\n    }\n};\n\n// Difference to RadiusKnnResultSet: Works like KnnResultSet, doesn't pack the results densely (as the RadiusResultSet does)\ntemplate <typename DistanceType, bool useHeap>\nstruct KnnRadiusResultSet\n{\n    int foundNeighbors;\n    DistanceType largestHeapDist;\n    int maxDistIndex;\n    const int k;\n    const bool sorted;\n    const DistanceType epsError;\n    const DistanceType radius_sq;\n\n\n    __device__\n    KnnRadiusResultSet(int knn, bool sortResults, DistanceType eps, DistanceType radius) : foundNeighbors(0),largestHeapDist(radius),k(knn), sorted(sortResults), epsError(eps),radius_sq(radius){ }\n\n    //          __host__ __device__\n    //          KnnResultSet(const KnnResultSet& o):foundNeighbors(o.foundNeighbors),largestHeapDist(o.largestHeapDist),k(o.k){ }\n\n    __device__\n    inline DistanceType\n    worstDist()\n    {\n        return largestHeapDist;\n    }\n\n    __device__\n    inline void\n    insert(int index, DistanceType dist)\n    {\n        if( dist < largestHeapDist ) {\n            if( foundNeighbors<k ) {\n                resultDist[foundNeighbors]=dist;\n                resultIndex[foundNeighbors]=index;\n                if( foundNeighbors==k-1 ) {\n                    if( useHeap ) {\n                        flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n                        largestHeapDist=resultDist[0];\n                    }\n                    else {\n                        findLargestDistIndex();\n                    }\n                }\n                foundNeighbors++;\n            }\n            else { //if( dist < largestHeapDist )\n                if( useHeap ) {\n                    resultDist[0]=dist;\n                    resultIndex[0]=index;\n                    flann::cuda::heap::sift_down(resultDist,resultIndex,0,k,GreaterThan<DistanceType>());\n                    largestHeapDist=resultDist[0];\n                }\n                else {\n                    resultDist[maxDistIndex]=dist;\n                    resultIndex[maxDistIndex]=index;\n                    findLargestDistIndex();\n                }\n            }\n        }\n    }\n    __device__\n    void\n    findLargestDistIndex( )\n    {\n        largestHeapDist=resultDist[0];\n        maxDistIndex=0;\n        for( int i=1; i<k; i++ )\n            if( resultDist[i] > largestHeapDist ) {\n                maxDistIndex=i;\n                largestHeapDist=resultDist[i];\n            }\n    }\n\n    DistanceType* resultDist;\n    int* resultIndex;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* dists, int* index, int thread, int stride )\n    {\n        resultDist=dists+stride*thread;\n        resultIndex=index+stride*thread;\n        for( int i=0; i<stride; i++ ) {\n            resultDist[i]=INFINITY;\n            resultIndex[i]=-1;\n            //                  resultIndex[tid+i*blockDim.x]=-1;\n            //                  resultDist[tid+i*blockDim.x]=INFINITY;\n        }\n    }\n\n    __device__\n    inline void\n    finish()\n    {\n        if( sorted ) {\n            if( !useHeap ) flann::cuda::heap::make_heap(resultDist,resultIndex,k,GreaterThan<DistanceType>());\n            for( int i=k-1; i>0; i-- ) {\n                flann::cuda::swap( resultDist[0], resultDist[i] );\n                flann::cuda::swap( resultIndex[0], resultIndex[i] );\n                flann::cuda::heap::sift_down( resultDist,resultIndex, 0, i, GreaterThan<DistanceType>() );\n            }\n        }\n    }\n};\n\n//! fills the radius output buffer.\n//! IMPORTANT ASSERTION: ASSUMES THAT THERE IS ENOUGH SPACE FOR EVERY NEIGHBOR! IF THIS ISN'T\n//! TRUE, USE KnnRadiusResultSet! (Otherwise, the neighbors of one element might overflow into the next element, or past the buffer.)\ntemplate< typename DistanceType >\nstruct RadiusResultSet\n{\n    DistanceType radius_sq_;\n    int* segment_starts_;\n    int count_;\n    bool sorted_;\n\n    __device__\n    RadiusResultSet(DistanceType radius, int* segment_starts, bool sorted) : radius_sq_(radius), segment_starts_(segment_starts), count_(0), sorted_(sorted){ }\n\n    __device__\n    inline DistanceType\n    worstDist()\n    {\n        return radius_sq_;\n    }\n\n    __device__\n    inline void\n    insert(int index, DistanceType dist)\n    {\n        if( dist < radius_sq_ ) {\n            resultIndex[count_]=index;\n            resultDist[count_]=dist;\n            count_++;\n        }\n    }\n\n    int* resultIndex;\n    DistanceType* resultDist;\n\n    __device__\n    inline void\n    setResultLocation( DistanceType* dists, int* index, int thread, int /*stride*/ )\n    {\n        resultIndex=index+segment_starts_[thread];\n        resultDist=dists+segment_starts_[thread];\n    }\n\n    __device__\n    inline void\n    finish()\n    {\n        if( sorted_ ) {\n            flann::cuda::heap::make_heap( resultDist,resultIndex, count_, GreaterThan<DistanceType>() );\n            for( int i=count_-1; i>0; i-- ) {\n                flann::cuda::swap( resultDist[0], resultDist[i] );\n                flann::cuda::swap( resultIndex[0], resultIndex[i] );\n                flann::cuda::heap::sift_down( resultDist,resultIndex, 0, i, GreaterThan<DistanceType>() );\n            }\n        }\n    }\n};\n}\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/cutil_math.h",
    "content": "/*\n * Copyright 1993-2010 NVIDIA Corporation.  All rights reserved.\n *\n * Please refer to the NVIDIA end user license agreement (EULA) associated\n * with this source code for terms and conditions that govern your use of\n * this software. Any use, reproduction, disclosure, or distribution of\n * this software and related documentation outside the terms of the EULA\n * is strictly prohibited.\n *\n */\n\n/*\n    This file implements common mathematical operations on vector types\n    (float3, float4 etc.) since these are not provided as standard by CUDA.\n\n    The syntax is modelled on the Cg standard library.\n\n    This is part of the CUTIL library and is not supported by NVIDIA.\n\n    Thanks to Linh Hah for additions and fixes.\n*/\n\n#ifndef CUTIL_MATH_H\n#define CUTIL_MATH_H\n\n#include \"cuda_runtime.h\"\n\ntypedef unsigned int uint;\ntypedef unsigned short ushort;\n\n#ifndef __CUDACC__\n#include <math.h>\n\n////////////////////////////////////////////////////////////////////////////////\n// host implementations of CUDA functions\n////////////////////////////////////////////////////////////////////////////////\n\ninline float fminf(float a, float b)\n{\n  return a < b ? a : b;\n}\n\ninline float fmaxf(float a, float b)\n{\n  return a > b ? a : b;\n}\n\ninline int max(int a, int b)\n{\n  return a > b ? a : b;\n}\n\ninline int min(int a, int b)\n{\n  return a < b ? a : b;\n}\n\ninline float rsqrtf(float x)\n{\n    return 1.0f / sqrtf(x);\n}\n#endif\n\n////////////////////////////////////////////////////////////////////////////////\n// constructors\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 make_float2(float s)\n{\n    return make_float2(s, s);\n}\ninline __host__ __device__ float2 make_float2(float3 a)\n{\n    return make_float2(a.x, a.y);\n}\ninline __host__ __device__ float2 make_float2(int2 a)\n{\n    return make_float2(float(a.x), float(a.y));\n}\ninline __host__ __device__ float2 make_float2(uint2 a)\n{\n    return make_float2(float(a.x), float(a.y));\n}\n\ninline __host__ __device__ int2 make_int2(int s)\n{\n    return make_int2(s, s);\n}\ninline __host__ __device__ int2 make_int2(int3 a)\n{\n    return make_int2(a.x, a.y);\n}\ninline __host__ __device__ int2 make_int2(uint2 a)\n{\n    return make_int2(int(a.x), int(a.y));\n}\ninline __host__ __device__ int2 make_int2(float2 a)\n{\n    return make_int2(int(a.x), int(a.y));\n}\n\ninline __host__ __device__ uint2 make_uint2(uint s)\n{\n    return make_uint2(s, s);\n}\ninline __host__ __device__ uint2 make_uint2(uint3 a)\n{\n    return make_uint2(a.x, a.y);\n}\ninline __host__ __device__ uint2 make_uint2(int2 a)\n{\n    return make_uint2(uint(a.x), uint(a.y));\n}\n\ninline __host__ __device__ float3 make_float3(float s)\n{\n    return make_float3(s, s, s);\n}\ninline __host__ __device__ float3 make_float3(float2 a)\n{\n    return make_float3(a.x, a.y, 0.0f);\n}\ninline __host__ __device__ float3 make_float3(float2 a, float s)\n{\n    return make_float3(a.x, a.y, s);\n}\ninline __host__ __device__ float3 make_float3(float4 a)\n{\n    return make_float3(a.x, a.y, a.z);\n}\ninline __host__ __device__ float3 make_float3(int3 a)\n{\n    return make_float3(float(a.x), float(a.y), float(a.z));\n}\ninline __host__ __device__ float3 make_float3(uint3 a)\n{\n    return make_float3(float(a.x), float(a.y), float(a.z));\n}\n\ninline __host__ __device__ int3 make_int3(int s)\n{\n    return make_int3(s, s, s);\n}\ninline __host__ __device__ int3 make_int3(int2 a)\n{\n    return make_int3(a.x, a.y, 0);\n}\ninline __host__ __device__ int3 make_int3(int2 a, int s)\n{\n    return make_int3(a.x, a.y, s);\n}\ninline __host__ __device__ int3 make_int3(uint3 a)\n{\n    return make_int3(int(a.x), int(a.y), int(a.z));\n}\ninline __host__ __device__ int3 make_int3(float3 a)\n{\n    return make_int3(int(a.x), int(a.y), int(a.z));\n}\n\ninline __host__ __device__ uint3 make_uint3(uint s)\n{\n    return make_uint3(s, s, s);\n}\ninline __host__ __device__ uint3 make_uint3(uint2 a)\n{\n    return make_uint3(a.x, a.y, 0);\n}\ninline __host__ __device__ uint3 make_uint3(uint2 a, uint s)\n{\n    return make_uint3(a.x, a.y, s);\n}\ninline __host__ __device__ uint3 make_uint3(uint4 a)\n{\n    return make_uint3(a.x, a.y, a.z);\n}\ninline __host__ __device__ uint3 make_uint3(int3 a)\n{\n    return make_uint3(uint(a.x), uint(a.y), uint(a.z));\n}\n\ninline __host__ __device__ float4 make_float4(float s)\n{\n    return make_float4(s, s, s, s);\n}\ninline __host__ __device__ float4 make_float4(float3 a)\n{\n    return make_float4(a.x, a.y, a.z, 0.0f);\n}\ninline __host__ __device__ float4 make_float4(float3 a, float w)\n{\n    return make_float4(a.x, a.y, a.z, w);\n}\ninline __host__ __device__ float4 make_float4(int4 a)\n{\n    return make_float4(float(a.x), float(a.y), float(a.z), float(a.w));\n}\ninline __host__ __device__ float4 make_float4(uint4 a)\n{\n    return make_float4(float(a.x), float(a.y), float(a.z), float(a.w));\n}\n\ninline __host__ __device__ int4 make_int4(int s)\n{\n    return make_int4(s, s, s, s);\n}\ninline __host__ __device__ int4 make_int4(int3 a)\n{\n    return make_int4(a.x, a.y, a.z, 0);\n}\ninline __host__ __device__ int4 make_int4(int3 a, int w)\n{\n    return make_int4(a.x, a.y, a.z, w);\n}\ninline __host__ __device__ int4 make_int4(uint4 a)\n{\n    return make_int4(int(a.x), int(a.y), int(a.z), int(a.w));\n}\ninline __host__ __device__ int4 make_int4(float4 a)\n{\n    return make_int4(int(a.x), int(a.y), int(a.z), int(a.w));\n}\n\n\ninline __host__ __device__ uint4 make_uint4(uint s)\n{\n    return make_uint4(s, s, s, s);\n}\ninline __host__ __device__ uint4 make_uint4(uint3 a)\n{\n    return make_uint4(a.x, a.y, a.z, 0);\n}\ninline __host__ __device__ uint4 make_uint4(uint3 a, uint w)\n{\n    return make_uint4(a.x, a.y, a.z, w);\n}\ninline __host__ __device__ uint4 make_uint4(int4 a)\n{\n    return make_uint4(uint(a.x), uint(a.y), uint(a.z), uint(a.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// negate\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 operator-(float2 &a)\n{\n    return make_float2(-a.x, -a.y);\n}\ninline __host__ __device__ int2 operator-(int2 &a)\n{\n    return make_int2(-a.x, -a.y);\n}\ninline __host__ __device__ float3 operator-(float3 &a)\n{\n    return make_float3(-a.x, -a.y, -a.z);\n}\ninline __host__ __device__ int3 operator-(int3 &a)\n{\n    return make_int3(-a.x, -a.y, -a.z);\n}\ninline __host__ __device__ float4 operator-(float4 &a)\n{\n    return make_float4(-a.x, -a.y, -a.z, -a.w);\n}\ninline __host__ __device__ int4 operator-(int4 &a)\n{\n    return make_int4(-a.x, -a.y, -a.z, -a.w);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// addition\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 operator+(float2 a, float2 b)\n{\n    return make_float2(a.x + b.x, a.y + b.y);\n}\ninline __host__ __device__ void operator+=(float2 &a, float2 b)\n{\n    a.x += b.x; a.y += b.y;\n}\ninline __host__ __device__ float2 operator+(float2 a, float b)\n{\n    return make_float2(a.x + b, a.y + b);\n}\ninline __host__ __device__ float2 operator+(float b, float2 a)\n{\n    return make_float2(a.x + b, a.y + b);\n}\ninline __host__ __device__ void operator+=(float2 &a, float b)\n{\n    a.x += b; a.y += b;\n}\n\ninline __host__ __device__ int2 operator+(int2 a, int2 b)\n{\n    return make_int2(a.x + b.x, a.y + b.y);\n}\ninline __host__ __device__ void operator+=(int2 &a, int2 b)\n{\n    a.x += b.x; a.y += b.y;\n}\ninline __host__ __device__ int2 operator+(int2 a, int b)\n{\n    return make_int2(a.x + b, a.y + b);\n}\ninline __host__ __device__ int2 operator+(int b, int2 a)\n{\n    return make_int2(a.x + b, a.y + b);\n}\ninline __host__ __device__ void operator+=(int2 &a, int b)\n{\n    a.x += b; a.y += b;\n}\n\ninline __host__ __device__ uint2 operator+(uint2 a, uint2 b)\n{\n    return make_uint2(a.x + b.x, a.y + b.y);\n}\ninline __host__ __device__ void operator+=(uint2 &a, uint2 b)\n{\n    a.x += b.x; a.y += b.y;\n}\ninline __host__ __device__ uint2 operator+(uint2 a, uint b)\n{\n    return make_uint2(a.x + b, a.y + b);\n}\ninline __host__ __device__ uint2 operator+(uint b, uint2 a)\n{\n    return make_uint2(a.x + b, a.y + b);\n}\ninline __host__ __device__ void operator+=(uint2 &a, uint b)\n{\n    a.x += b; a.y += b;\n}\n\n\ninline __host__ __device__ float3 operator+(float3 a, float3 b)\n{\n    return make_float3(a.x + b.x, a.y + b.y, a.z + b.z);\n}\ninline __host__ __device__ void operator+=(float3 &a, float3 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z;\n}\ninline __host__ __device__ float3 operator+(float3 a, float b)\n{\n    return make_float3(a.x + b, a.y + b, a.z + b);\n}\ninline __host__ __device__ void operator+=(float3 &a, float b)\n{\n    a.x += b; a.y += b; a.z += b;\n}\n\ninline __host__ __device__ int3 operator+(int3 a, int3 b)\n{\n    return make_int3(a.x + b.x, a.y + b.y, a.z + b.z);\n}\ninline __host__ __device__ void operator+=(int3 &a, int3 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z;\n}\ninline __host__ __device__ int3 operator+(int3 a, int b)\n{\n    return make_int3(a.x + b, a.y + b, a.z + b);\n}\ninline __host__ __device__ void operator+=(int3 &a, int b)\n{\n    a.x += b; a.y += b; a.z += b;\n}\n\ninline __host__ __device__ uint3 operator+(uint3 a, uint3 b)\n{\n    return make_uint3(a.x + b.x, a.y + b.y, a.z + b.z);\n}\ninline __host__ __device__ void operator+=(uint3 &a, uint3 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z;\n}\ninline __host__ __device__ uint3 operator+(uint3 a, uint b)\n{\n    return make_uint3(a.x + b, a.y + b, a.z + b);\n}\ninline __host__ __device__ void operator+=(uint3 &a, uint b)\n{\n    a.x += b; a.y += b; a.z += b;\n}\n\ninline __host__ __device__ int3 operator+(int b, int3 a)\n{\n    return make_int3(a.x + b, a.y + b, a.z + b);\n}\ninline __host__ __device__ uint3 operator+(uint b, uint3 a)\n{\n    return make_uint3(a.x + b, a.y + b, a.z + b);\n}\ninline __host__ __device__ float3 operator+(float b, float3 a)\n{\n    return make_float3(a.x + b, a.y + b, a.z + b);\n}\n\ninline __host__ __device__ float4 operator+(float4 a, float4 b)\n{\n    return make_float4(a.x + b.x, a.y + b.y, a.z + b.z,  a.w + b.w);\n}\ninline __host__ __device__ void operator+=(float4 &a, float4 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z; a.w += b.w;\n}\ninline __host__ __device__ float4 operator+(float4 a, float b)\n{\n    return make_float4(a.x + b, a.y + b, a.z + b, a.w + b);\n}\ninline __host__ __device__ float4 operator+(float b, float4 a)\n{\n    return make_float4(a.x + b, a.y + b, a.z + b, a.w + b);\n}\ninline __host__ __device__ void operator+=(float4 &a, float b)\n{\n    a.x += b; a.y += b; a.z += b; a.w += b;\n}\n\ninline __host__ __device__ int4 operator+(int4 a, int4 b)\n{\n    return make_int4(a.x + b.x, a.y + b.y, a.z + b.z,  a.w + b.w);\n}\ninline __host__ __device__ void operator+=(int4 &a, int4 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z; a.w += b.w;\n}\ninline __host__ __device__ int4 operator+(int4 a, int b)\n{\n    return make_int4(a.x + b, a.y + b, a.z + b,  a.w + b);\n}\ninline __host__ __device__ int4 operator+(int b, int4 a)\n{\n    return make_int4(a.x + b, a.y + b, a.z + b,  a.w + b);\n}\ninline __host__ __device__ void operator+=(int4 &a, int b)\n{\n    a.x += b; a.y += b; a.z += b; a.w += b;\n}\n\ninline __host__ __device__ uint4 operator+(uint4 a, uint4 b)\n{\n    return make_uint4(a.x + b.x, a.y + b.y, a.z + b.z,  a.w + b.w);\n}\ninline __host__ __device__ void operator+=(uint4 &a, uint4 b)\n{\n    a.x += b.x; a.y += b.y; a.z += b.z; a.w += b.w;\n}\ninline __host__ __device__ uint4 operator+(uint4 a, uint b)\n{\n    return make_uint4(a.x + b, a.y + b, a.z + b,  a.w + b);\n}\ninline __host__ __device__ uint4 operator+(uint b, uint4 a)\n{\n    return make_uint4(a.x + b, a.y + b, a.z + b,  a.w + b);\n}\ninline __host__ __device__ void operator+=(uint4 &a, uint b)\n{\n    a.x += b; a.y += b; a.z += b; a.w += b;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// subtract\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 operator-(float2 a, float2 b)\n{\n    return make_float2(a.x - b.x, a.y - b.y);\n}\ninline __host__ __device__ void operator-=(float2 &a, float2 b)\n{\n    a.x -= b.x; a.y -= b.y;\n}\ninline __host__ __device__ float2 operator-(float2 a, float b)\n{\n    return make_float2(a.x - b, a.y - b);\n}\ninline __host__ __device__ float2 operator-(float b, float2 a)\n{\n    return make_float2(b - a.x, b - a.y);\n}\ninline __host__ __device__ void operator-=(float2 &a, float b)\n{\n    a.x -= b; a.y -= b;\n}\n\ninline __host__ __device__ int2 operator-(int2 a, int2 b)\n{\n    return make_int2(a.x - b.x, a.y - b.y);\n}\ninline __host__ __device__ void operator-=(int2 &a, int2 b)\n{\n    a.x -= b.x; a.y -= b.y;\n}\ninline __host__ __device__ int2 operator-(int2 a, int b)\n{\n    return make_int2(a.x - b, a.y - b);\n}\ninline __host__ __device__ int2 operator-(int b, int2 a)\n{\n    return make_int2(b - a.x, b - a.y);\n}\ninline __host__ __device__ void operator-=(int2 &a, int b)\n{\n    a.x -= b; a.y -= b;\n}\n\ninline __host__ __device__ uint2 operator-(uint2 a, uint2 b)\n{\n    return make_uint2(a.x - b.x, a.y - b.y);\n}\ninline __host__ __device__ void operator-=(uint2 &a, uint2 b)\n{\n    a.x -= b.x; a.y -= b.y;\n}\ninline __host__ __device__ uint2 operator-(uint2 a, uint b)\n{\n    return make_uint2(a.x - b, a.y - b);\n}\ninline __host__ __device__ uint2 operator-(uint b, uint2 a)\n{\n    return make_uint2(b - a.x, b - a.y);\n}\ninline __host__ __device__ void operator-=(uint2 &a, uint b)\n{\n    a.x -= b; a.y -= b;\n}\n\ninline __host__ __device__ float3 operator-(float3 a, float3 b)\n{\n    return make_float3(a.x - b.x, a.y - b.y, a.z - b.z);\n}\ninline __host__ __device__ void operator-=(float3 &a, float3 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z;\n}\ninline __host__ __device__ float3 operator-(float3 a, float b)\n{\n    return make_float3(a.x - b, a.y - b, a.z - b);\n}\ninline __host__ __device__ float3 operator-(float b, float3 a)\n{\n    return make_float3(b - a.x, b - a.y, b - a.z);\n}\ninline __host__ __device__ void operator-=(float3 &a, float b)\n{\n    a.x -= b; a.y -= b; a.z -= b;\n}\n\ninline __host__ __device__ int3 operator-(int3 a, int3 b)\n{\n    return make_int3(a.x - b.x, a.y - b.y, a.z - b.z);\n}\ninline __host__ __device__ void operator-=(int3 &a, int3 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z;\n}\ninline __host__ __device__ int3 operator-(int3 a, int b)\n{\n    return make_int3(a.x - b, a.y - b, a.z - b);\n}\ninline __host__ __device__ int3 operator-(int b, int3 a)\n{\n    return make_int3(b - a.x, b - a.y, b - a.z);\n}\ninline __host__ __device__ void operator-=(int3 &a, int b)\n{\n    a.x -= b; a.y -= b; a.z -= b;\n}\n\ninline __host__ __device__ uint3 operator-(uint3 a, uint3 b)\n{\n    return make_uint3(a.x - b.x, a.y - b.y, a.z - b.z);\n}\ninline __host__ __device__ void operator-=(uint3 &a, uint3 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z;\n}\ninline __host__ __device__ uint3 operator-(uint3 a, uint b)\n{\n    return make_uint3(a.x - b, a.y - b, a.z - b);\n}\ninline __host__ __device__ uint3 operator-(uint b, uint3 a)\n{\n    return make_uint3(b - a.x, b - a.y, b - a.z);\n}\ninline __host__ __device__ void operator-=(uint3 &a, uint b)\n{\n    a.x -= b; a.y -= b; a.z -= b;\n}\n\ninline __host__ __device__ float4 operator-(float4 a, float4 b)\n{\n    return make_float4(a.x - b.x, a.y - b.y, a.z - b.z,  a.w - b.w);\n}\ninline __host__ __device__ void operator-=(float4 &a, float4 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z; a.w -= b.w;\n}\ninline __host__ __device__ float4 operator-(float4 a, float b)\n{\n    return make_float4(a.x - b, a.y - b, a.z - b,  a.w - b);\n}\ninline __host__ __device__ void operator-=(float4 &a, float b)\n{\n    a.x -= b; a.y -= b; a.z -= b; a.w -= b;\n}\n\ninline __host__ __device__ int4 operator-(int4 a, int4 b)\n{\n    return make_int4(a.x - b.x, a.y - b.y, a.z - b.z,  a.w - b.w);\n}\ninline __host__ __device__ void operator-=(int4 &a, int4 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z; a.w -= b.w;\n}\ninline __host__ __device__ int4 operator-(int4 a, int b)\n{\n    return make_int4(a.x - b, a.y - b, a.z - b,  a.w - b);\n}\ninline __host__ __device__ int4 operator-(int b, int4 a)\n{\n    return make_int4(b - a.x, b - a.y, b - a.z, b - a.w);\n}\ninline __host__ __device__ void operator-=(int4 &a, int b)\n{\n    a.x -= b; a.y -= b; a.z -= b; a.w -= b;\n}\n\ninline __host__ __device__ uint4 operator-(uint4 a, uint4 b)\n{\n    return make_uint4(a.x - b.x, a.y - b.y, a.z - b.z,  a.w - b.w);\n}\ninline __host__ __device__ void operator-=(uint4 &a, uint4 b)\n{\n    a.x -= b.x; a.y -= b.y; a.z -= b.z; a.w -= b.w;\n}\ninline __host__ __device__ uint4 operator-(uint4 a, uint b)\n{\n    return make_uint4(a.x - b, a.y - b, a.z - b,  a.w - b);\n}\ninline __host__ __device__ uint4 operator-(uint b, uint4 a)\n{\n    return make_uint4(b - a.x, b - a.y, b - a.z, b - a.w);\n}\ninline __host__ __device__ void operator-=(uint4 &a, uint b)\n{\n    a.x -= b; a.y -= b; a.z -= b; a.w -= b;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// multiply\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 operator*(float2 a, float2 b)\n{\n    return make_float2(a.x * b.x, a.y * b.y);\n}\ninline __host__ __device__ void operator*=(float2 &a, float2 b)\n{\n    a.x *= b.x; a.y *= b.y;\n}\ninline __host__ __device__ float2 operator*(float2 a, float b)\n{\n    return make_float2(a.x * b, a.y * b);\n}\ninline __host__ __device__ float2 operator*(float b, float2 a)\n{\n    return make_float2(b * a.x, b * a.y);\n}\ninline __host__ __device__ void operator*=(float2 &a, float b)\n{\n    a.x *= b; a.y *= b;\n}\n\ninline __host__ __device__ int2 operator*(int2 a, int2 b)\n{\n    return make_int2(a.x * b.x, a.y * b.y);\n}\ninline __host__ __device__ void operator*=(int2 &a, int2 b)\n{\n    a.x *= b.x; a.y *= b.y;\n}\ninline __host__ __device__ int2 operator*(int2 a, int b)\n{\n    return make_int2(a.x * b, a.y * b);\n}\ninline __host__ __device__ int2 operator*(int b, int2 a)\n{\n    return make_int2(b * a.x, b * a.y);\n}\ninline __host__ __device__ void operator*=(int2 &a, int b)\n{\n    a.x *= b; a.y *= b;\n}\n\ninline __host__ __device__ uint2 operator*(uint2 a, uint2 b)\n{\n    return make_uint2(a.x * b.x, a.y * b.y);\n}\ninline __host__ __device__ void operator*=(uint2 &a, uint2 b)\n{\n    a.x *= b.x; a.y *= b.y;\n}\ninline __host__ __device__ uint2 operator*(uint2 a, uint b)\n{\n    return make_uint2(a.x * b, a.y * b);\n}\ninline __host__ __device__ uint2 operator*(uint b, uint2 a)\n{\n    return make_uint2(b * a.x, b * a.y);\n}\ninline __host__ __device__ void operator*=(uint2 &a, uint b)\n{\n    a.x *= b; a.y *= b;\n}\n\ninline __host__ __device__ float3 operator*(float3 a, float3 b)\n{\n    return make_float3(a.x * b.x, a.y * b.y, a.z * b.z);\n}\ninline __host__ __device__ void operator*=(float3 &a, float3 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z;\n}\ninline __host__ __device__ float3 operator*(float3 a, float b)\n{\n    return make_float3(a.x * b, a.y * b, a.z * b);\n}\ninline __host__ __device__ float3 operator*(float b, float3 a)\n{\n    return make_float3(b * a.x, b * a.y, b * a.z);\n}\ninline __host__ __device__ void operator*=(float3 &a, float b)\n{\n    a.x *= b; a.y *= b; a.z *= b;\n}\n\ninline __host__ __device__ int3 operator*(int3 a, int3 b)\n{\n    return make_int3(a.x * b.x, a.y * b.y, a.z * b.z);\n}\ninline __host__ __device__ void operator*=(int3 &a, int3 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z;\n}\ninline __host__ __device__ int3 operator*(int3 a, int b)\n{\n    return make_int3(a.x * b, a.y * b, a.z * b);\n}\ninline __host__ __device__ int3 operator*(int b, int3 a)\n{\n    return make_int3(b * a.x, b * a.y, b * a.z);\n}\ninline __host__ __device__ void operator*=(int3 &a, int b)\n{\n    a.x *= b; a.y *= b; a.z *= b;\n}\n\ninline __host__ __device__ uint3 operator*(uint3 a, uint3 b)\n{\n    return make_uint3(a.x * b.x, a.y * b.y, a.z * b.z);\n}\ninline __host__ __device__ void operator*=(uint3 &a, uint3 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z;\n}\ninline __host__ __device__ uint3 operator*(uint3 a, uint b)\n{\n    return make_uint3(a.x * b, a.y * b, a.z * b);\n}\ninline __host__ __device__ uint3 operator*(uint b, uint3 a)\n{\n    return make_uint3(b * a.x, b * a.y, b * a.z);\n}\ninline __host__ __device__ void operator*=(uint3 &a, uint b)\n{\n    a.x *= b; a.y *= b; a.z *= b;\n}\n\ninline __host__ __device__ float4 operator*(float4 a, float4 b)\n{\n    return make_float4(a.x * b.x, a.y * b.y, a.z * b.z,  a.w * b.w);\n}\ninline __host__ __device__ void operator*=(float4 &a, float4 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z; a.w *= b.w;\n}\ninline __host__ __device__ float4 operator*(float4 a, float b)\n{\n    return make_float4(a.x * b, a.y * b, a.z * b,  a.w * b);\n}\ninline __host__ __device__ float4 operator*(float b, float4 a)\n{\n    return make_float4(b * a.x, b * a.y, b * a.z, b * a.w);\n}\ninline __host__ __device__ void operator*=(float4 &a, float b)\n{\n    a.x *= b; a.y *= b; a.z *= b; a.w *= b;\n}\n\ninline __host__ __device__ int4 operator*(int4 a, int4 b)\n{\n    return make_int4(a.x * b.x, a.y * b.y, a.z * b.z,  a.w * b.w);\n}\ninline __host__ __device__ void operator*=(int4 &a, int4 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z; a.w *= b.w;\n}\ninline __host__ __device__ int4 operator*(int4 a, int b)\n{\n    return make_int4(a.x * b, a.y * b, a.z * b,  a.w * b);\n}\ninline __host__ __device__ int4 operator*(int b, int4 a)\n{\n    return make_int4(b * a.x, b * a.y, b * a.z, b * a.w);\n}\ninline __host__ __device__ void operator*=(int4 &a, int b)\n{\n    a.x *= b; a.y *= b; a.z *= b; a.w *= b;\n}\n\ninline __host__ __device__ uint4 operator*(uint4 a, uint4 b)\n{\n    return make_uint4(a.x * b.x, a.y * b.y, a.z * b.z,  a.w * b.w);\n}\ninline __host__ __device__ void operator*=(uint4 &a, uint4 b)\n{\n    a.x *= b.x; a.y *= b.y; a.z *= b.z; a.w *= b.w;\n}\ninline __host__ __device__ uint4 operator*(uint4 a, uint b)\n{\n    return make_uint4(a.x * b, a.y * b, a.z * b,  a.w * b);\n}\ninline __host__ __device__ uint4 operator*(uint b, uint4 a)\n{\n    return make_uint4(b * a.x, b * a.y, b * a.z, b * a.w);\n}\ninline __host__ __device__ void operator*=(uint4 &a, uint b)\n{\n    a.x *= b; a.y *= b; a.z *= b; a.w *= b;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// divide\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 operator/(float2 a, float2 b)\n{\n    return make_float2(a.x / b.x, a.y / b.y);\n}\ninline __host__ __device__ void operator/=(float2 &a, float2 b)\n{\n    a.x /= b.x; a.y /= b.y;\n}\ninline __host__ __device__ float2 operator/(float2 a, float b)\n{\n    return make_float2(a.x / b, a.y / b);\n}\ninline __host__ __device__ void operator/=(float2 &a, float b)\n{\n    a.x /= b; a.y /= b;\n}\ninline __host__ __device__ float2 operator/(float b, float2 a)\n{\n    return make_float2(b / a.x, b / a.y);\n}\n\ninline __host__ __device__ float3 operator/(float3 a, float3 b)\n{\n    return make_float3(a.x / b.x, a.y / b.y, a.z / b.z);\n}\ninline __host__ __device__ void operator/=(float3 &a, float3 b)\n{\n    a.x /= b.x; a.y /= b.y; a.z /= b.z;\n}\ninline __host__ __device__ float3 operator/(float3 a, float b)\n{\n    return make_float3(a.x / b, a.y / b, a.z / b);\n}\ninline __host__ __device__ void operator/=(float3 &a, float b)\n{\n    a.x /= b; a.y /= b; a.z /= b;\n}\ninline __host__ __device__ float3 operator/(float b, float3 a)\n{\n    return make_float3(b / a.x, b / a.y, b / a.z);\n}\n\ninline __host__ __device__ float4 operator/(float4 a, float4 b)\n{\n    return make_float4(a.x / b.x, a.y / b.y, a.z / b.z,  a.w / b.w);\n}\ninline __host__ __device__ void operator/=(float4 &a, float4 b)\n{\n    a.x /= b.x; a.y /= b.y; a.z /= b.z; a.w /= b.w;\n}\ninline __host__ __device__ float4 operator/(float4 a, float b)\n{\n    return make_float4(a.x / b, a.y / b, a.z / b,  a.w / b);\n}\ninline __host__ __device__ void operator/=(float4 &a, float b)\n{\n    a.x /= b; a.y /= b; a.z /= b; a.w /= b;\n}\ninline __host__ __device__ float4 operator/(float b, float4 a){\n    return make_float4(b / a.x, b / a.y, b / a.z, b / a.w);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// min\n////////////////////////////////////////////////////////////////////////////////\n\ninline  __host__ __device__ float2 fminf(float2 a, float2 b)\n{\n\treturn make_float2(fminf(a.x,b.x), fminf(a.y,b.y));\n}\ninline __host__ __device__ float3 fminf(float3 a, float3 b)\n{\n\treturn make_float3(fminf(a.x,b.x), fminf(a.y,b.y), fminf(a.z,b.z));\n}\ninline  __host__ __device__ float4 fminf(float4 a, float4 b)\n{\n\treturn make_float4(fminf(a.x,b.x), fminf(a.y,b.y), fminf(a.z,b.z), fminf(a.w,b.w));\n}\n\ninline __host__ __device__ int2 min(int2 a, int2 b)\n{\n    return make_int2(min(a.x,b.x), min(a.y,b.y));\n}\ninline __host__ __device__ int3 min(int3 a, int3 b)\n{\n    return make_int3(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z));\n}\ninline __host__ __device__ int4 min(int4 a, int4 b)\n{\n    return make_int4(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z), min(a.w,b.w));\n}\n\ninline __host__ __device__ uint2 min(uint2 a, uint2 b)\n{\n    return make_uint2(min(a.x,b.x), min(a.y,b.y));\n}\ninline __host__ __device__ uint3 min(uint3 a, uint3 b)\n{\n    return make_uint3(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z));\n}\ninline __host__ __device__ uint4 min(uint4 a, uint4 b)\n{\n    return make_uint4(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z), min(a.w,b.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// max\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 fmaxf(float2 a, float2 b)\n{\n\treturn make_float2(fmaxf(a.x,b.x), fmaxf(a.y,b.y));\n}\ninline __host__ __device__ float3 fmaxf(float3 a, float3 b)\n{\n\treturn make_float3(fmaxf(a.x,b.x), fmaxf(a.y,b.y), fmaxf(a.z,b.z));\n}\ninline __host__ __device__ float4 fmaxf(float4 a, float4 b)\n{\n\treturn make_float4(fmaxf(a.x,b.x), fmaxf(a.y,b.y), fmaxf(a.z,b.z), fmaxf(a.w,b.w));\n}\n\ninline __host__ __device__ int2 max(int2 a, int2 b)\n{\n    return make_int2(max(a.x,b.x), max(a.y,b.y));\n}\ninline __host__ __device__ int3 max(int3 a, int3 b)\n{\n    return make_int3(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z));\n}\ninline __host__ __device__ int4 max(int4 a, int4 b)\n{\n    return make_int4(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z), max(a.w,b.w));\n}\n\ninline __host__ __device__ uint2 max(uint2 a, uint2 b)\n{\n    return make_uint2(max(a.x,b.x), max(a.y,b.y));\n}\ninline __host__ __device__ uint3 max(uint3 a, uint3 b)\n{\n    return make_uint3(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z));\n}\ninline __host__ __device__ uint4 max(uint4 a, uint4 b)\n{\n    return make_uint4(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z), max(a.w,b.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// lerp\n// - linear interpolation between a and b, based on value t in [0, 1] range\n////////////////////////////////////////////////////////////////////////////////\n\ninline __device__ __host__ float lerp(float a, float b, float t)\n{\n    return a + t*(b-a);\n}\ninline __device__ __host__ float2 lerp(float2 a, float2 b, float t)\n{\n    return a + t*(b-a);\n}\ninline __device__ __host__ float3 lerp(float3 a, float3 b, float t)\n{\n    return a + t*(b-a);\n}\ninline __device__ __host__ float4 lerp(float4 a, float4 b, float t)\n{\n    return a + t*(b-a);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// clamp\n// - clamp the value v to be in the range [a, b]\n////////////////////////////////////////////////////////////////////////////////\n\ninline __device__ __host__ float clamp(float f, float a, float b)\n{\n    return fmaxf(a, fminf(f, b));\n}\ninline __device__ __host__ int clamp(int f, int a, int b)\n{\n    return max(a, min(f, b));\n}\ninline __device__ __host__ uint clamp(uint f, uint a, uint b)\n{\n    return max(a, min(f, b));\n}\n\ninline __device__ __host__ float2 clamp(float2 v, float a, float b)\n{\n    return make_float2(clamp(v.x, a, b), clamp(v.y, a, b));\n}\ninline __device__ __host__ float2 clamp(float2 v, float2 a, float2 b)\n{\n    return make_float2(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y));\n}\ninline __device__ __host__ float3 clamp(float3 v, float a, float b)\n{\n    return make_float3(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b));\n}\ninline __device__ __host__ float3 clamp(float3 v, float3 a, float3 b)\n{\n    return make_float3(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z));\n}\ninline __device__ __host__ float4 clamp(float4 v, float a, float b)\n{\n    return make_float4(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b), clamp(v.w, a, b));\n}\ninline __device__ __host__ float4 clamp(float4 v, float4 a, float4 b)\n{\n    return make_float4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));\n}\n\ninline __device__ __host__ int2 clamp(int2 v, int a, int b)\n{\n    return make_int2(clamp(v.x, a, b), clamp(v.y, a, b));\n}\ninline __device__ __host__ int2 clamp(int2 v, int2 a, int2 b)\n{\n    return make_int2(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y));\n}\ninline __device__ __host__ int3 clamp(int3 v, int a, int b)\n{\n    return make_int3(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b));\n}\ninline __device__ __host__ int3 clamp(int3 v, int3 a, int3 b)\n{\n    return make_int3(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z));\n}\ninline __device__ __host__ int4 clamp(int4 v, int a, int b)\n{\n    return make_int4(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b), clamp(v.w, a, b));\n}\ninline __device__ __host__ int4 clamp(int4 v, int4 a, int4 b)\n{\n    return make_int4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));\n}\n\ninline __device__ __host__ uint2 clamp(uint2 v, uint a, uint b)\n{\n    return make_uint2(clamp(v.x, a, b), clamp(v.y, a, b));\n}\ninline __device__ __host__ uint2 clamp(uint2 v, uint2 a, uint2 b)\n{\n    return make_uint2(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y));\n}\ninline __device__ __host__ uint3 clamp(uint3 v, uint a, uint b)\n{\n    return make_uint3(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b));\n}\ninline __device__ __host__ uint3 clamp(uint3 v, uint3 a, uint3 b)\n{\n    return make_uint3(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z));\n}\ninline __device__ __host__ uint4 clamp(uint4 v, uint a, uint b)\n{\n    return make_uint4(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b), clamp(v.w, a, b));\n}\ninline __device__ __host__ uint4 clamp(uint4 v, uint4 a, uint4 b)\n{\n    return make_uint4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// dot product\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float dot(float2 a, float2 b)\n{ \n    return a.x * b.x + a.y * b.y;\n}\ninline __host__ __device__ float dot(float3 a, float3 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z;\n}\ninline __host__ __device__ float dot(float4 a, float4 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;\n}\n\ninline __host__ __device__ int dot(int2 a, int2 b)\n{ \n    return a.x * b.x + a.y * b.y;\n}\ninline __host__ __device__ int dot(int3 a, int3 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z;\n}\ninline __host__ __device__ int dot(int4 a, int4 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;\n}\n\ninline __host__ __device__ uint dot(uint2 a, uint2 b)\n{ \n    return a.x * b.x + a.y * b.y;\n}\ninline __host__ __device__ uint dot(uint3 a, uint3 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z;\n}\ninline __host__ __device__ uint dot(uint4 a, uint4 b)\n{ \n    return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// length\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float length(float2 v)\n{\n    return sqrtf(dot(v, v));\n}\ninline __host__ __device__ float length(float3 v)\n{\n    return sqrtf(dot(v, v));\n}\ninline __host__ __device__ float length(float4 v)\n{\n    return sqrtf(dot(v, v));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// normalize\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 normalize(float2 v)\n{\n    float invLen = rsqrtf(dot(v, v));\n    return v * invLen;\n}\ninline __host__ __device__ float3 normalize(float3 v)\n{\n    float invLen = rsqrtf(dot(v, v));\n    return v * invLen;\n}\ninline __host__ __device__ float4 normalize(float4 v)\n{\n    float invLen = rsqrtf(dot(v, v));\n    return v * invLen;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// floor\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 floorf(float2 v)\n{\n    return make_float2(floorf(v.x), floorf(v.y));\n}\ninline __host__ __device__ float3 floorf(float3 v)\n{\n    return make_float3(floorf(v.x), floorf(v.y), floorf(v.z));\n}\ninline __host__ __device__ float4 floorf(float4 v)\n{\n    return make_float4(floorf(v.x), floorf(v.y), floorf(v.z), floorf(v.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// frac - returns the fractional portion of a scalar or each vector component\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float fracf(float v)\n{\n    return v - floorf(v);\n}\ninline __host__ __device__ float2 fracf(float2 v)\n{\n    return make_float2(fracf(v.x), fracf(v.y));\n}\ninline __host__ __device__ float3 fracf(float3 v)\n{\n    return make_float3(fracf(v.x), fracf(v.y), fracf(v.z));\n}\ninline __host__ __device__ float4 fracf(float4 v)\n{\n    return make_float4(fracf(v.x), fracf(v.y), fracf(v.z), fracf(v.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// fmod\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 fmodf(float2 a, float2 b)\n{\n    return make_float2(fmodf(a.x, b.x), fmodf(a.y, b.y));\n}\ninline __host__ __device__ float3 fmodf(float3 a, float3 b)\n{\n    return make_float3(fmodf(a.x, b.x), fmodf(a.y, b.y), fmodf(a.z, b.z));\n}\ninline __host__ __device__ float4 fmodf(float4 a, float4 b)\n{\n    return make_float4(fmodf(a.x, b.x), fmodf(a.y, b.y), fmodf(a.z, b.z), fmodf(a.w, b.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// absolute value\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float2 fabs(float2 v)\n{\n\treturn make_float2(fabs(v.x), fabs(v.y));\n}\ninline __host__ __device__ float3 fabs(float3 v)\n{\n\treturn make_float3(fabs(v.x), fabs(v.y), fabs(v.z));\n}\ninline __host__ __device__ float4 fabs(float4 v)\n{\n\treturn make_float4(fabs(v.x), fabs(v.y), fabs(v.z), fabs(v.w));\n}\n\ninline __host__ __device__ int2 abs(int2 v)\n{\n\treturn make_int2(abs(v.x), abs(v.y));\n}\ninline __host__ __device__ int3 abs(int3 v)\n{\n\treturn make_int3(abs(v.x), abs(v.y), abs(v.z));\n}\ninline __host__ __device__ int4 abs(int4 v)\n{\n\treturn make_int4(abs(v.x), abs(v.y), abs(v.z), abs(v.w));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// reflect\n// - returns reflection of incident ray I around surface normal N\n// - N should be normalized, reflected vector's length is equal to length of I\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float3 reflect(float3 i, float3 n)\n{\n\treturn i - 2.0f * n * dot(n,i);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// cross product\n////////////////////////////////////////////////////////////////////////////////\n\ninline __host__ __device__ float3 cross(float3 a, float3 b)\n{ \n    return make_float3(a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x); \n}\n\n////////////////////////////////////////////////////////////////////////////////\n// smoothstep\n// - returns 0 if x < a\n// - returns 1 if x > b\n// - otherwise returns smooth interpolation between 0 and 1 based on x\n////////////////////////////////////////////////////////////////////////////////\n\ninline __device__ __host__ float smoothstep(float a, float b, float x)\n{\n\tfloat y = clamp((x - a) / (b - a), 0.0f, 1.0f);\n\treturn (y*y*(3.0f - (2.0f*y)));\n}\ninline __device__ __host__ float2 smoothstep(float2 a, float2 b, float2 x)\n{\n\tfloat2 y = clamp((x - a) / (b - a), 0.0f, 1.0f);\n\treturn (y*y*(make_float2(3.0f) - (make_float2(2.0f)*y)));\n}\ninline __device__ __host__ float3 smoothstep(float3 a, float3 b, float3 x)\n{\n\tfloat3 y = clamp((x - a) / (b - a), 0.0f, 1.0f);\n\treturn (y*y*(make_float3(3.0f) - (make_float3(2.0f)*y)));\n}\ninline __device__ __host__ float4 smoothstep(float4 a, float4 b, float4 x)\n{\n\tfloat4 y = clamp((x - a) / (b - a), 0.0f, 1.0f);\n\treturn (y*y*(make_float4(3.0f) - (make_float4(2.0f)*y)));\n}\n\n#endif\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/dynamic_bitset.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n/***********************************************************************\n * Author: Vincent Rabaud\n *************************************************************************/\n\n#ifndef FLANN_DYNAMIC_BITSET_H_\n#define FLANN_DYNAMIC_BITSET_H_\n\n//#define FLANN_USE_BOOST 1\n#if FLANN_USE_BOOST\n#include <boost/dynamic_bitset.hpp>\ntypedef boost::dynamic_bitset<> DynamicBitset;\n#else\n\n#include <limits.h>\n\nnamespace flann {\n\n/** Class re-implementing the boost version of it\n * This helps not depending on boost, it also does not do the bound checks\n * and has a way to reset a block for speed\n */\nclass DynamicBitset\n{\npublic:\n    /** @param default constructor\n     */\n    DynamicBitset() : size_(0)\n    {\n    }\n\n    /** @param only constructor we use in our code\n     * @param the size of the bitset (in bits)\n     */\n    DynamicBitset(size_t size)\n    {\n        resize(size);\n        reset();\n    }\n\n    /** Sets all the bits to 0\n     */\n    void clear()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    /** @brief checks if the bitset is empty\n     * @return true if the bitset is empty\n     */\n    bool empty() const\n    {\n        return bitset_.empty();\n    }\n\n    /** @param set all the bits to 0\n     */\n    void reset()\n    {\n        std::fill(bitset_.begin(), bitset_.end(), 0);\n    }\n\n    /** @brief set one bit to 0\n     * @param\n     */\n    void reset(size_t index)\n    {\n        bitset_[index / cell_bit_size_] &= ~(size_t(1) << (index % cell_bit_size_));\n    }\n\n    /** @brief sets a specific bit to 0, and more bits too\n     * This function is useful when resetting a given set of bits so that the\n     * whole bitset ends up being 0: if that's the case, we don't care about setting\n     * other bits to 0\n     * @param\n     */\n    void reset_block(size_t index)\n    {\n        bitset_[index / cell_bit_size_] = 0;\n    }\n\n    /** @param resize the bitset so that it contains at least size bits\n     * @param size\n     */\n    void resize(size_t size)\n    {\n        size_ = size;\n        bitset_.resize(size / cell_bit_size_ + 1);\n    }\n\n    /** @param set a bit to true\n     * @param index the index of the bit to set to 1\n     */\n    void set(size_t index)\n    {\n        bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);\n    }\n\n    /** @param gives the number of contained bits\n     */\n    size_t size() const\n    {\n        return size_;\n    }\n\n    /** @param check if a bit is set\n     * @param index the index of the bit to check\n     * @return true if the bit is set\n     */\n    bool test(size_t index) const\n    {\n        return (bitset_[index / cell_bit_size_] & (size_t(1) << (index % cell_bit_size_))) != 0;\n    }\n\nprivate:\n    template <typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar & size_;\n    \tar & bitset_;\n    }\n    friend struct serialization::access;\n\nprivate:\n    std::vector<size_t> bitset_;\n    size_t size_;\n    static const unsigned int cell_bit_size_ = CHAR_BIT * sizeof(size_t);\n};\n\n} // namespace flann\n\n#endif\n\n#endif // FLANN_DYNAMIC_BITSET_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/heap.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_HEAP_H_\n#define FLANN_HEAP_H_\n\n#include <algorithm>\n#include <vector>\n\nnamespace flann\n{\n\n/**\n * Priority Queue Implementation\n *\n * The priority queue is implemented with a heap.  A heap is a complete\n * (full) binary tree in which each parent is less than both of its\n * children, but the order of the children is unspecified.\n */\ntemplate <typename T>\nclass Heap\n{\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<T> heap;\n    int length;\n\n    /**\n     * Number of element in the heap\n     */\n    int count;\n\n\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    Heap(int size)\n    {\n        length = size;\n        heap.reserve(length);\n        count = 0;\n    }\n\n    /**\n     *\n     * Returns: heap size\n     */\n    int size()\n    {\n        return count;\n    }\n\n    /**\n     * Tests if the heap is empty\n     *\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size()==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        heap.clear();\n        count = 0;\n    }\n\n    struct CompareT : public std::binary_function<T,T,bool>\n    {\n        bool operator()(const T& t_1, const T& t_2) const\n        {\n            return t_2 < t_1;\n        }\n    };\n\n    /**\n     * Insert a new element in the heap.\n     *\n     * We select the next empty leaf node, and then keep moving any larger\n     * parents down until the right location is found to store this element.\n     *\n     * Params:\n     *     value = the new element to be inserted in the heap\n     */\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (count == length) {\n            return;\n        }\n\n        heap.push_back(value);\n        static CompareT compareT;\n        std::push_heap(heap.begin(), heap.end(), compareT);\n        ++count;\n    }\n\n\n\n    /**\n     * Returns the node of minimum value from the heap (top of the heap).\n     *\n     * Params:\n     *     value = out parameter used to return the min element\n     * Returns: false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (count == 0) {\n            return false;\n        }\n\n        value = heap[0];\n        static CompareT compareT;\n        std::pop_heap(heap.begin(), heap.end(), compareT);\n        heap.pop_back();\n        --count;\n\n        return true;  /* Return old last node. */\n    }\n};\n\n\ntemplate <typename T>\nclass IntervalHeap\n{\n\tstruct Interval\n\t{\n\t\tT left;\n\t\tT right;\n\t};\n\n    /**\n     * Storage array for the heap.\n     * Type T must be comparable.\n     */\n    std::vector<Interval> heap;\n    size_t capacity_;\n    size_t size_;\n\npublic:\n    /**\n     * Constructor.\n     *\n     * Params:\n     *     size = heap size\n     */\n\n    IntervalHeap(int capacity) : capacity_(capacity), size_(0)\n    {\n        heap.resize(capacity/2 + capacity%2 + 1); // 1-based indexing\n    }\n\n    /**\n     * @return Heap size\n     */\n    size_t size()\n    {\n        return size_;\n    }\n\n    /**\n     * Tests if the heap is empty\n     * @return true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return size_==0;\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n        size_ = 0;\n    }\n\n    void insert(const T& value)\n    {\n        /* If heap is full, then return without adding this element. */\n        if (size_ == capacity_) {\n            return;\n        }\n\n        // insert into the root\n        if (size_<2) {\n        \tif (size_==0) {\n        \t\theap[1].left = value;\n        \t\theap[1].right = value;\n        \t}\n        \telse {\n        \t\tif (value<heap[1].left) {\n        \t\t\theap[1].left = value;\n        \t\t}\n        \t\telse {\n        \t\t\theap[1].right = value;\n        \t\t}\n        \t}\n        \t++size_;\n        \treturn;\n        }\n\n        size_t last_pos = size_/2 + size_%2;\n        bool min_heap;\n\n        if (size_%2) { // odd number of elements\n        \tmin_heap = (value<heap[last_pos].left)? true : false;\n        }\n        else {\n        \t++last_pos;\n        \tmin_heap = (value<heap[last_pos/2].left)? true : false;\n        }\n\n        if (min_heap) {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && value < heap[par].left) {\n        \t\theap[pos].left = heap[par].left;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].left = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].right = heap[last_pos].left;\n        \t}\n        }\n        else {\n        \tsize_t pos = last_pos;\n        \tsize_t par = pos/2;\n        \twhile (pos>1 && heap[par].right < value) {\n        \t\theap[pos].right = heap[par].right;\n        \t\tpos = par;\n        \t\tpar = pos/2;\n        \t}\n        \theap[pos].right = value;\n        \t++size_;\n\n        \tif (size_%2) { // duplicate element in last position if size is odd\n        \t\theap[last_pos].left = heap[last_pos].right;\n        \t}\n        }\n    }\n\n\n    /**\n     * Returns the node of minimum value from the heap\n     * @param value out parameter used to return the min element\n     * @return false if heap empty\n     */\n    bool popMin(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].left;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].left;\n\n        if (size_ % 2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].left = heap[last_pos].right;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child+1].left < heap[child].left) ++child; // pick the child with min\n\n        \tif (!(heap[child].left<elem)) break;\n\n        \theap[crt].left = heap[child].left;\n        \tif (heap[child].right<elem) {\n        \t\tstd::swap(elem, heap[child].right);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].left = elem;\n        return true;\n    }\n\n\n    /**\n     * Returns the element of maximum value from the heap\n     * @param value\n     * @return false if heap empty\n     */\n    bool popMax(T& value)\n    {\n        if (size_ == 0) {\n            return false;\n        }\n\n        value = heap[1].right;\n        size_t last_pos = size_/2 + size_%2;\n        T elem = heap[last_pos].right;\n\n        if (size_%2) { // odd number of elements\n        \t--last_pos;\n        }\n        else {\n        \theap[last_pos].right = heap[last_pos].left;\n        }\n        --size_;\n        if (size_<2) return true;\n\n        size_t crt=1; // root node\n        size_t child = crt*2;\n\n        while (child <= last_pos) {\n        \tif (child < last_pos && heap[child].right < heap[child+1].right) ++child; // pick the child with max\n\n        \tif (!(elem < heap[child].right)) break;\n\n        \theap[crt].right = heap[child].right;\n        \tif (elem<heap[child].left) {\n        \t\tstd::swap(elem, heap[child].left);\n        \t}\n\n        \tcrt = child;\n    \t\tchild *= 2;\n        }\n        heap[crt].right = elem;\n        return true;\n    }\n\n\n    bool getMin(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].left;\n    \treturn true;\n    }\n\n\n    bool getMax(T& value)\n    {\n    \tif (size_==0) {\n    \t\treturn false;\n    \t}\n    \tvalue = heap[1].right;\n    \treturn true;\n    }\n};\n\n\ntemplate <typename T>\nclass BoundedHeap\n{\n\tIntervalHeap<T> interval_heap_;\n\tsize_t capacity_;\npublic:\n\tBoundedHeap(size_t capacity) : interval_heap_(capacity), capacity_(capacity)\n\t{\n\n\t}\n\n    /**\n     * Returns: heap size\n     */\n    int size()\n    {\n        return interval_heap_.size();\n    }\n\n    /**\n     * Tests if the heap is empty\n     * Returns: true is heap empty, false otherwise\n     */\n    bool empty()\n    {\n        return interval_heap_.empty();\n    }\n\n    /**\n     * Clears the heap.\n     */\n    void clear()\n    {\n    \tinterval_heap_.clear();\n    }\n\n    void insert(const T& value)\n    {\n    \tif (interval_heap_.size()==capacity_) {\n    \t\tT max;\n    \t\tinterval_heap_.getMax(max);\n    \t\tif (max<value) return;\n   \t\t\tinterval_heap_.popMax(max);\n    \t}\n    \tinterval_heap_.insert(value);\n    }\n\n    bool popMin(T& value)\n    {\n    \treturn interval_heap_.popMin(value);\n    }\n};\n\n\n\n}\n\n#endif //FLANN_HEAP_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/logger.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_LOGGER_H\n#define FLANN_LOGGER_H\n\n#include <stdio.h>\n#include <stdarg.h>\n\n#include \"flann/defines.h\"\n\n\nnamespace flann\n{\n\nclass Logger\n{\n    Logger() : stream(stdout), logLevel(FLANN_LOG_WARN) {}\n\n    ~Logger()\n    {\n        if ((stream!=NULL)&&(stream!=stdout)) {\n            fclose(stream);\n        }\n    }\n\n    static Logger& instance()\n    {\n        static Logger logger;\n        return logger;\n    }\n\n    void _setDestination(const char* name)\n    {\n        if (name==NULL) {\n            stream = stdout;\n        }\n        else {\n            stream = fopen(name,\"w\");\n            if (stream == NULL) {\n                stream = stdout;\n            }\n        }\n    }\n\n    int _log(int level, const char* fmt, va_list arglist)\n    {\n        if (level > logLevel ) return -1;\n        int ret = vfprintf(stream, fmt, arglist);\n        return ret;\n    }\n\npublic:\n    /**\n     * Sets the logging level. All messages with lower priority will be ignored.\n     * @param level Logging level\n     */\n    static void setLevel(int level) { instance().logLevel = level; }\n\n    /**\n     * Returns the currently set logging level.\n     * @return current logging level\n     */\n    static int getLevel() { return instance().logLevel; }\n\n    /**\n     * Sets the logging destination\n     * @param name Filename or NULL for console\n     */\n    static void setDestination(const char* name) { instance()._setDestination(name); }\n\n    /**\n     * Print log message\n     * @param level Log level\n     * @param fmt Message format\n     * @return\n     */\n    static int log(int level, const char* fmt, ...)\n    {\n        va_list arglist;\n        va_start(arglist, fmt);\n        int ret = instance()._log(level,fmt,arglist);\n        va_end(arglist);\n        return ret;\n    }\n\n#define LOG_METHOD(NAME,LEVEL) \\\n    static int NAME(const char* fmt, ...) \\\n    { \\\n        va_list ap; \\\n        va_start(ap, fmt); \\\n        int ret = instance()._log(LEVEL, fmt, ap); \\\n        va_end(ap); \\\n        return ret; \\\n    }\n\n    LOG_METHOD(fatal, FLANN_LOG_FATAL)\n    LOG_METHOD(error, FLANN_LOG_ERROR)\n    LOG_METHOD(warn, FLANN_LOG_WARN)\n    LOG_METHOD(info, FLANN_LOG_INFO)\n    LOG_METHOD(debug, FLANN_LOG_DEBUG)\n\nprivate:\n    FILE* stream;\n    int logLevel;\n};\n\n}\n\n#endif //FLANN_LOGGER_H\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/lsh_table.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n/***********************************************************************\n * Author: Vincent Rabaud\n *************************************************************************/\n\n#ifndef FLANN_LSH_TABLE_H_\n#define FLANN_LSH_TABLE_H_\n\n#include <algorithm>\n#include <iostream>\n#include <iomanip>\n#include <limits.h>\n// TODO as soon as we use C++0x, use the code in USE_UNORDERED_MAP\n#if USE_UNORDERED_MAP\n#include <unordered_map>\n#else\n#include <map>\n#endif\n#include <math.h>\n#include <stddef.h>\n\n#include \"flann/util/dynamic_bitset.h\"\n#include \"flann/util/matrix.h\"\n\nnamespace flann\n{\n\nnamespace lsh\n{\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** What is stored in an LSH bucket\n */\ntypedef uint32_t FeatureIndex;\n/** The id from which we can get a bucket back in an LSH table\n */\ntypedef unsigned int BucketKey;\n\n/** A bucket in an LSH table\n */\ntypedef std::vector<FeatureIndex> Bucket;\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** POD for stats about an LSH table\n */\nstruct LshStats\n{\n    std::vector<unsigned int> bucket_sizes_;\n    size_t n_buckets_;\n    size_t bucket_size_mean_;\n    size_t bucket_size_median_;\n    size_t bucket_size_min_;\n    size_t bucket_size_max_;\n    size_t bucket_size_std_dev;\n    /** Each contained vector contains three value: beginning/end for interval, number of elements in the bin\n     */\n    std::vector<std::vector<unsigned int> > size_histogram_;\n};\n\n/** Overload the << operator for LshStats\n * @param out the streams\n * @param stats the stats to display\n * @return the streams\n */\ninline std::ostream& operator <<(std::ostream& out, const LshStats& stats)\n{\n    size_t w = 20;\n    out << \"Lsh Table Stats:\\n\" << std::setw(w) << std::setiosflags(std::ios::right) << \"N buckets : \"\n    << stats.n_buckets_ << \"\\n\" << std::setw(w) << std::setiosflags(std::ios::right) << \"mean size : \"\n    << std::setiosflags(std::ios::left) << stats.bucket_size_mean_ << \"\\n\" << std::setw(w)\n    << std::setiosflags(std::ios::right) << \"median size : \" << stats.bucket_size_median_ << \"\\n\" << std::setw(w)\n    << std::setiosflags(std::ios::right) << \"min size : \" << std::setiosflags(std::ios::left)\n    << stats.bucket_size_min_ << \"\\n\" << std::setw(w) << std::setiosflags(std::ios::right) << \"max size : \"\n    << std::setiosflags(std::ios::left) << stats.bucket_size_max_;\n\n    // Display the histogram\n    out << std::endl << std::setw(w) << std::setiosflags(std::ios::right) << \"histogram : \"\n    << std::setiosflags(std::ios::left);\n    for (std::vector<std::vector<unsigned int> >::const_iterator iterator = stats.size_histogram_.begin(), end =\n             stats.size_histogram_.end(); iterator != end; ++iterator) out << (*iterator)[0] << \"-\" << (*iterator)[1] << \": \" << (*iterator)[2] << \",  \";\n\n    return out;\n}\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Lsh hash table. As its key is a sub-feature, and as usually\n * the size of it is pretty small, we keep it as a continuous memory array.\n * The value is an index in the corpus of features (we keep it as an unsigned\n * int for pure memory reasons, it could be a size_t)\n */\ntemplate<typename ElementType>\nclass LshTable\n{\npublic:\n    /** A container of all the feature indices. Optimized for space\n     */\n#if USE_UNORDERED_MAP\n    typedef std::unordered_map<BucketKey, Bucket> BucketsSpace;\n#else\n    typedef std::map<BucketKey, Bucket> BucketsSpace;\n#endif\n\n    /** A container of all the feature indices. Optimized for speed\n     */\n    typedef std::vector<Bucket> BucketsSpeed;\n\n    /** Default constructor\n     */\n    LshTable()\n    {\n    }\n\n    /** Default constructor\n     * Create the mask and allocate the memory\n     * @param feature_size is the size of the feature (considered as a ElementType[])\n     * @param key_size is the number of bits that are turned on in the feature\n     */\n    LshTable(unsigned int /*feature_size*/, unsigned int /*key_size*/)\n    {\n        std::cerr << \"LSH is not implemented for that type\" << std::endl;\n        throw;\n    }\n\n    /** Add a feature to the table\n     * @param value the value to store for that feature\n     * @param feature the feature itself\n     */\n    void add(unsigned int value, const ElementType* feature)\n    {\n        // Add the value to the corresponding bucket\n        BucketKey key = getKey(feature);\n\n        switch (speed_level_) {\n        case kArray:\n            // That means we get the buckets from an array\n            buckets_speed_[key].push_back(value);\n            break;\n        case kBitsetHash:\n            // That means we can check the bitset for the presence of a key\n            key_bitset_.set(key);\n            buckets_space_[key].push_back(value);\n            break;\n        case kHash:\n        {\n            // That means we have to check for the hash table for the presence of a key\n            buckets_space_[key].push_back(value);\n            break;\n        }\n        }\n    }\n\n    /** Add a set of features to the table\n     * @param dataset the values to store\n     */\n    void add(const std::vector< std::pair<size_t, ElementType*> >& features)\n    {\n#if USE_UNORDERED_MAP\n        buckets_space_.rehash((buckets_space_.size() + features.size()) * 1.2);\n#endif\n        // Add the features to the table\n        for (size_t i = 0; i < features.size(); ++i) {\n        \tadd(features[i].first, features[i].second);\n        }\n        // Now that the table is full, optimize it for speed/space\n        optimize();\n    }\n\n    /** Get a bucket given the key\n     * @param key\n     * @return\n     */\n    inline const Bucket* getBucketFromKey(BucketKey key) const\n    {\n        // Generate other buckets\n        switch (speed_level_) {\n        case kArray:\n            // That means we get the buckets from an array\n            return &buckets_speed_[key];\n            break;\n        case kBitsetHash:\n            // That means we can check the bitset for the presence of a key\n            if (key_bitset_.test(key)) return &buckets_space_.find(key)->second;\n            else return 0;\n            break;\n        case kHash:\n        {\n            // That means we have to check for the hash table for the presence of a key\n            BucketsSpace::const_iterator bucket_it, bucket_end = buckets_space_.end();\n            bucket_it = buckets_space_.find(key);\n            // Stop here if that bucket does not exist\n            if (bucket_it == bucket_end) return 0;\n            else return &bucket_it->second;\n            break;\n        }\n        }\n        return 0;\n    }\n\n    /** Compute the sub-signature of a feature\n     */\n    size_t getKey(const ElementType* /*feature*/) const\n    {\n        std::cerr << \"LSH is not implemented for that type\" << std::endl;\n        throw;\n        return 1;\n    }\n\n    /** Get statistics about the table\n     * @return\n     */\n    LshStats getStats() const;\n\nprivate:\n    /** defines the speed fo the implementation\n     * kArray uses a vector for storing data\n     * kBitsetHash uses a hash map but checks for the validity of a key with a bitset\n     * kHash uses a hash map only\n     */\n    enum SpeedLevel\n    {\n        kArray, kBitsetHash, kHash\n    };\n\n    /** Initialize some variables\n     */\n    void initialize(size_t key_size)\n    {\n        speed_level_ = kHash;\n        key_size_ = key_size;\n    }\n\n    /** Optimize the table for speed/space\n     */\n    void optimize()\n    {\n        // If we are already using the fast storage, no need to do anything\n        if (speed_level_ == kArray) return;\n\n        // Use an array if it will be more than half full\n        if (buckets_space_.size() > (unsigned int)((1 << key_size_) / 2)) {\n            speed_level_ = kArray;\n            // Fill the array version of it\n            buckets_speed_.resize(1 << key_size_);\n            for (BucketsSpace::const_iterator key_bucket = buckets_space_.begin(); key_bucket != buckets_space_.end(); ++key_bucket) buckets_speed_[key_bucket->first] = key_bucket->second;\n\n            // Empty the hash table\n            buckets_space_.clear();\n            return;\n        }\n\n        // If the bitset is going to use less than 10% of the RAM of the hash map (at least 1 size_t for the key and two\n        // for the vector) or less than 512MB (key_size_ <= 30)\n        if (((std::max(buckets_space_.size(), buckets_speed_.size()) * CHAR_BIT * 3 * sizeof(BucketKey)) / 10\n             >= size_t(1 << key_size_)) || (key_size_ <= 32)) {\n            speed_level_ = kBitsetHash;\n            key_bitset_.resize(1 << key_size_);\n            key_bitset_.reset();\n            // Try with the BucketsSpace\n            for (BucketsSpace::const_iterator key_bucket = buckets_space_.begin(); key_bucket != buckets_space_.end(); ++key_bucket) key_bitset_.set(key_bucket->first);\n        }\n        else {\n            speed_level_ = kHash;\n            key_bitset_.clear();\n        }\n    }\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tint val;\n    \tif (Archive::is_saving::value) {\n    \t\tval = (int)speed_level_;\n    \t}\n    \tar & val;\n    \tif (Archive::is_loading::value) {\n    \t\tspeed_level_ = (SpeedLevel) val;\n    \t}\n\n    \tar & key_size_;\n    \tar & mask_;\n\n    \tif (speed_level_==kArray) {\n    \t\tar & buckets_speed_;\n    \t}\n    \tif (speed_level_==kBitsetHash || speed_level_==kHash) {\n    \t\tar & buckets_space_;\n    \t}\n\t\tif (speed_level_==kBitsetHash) {\n\t\t\tar & key_bitset_;\n\t\t}\n    }\n    friend struct serialization::access;\n\n    /** The vector of all the buckets if they are held for speed\n     */\n    BucketsSpeed buckets_speed_;\n\n    /** The hash table of all the buckets in case we cannot use the speed version\n     */\n    BucketsSpace buckets_space_;\n\n    /** What is used to store the data */\n    SpeedLevel speed_level_;\n\n    /** If the subkey is small enough, it will keep track of which subkeys are set through that bitset\n     * That is just a speedup so that we don't look in the hash table (which can be mush slower that checking a bitset)\n     */\n    DynamicBitset key_bitset_;\n\n    /** The size of the sub-signature in bits\n     */\n    unsigned int key_size_;\n\n    // Members only used for the unsigned char specialization\n    /** The mask to apply to a feature to get the hash key\n     * Only used in the unsigned char case\n     */\n    std::vector<size_t> mask_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Specialization for unsigned char\n\ntemplate<>\ninline LshTable<unsigned char>::LshTable(unsigned int feature_size, unsigned int subsignature_size)\n{\n    initialize(subsignature_size);\n    // Allocate the mask\n    mask_ = std::vector<size_t>((size_t)ceil((float)(feature_size * sizeof(char)) / (float)sizeof(size_t)), 0);\n\n    // A bit brutal but fast to code\n    std::vector<size_t> indices(feature_size * CHAR_BIT);\n    for (size_t i = 0; i < feature_size * CHAR_BIT; ++i) indices[i] = i;\n    std::random_shuffle(indices.begin(), indices.end());\n\n    // Generate a random set of order of subsignature_size_ bits\n    for (unsigned int i = 0; i < key_size_; ++i) {\n        size_t index = indices[i];\n\n        // Set that bit in the mask\n        size_t divisor = CHAR_BIT * sizeof(size_t);\n        size_t idx = index / divisor; //pick the right size_t index\n        mask_[idx] |= size_t(1) << (index % divisor); //use modulo to find the bit offset\n    }\n\n    // Set to 1 if you want to display the mask for debug\n#if 0\n    {\n        size_t bcount = 0;\n        BOOST_FOREACH(size_t mask_block, mask_){\n            out << std::setw(sizeof(size_t) * CHAR_BIT / 4) << std::setfill('0') << std::hex << mask_block\n                << std::endl;\n            bcount += __builtin_popcountll(mask_block);\n        }\n        out << \"bit count : \" << std::dec << bcount << std::endl;\n        out << \"mask size : \" << mask_.size() << std::endl;\n        return out;\n    }\n#endif\n}\n\n/** Return the Subsignature of a feature\n * @param feature the feature to analyze\n */\ntemplate<>\ninline size_t LshTable<unsigned char>::getKey(const unsigned char* feature) const\n{\n    // no need to check if T is dividable by sizeof(size_t) like in the Hamming\n    // distance computation as we have a mask\n    const size_t* feature_block_ptr = reinterpret_cast<const size_t*> (feature);\n\n    // Figure out the subsignature of the feature\n    // Given the feature ABCDEF, and the mask 001011, the output will be\n    // 000CEF\n    size_t subsignature = 0;\n    size_t bit_index = 1;\n\n    for (std::vector<size_t>::const_iterator pmask_block = mask_.begin(); pmask_block != mask_.end(); ++pmask_block) {\n        // get the mask and signature blocks\n        size_t feature_block = *feature_block_ptr;\n        size_t mask_block = *pmask_block;\n        while (mask_block) {\n            // Get the lowest set bit in the mask block\n            size_t lowest_bit = mask_block & (-(ptrdiff_t)mask_block);\n            // Add it to the current subsignature if necessary\n            subsignature += (feature_block & lowest_bit) ? bit_index : 0;\n            // Reset the bit in the mask block\n            mask_block ^= lowest_bit;\n            // increment the bit index for the subsignature\n            bit_index <<= 1;\n        }\n        // Check the next feature block\n        ++feature_block_ptr;\n    }\n    return subsignature;\n}\n\ntemplate<>\ninline LshStats LshTable<unsigned char>::getStats() const\n{\n    LshStats stats;\n    stats.bucket_size_mean_ = 0;\n    if ((buckets_speed_.empty()) && (buckets_space_.empty())) {\n        stats.n_buckets_ = 0;\n        stats.bucket_size_median_ = 0;\n        stats.bucket_size_min_ = 0;\n        stats.bucket_size_max_ = 0;\n        return stats;\n    }\n\n    if (!buckets_speed_.empty()) {\n        for (BucketsSpeed::const_iterator pbucket = buckets_speed_.begin(); pbucket != buckets_speed_.end(); ++pbucket) {\n            stats.bucket_sizes_.push_back(pbucket->size());\n            stats.bucket_size_mean_ += pbucket->size();\n        }\n        stats.bucket_size_mean_ /= buckets_speed_.size();\n        stats.n_buckets_ = buckets_speed_.size();\n    }\n    else {\n        for (BucketsSpace::const_iterator x = buckets_space_.begin(); x != buckets_space_.end(); ++x) {\n            stats.bucket_sizes_.push_back(x->second.size());\n            stats.bucket_size_mean_ += x->second.size();\n        }\n        stats.bucket_size_mean_ /= buckets_space_.size();\n        stats.n_buckets_ = buckets_space_.size();\n    }\n\n    std::sort(stats.bucket_sizes_.begin(), stats.bucket_sizes_.end());\n\n    //  BOOST_FOREACH(int size, stats.bucket_sizes_)\n    //          std::cout << size << \" \";\n    //  std::cout << std::endl;\n    stats.bucket_size_median_ = stats.bucket_sizes_[stats.bucket_sizes_.size() / 2];\n    stats.bucket_size_min_ = stats.bucket_sizes_.front();\n    stats.bucket_size_max_ = stats.bucket_sizes_.back();\n\n    // TODO compute mean and std\n    /*float mean, stddev;\n       stats.bucket_size_mean_ = mean;\n       stats.bucket_size_std_dev = stddev;*/\n\n    // Include a histogram of the buckets\n    unsigned int bin_start = 0;\n    unsigned int bin_end = 20;\n    bool is_new_bin = true;\n    for (std::vector<unsigned int>::iterator iterator = stats.bucket_sizes_.begin(), end = stats.bucket_sizes_.end(); iterator\n         != end; )\n        if (*iterator < bin_end) {\n            if (is_new_bin) {\n                stats.size_histogram_.push_back(std::vector<unsigned int>(3, 0));\n                stats.size_histogram_.back()[0] = bin_start;\n                stats.size_histogram_.back()[1] = bin_end - 1;\n                is_new_bin = false;\n            }\n            ++stats.size_histogram_.back()[2];\n            ++iterator;\n        }\n        else {\n            bin_start += 20;\n            bin_end += 20;\n            is_new_bin = true;\n        }\n\n    return stats;\n}\n\n// End the two namespaces\n}\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#endif /* FLANN_LSH_TABLE_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/matrix.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_DATASET_H_\n#define FLANN_DATASET_H_\n\n#include \"flann/general.h\"\n#include \"flann/util/serialization.h\"\n#include <stdio.h>\n\nnamespace flann\n{\n\ntypedef unsigned char uchar;\n\nclass Matrix_\n{\npublic:\n\n\tMatrix_() : rows(0), cols(0), stride(0), type(FLANN_NONE), data(NULL)\n\t{\n\t};\n\n    Matrix_(void* data_, size_t rows_, size_t cols_, flann_datatype_t type_, size_t stride_ = 0) :\n        rows(rows_), cols(cols_), stride(stride_), type(type_)\n    {\n    \tdata = static_cast<uchar*>(data_);\n\n    \tif (stride==0) stride = flann_datatype_size(type)*cols;\n    }\n\n    /**\n     * Operator that returns a (pointer to a) row of the data.\n     */\n    inline void* operator[](size_t index) const\n    {\n        return data+index*stride;\n    }\n\n    void* ptr() const\n    {\n        return data;\n    }\n\n    size_t rows;\n    size_t cols;\n    size_t stride;\n    flann_datatype_t type;\nprotected:\n    uchar* data;\n\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar & rows;\n    \tar & cols;\n    \tar & stride;\n    \tar & type;\n    \tif (Archive::is_loading::value) {\n    \t\tdata = new uchar[rows*stride];\n    \t}\n    \tar & serialization::make_binary_object(data, rows*stride);\n    }\n    friend struct serialization::access;\n};\n\n\n/**\n * Class that implements a simple rectangular matrix stored in a memory buffer and\n * provides convenient matrix-like access using the [] operators.\n *\n * This class has the same memory structure as the un-templated class flann::Matrix_ and\n * it's directly convertible from it.\n */\ntemplate <typename T>\nclass Matrix : public Matrix_\n{\npublic:\n    typedef T type;\n\n    Matrix() : Matrix_()\n    {\n    }\n\n    Matrix(T* data_, size_t rows_, size_t cols_, size_t stride_ = 0) :\n    \tMatrix_(data_, rows_, cols_, flann_datatype_value<T>::value, stride_)\n    {\n    \tif (stride==0) stride = sizeof(T)*cols;\n    }\n\n    /**\n     * Operator that returns a (pointer to a) row of the data.\n     */\n    inline T* operator[](size_t index) const\n    {\n    \treturn reinterpret_cast<T*>(data+index*stride);\n    }\n\n\n    T* ptr() const\n    {\n    \treturn reinterpret_cast<T*>(data);\n    }\n};\n\n}\n\n#endif //FLANN_DATASET_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/object_factory.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_OBJECT_FACTORY_H_\n#define FLANN_OBJECT_FACTORY_H_\n\n#include <map>\n\nnamespace flann\n{\n\nclass CreatorNotFound\n{\n};\n\ntemplate<typename BaseClass,\n         typename UniqueIdType,\n         typename ObjectCreator = BaseClass* (*)()>\nclass ObjectFactory\n{\n    typedef ObjectFactory<BaseClass,UniqueIdType,ObjectCreator> ThisClass;\n    typedef std::map<UniqueIdType, ObjectCreator> ObjectRegistry;\n\n    // singleton class, private constructor\n    ObjectFactory() {}\n\npublic:\n\n    bool subscribe(UniqueIdType id, ObjectCreator creator)\n    {\n        if (object_registry.find(id) != object_registry.end()) return false;\n\n        object_registry[id] = creator;\n        return true;\n    }\n\n    bool unregister(UniqueIdType id)\n    {\n        return object_registry.erase(id) == 1;\n    }\n\n    ObjectCreator create(UniqueIdType id)\n    {\n        typename ObjectRegistry::const_iterator iter = object_registry.find(id);\n\n        if (iter == object_registry.end()) {\n            throw CreatorNotFound();\n        }\n\n        return iter->second;\n    }\n\n    static ThisClass& instance()\n    {\n        static ThisClass the_factory;\n        return the_factory;\n    }\nprivate:\n    ObjectRegistry object_registry;\n};\n\n}\n\n#endif /* FLANN_OBJECT_FACTORY_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/params.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2011  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2011  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_PARAMS_H_\n#define FLANN_PARAMS_H_\n\n#include \"any.h\"\n#include \"flann/general.h\"\n#include <iostream>\n#include <map>\n\n\nnamespace flann\n{\n\nnamespace anyimpl\n{\nSMALL_POLICY(flann_algorithm_t);\nSMALL_POLICY(flann_centers_init_t);\nSMALL_POLICY(flann_log_level_t);\nSMALL_POLICY(flann_datatype_t);\n}\n\n\ntypedef std::map<std::string, any> IndexParams;\n\n\ntypedef enum {\n\tFLANN_False = 0,\n\tFLANN_True = 1,\n\tFLANN_Undefined\n} tri_type;\n\n\nstruct SearchParams\n{\n    SearchParams(int checks_ = 32, float eps_ = 0.0, bool sorted_ = true ) :\n    \tchecks(checks_), eps(eps_), sorted(sorted_)\n    {\n    \tmax_neighbors = -1;\n    \tuse_heap = FLANN_Undefined;\n    \tcores = 1;\n    \tmatrices_in_gpu_ram = false;\n    }\n\n    // how many leafs to visit when searching for neighbours (-1 for unlimited)\n    int checks;\n    // search for eps-approximate neighbours (default: 0)\n    float eps;\n    // only for radius search, require neighbours sorted by distance (default: true)\n    bool sorted;\n    // maximum number of neighbors radius search should return (-1 for unlimited)\n    int max_neighbors;\n    // use a heap to manage the result set (default: FLANN_Undefined)\n    tri_type use_heap;\n    // how many cores to assign to the search (used only if compiled with OpenMP capable compiler) (0 for auto)\n    int cores;\n    // for GPU search indicates if matrices are already in GPU ram\n    bool matrices_in_gpu_ram;\n};\n\n\ninline bool has_param(const IndexParams& params, std::string name)\n{\n\treturn params.find(name)!=params.end();\n}\n\ntemplate<typename T>\nT get_param(const IndexParams& params, std::string name, const T& default_value)\n{\n    IndexParams::const_iterator it = params.find(name);\n    if (it != params.end()) {\n        return it->second.cast<T>();\n    }\n    else {\n        return default_value;\n    }\n}\n\ntemplate<typename T>\nT get_param(const IndexParams& params, std::string name)\n{\n    IndexParams::const_iterator it = params.find(name);\n    if (it != params.end()) {\n        return it->second.cast<T>();\n    }\n    else {\n        throw FLANNException(std::string(\"Missing parameter '\")+name+std::string(\"' in the parameters given\"));\n    }\n}\n\ninline void print_params(const IndexParams& params)\n{\n    IndexParams::const_iterator it;\n\n    for(it=params.begin(); it!=params.end(); ++it) {\n        std::cout << it->first << \" : \" << it->second << std::endl;\n    }\n}\n\ninline void print_params(const SearchParams& params)\n{\n\tstd::cout << \"checks : \" << params.checks << std::endl;\n\tstd::cout << \"eps : \" << params.eps << std::endl;\n\tstd::cout << \"sorted : \" << params.sorted << std::endl;\n\tstd::cout << \"max_neighbors : \" << params.max_neighbors << std::endl;\n}\n\n\n}\n\n\n#endif /* FLANN_PARAMS_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/random.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_RANDOM_H\n#define FLANN_RANDOM_H\n\n#include <algorithm>\n#include <cstdlib>\n#include <cstddef>\n#include <vector>\n\n#include \"flann/general.h\"\n\nnamespace flann\n{\n\n/**\n * Seeds the random number generator\n *  @param seed Random seed\n */\ninline void seed_random(unsigned int seed)\n{\n    srand(seed + rand()) ;\n}\n\n/*\n * Generates a random double value.\n */\n/**\n * Generates a random double value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random double value\n */\ninline double rand_double(double high = 1.0, double low = 0)\n{\n    return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n/**\n * Generates a random integer value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random integer value\n */\ninline int rand_int(int high = RAND_MAX, int low = 0)\n{\n\t//srand((unsigned int)time(NULL));\n    return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n\nclass RandomGenerator\n{\npublic:\n    ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }\n};\n\n\n/**\n * Random number generator that returns a distinct number from\n * the [0,n) interval each time.\n */\nclass UniqueRandom\n{\n    std::vector<int> vals_;\n    int size_;\n    int counter_;\n\npublic:\n    /**\n     * Constructor.\n     * @param n Size of the interval from which to generate\n     * @return\n     */\n    UniqueRandom(int n)\n    {\n        init(n);\n    }\n\n    /**\n     * Initializes the number generator.\n     * @param n the size of the interval from which to generate random numbers.\n     */\n    void init(int n)\n    {\n        static RandomGenerator generator;\n        // create and initialize an array of size n\n        vals_.resize(n);\n        size_ = n;\n        for (int i = 0; i < size_; ++i) vals_[i] = i;\n\n        // shuffle the elements in the array\n        std::random_shuffle(vals_.begin(), vals_.end(), generator);\n\n        counter_ = 0;\n    }\n\n    /**\n     * Return a distinct random integer in greater or equal to 0 and less\n     * than 'n' on each call. It should be called maximum 'n' times.\n     * Returns: a random integer\n     */\n    int next()\n    {\n        if (counter_ == size_) {\n            return -1;\n        }\n        else {\n            return vals_[counter_++];\n        }\n    }\n};\n\n}\n\n#endif //FLANN_RANDOM_H\n\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/random.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_RANDOM_H\n#define FLANN_RANDOM_H\n\n#include <algorithm>\n#include <cstdlib>\n#include <cstddef>\n#include <vector>\n\n#include \"flann/general.h\"\n\nnamespace flann\n{\n\n/**\n * Seeds the random number generator\n *  @param seed Random seed\n */\ninline void seed_random(unsigned int seed)\n{\n    srand(seed + rand()) ;\n}\n\n/*\n * Generates a random double value.\n */\n/**\n * Generates a random double value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random double value\n */\ninline double rand_double(double high = 1.0, double low = 0)\n{\n    return low + ((high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n/**\n * Generates a random integer value.\n * @param high Upper limit\n * @param low Lower limit\n * @return Random integer value\n */\ninline int rand_int(int high = RAND_MAX, int low = 0)\n{\n\tsrand((unsigned int)time(NULL));\n    return low + (int) ( double(high-low) * (std::rand() / (RAND_MAX + 1.0)));\n}\n\n\nclass RandomGenerator\n{\npublic:\n    ptrdiff_t operator() (ptrdiff_t i) { return rand_int(i); }\n};\n\n\n/**\n * Random number generator that returns a distinct number from\n * the [0,n) interval each time.\n */\nclass UniqueRandom\n{\n    std::vector<int> vals_;\n    int size_;\n    int counter_;\n\npublic:\n    /**\n     * Constructor.\n     * @param n Size of the interval from which to generate\n     * @return\n     */\n    UniqueRandom(int n)\n    {\n        init(n);\n    }\n\n    /**\n     * Initializes the number generator.\n     * @param n the size of the interval from which to generate random numbers.\n     */\n    void init(int n)\n    {\n        static RandomGenerator generator;\n        // create and initialize an array of size n\n        vals_.resize(n);\n        size_ = n;\n        for (int i = 0; i < size_; ++i) vals_[i] = i;\n\n        // shuffle the elements in the array\n        std::random_shuffle(vals_.begin(), vals_.end(), generator);\n\n        counter_ = 0;\n    }\n\n    /**\n     * Return a distinct random integer in greater or equal to 0 and less\n     * than 'n' on each call. It should be called maximum 'n' times.\n     * Returns: a random integer\n     */\n    int next()\n    {\n        if (counter_ == size_) {\n            return -1;\n        }\n        else {\n            return vals_[counter_++];\n        }\n    }\n};\n\n}\n\n#endif //FLANN_RANDOM_H\n\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/result_set.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_RESULTSET_H\n#define FLANN_RESULTSET_H\n\n#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\nnamespace flann\n{\n\n/* This record represents a branch point when finding neighbors in\n    the tree.  It contains a record of the minimum distance to the query\n    point, as well as the node at which the search resumes.\n */\n\ntemplate <typename T, typename DistanceType>\nstruct BranchStruct\n{\n    T node;           /* Tree node at which search resumes */\n    DistanceType mindist;     /* Minimum distance to query for all nodes below. */\n\n    BranchStruct() {}\n    BranchStruct(const T& aNode, DistanceType dist) : node(aNode), mindist(dist) {}\n\n    bool operator<(const BranchStruct<T, DistanceType>& rhs) const\n    {\n        return mindist<rhs.mindist;\n    }\n};\n\n\ntemplate <typename DistanceType>\nstruct DistanceIndex\n{\n    DistanceIndex(DistanceType dist, size_t index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    DistanceType dist_;\n    size_t index_;\n};\n\n\ntemplate <typename DistanceType>\nclass ResultSet\n{\npublic:\n    virtual ~ResultSet() {}\n\n    virtual bool full() const = 0;\n\n    virtual void addPoint(DistanceType dist, size_t index) = 0;\n\n    virtual DistanceType worstDist() const = 0;\n\n};\n\n/**\n * KNNSimpleResultSet does not ensure that the element it holds are unique.\n * Is used in those cases where the nearest neighbour algorithm used does not\n * attempt to insert the same element multiple times.\n */\ntemplate <typename DistanceType>\nclass KNNSimpleResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNSimpleResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNSimpleResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return count_;\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return count_==capacity_;\n    }\n\n    /**\n     * Add a point to result set\n     * @param dist distance to point\n     * @param index index of point\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist>=worst_distance_) return;\n\n        if (count_ < capacity_) ++count_;\n        size_t i;\n        for (i=count_-1; i>0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_>dist) || ((dist==dist_index_[i-1].dist_)&&(dist_index_[i-1].index_>index)) )\n#else\n            if (dist_index_[i-1].dist_>dist)\n#endif\n            {\n            \tdist_index_[i] = dist_index_[i-1];\n            }\n            else break;\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n};\n\n/**\n * K-Nearest neighbour result set. Ensures that the elements inserted are unique\n */\ntemplate <typename DistanceType>\nclass KNNResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n    KNNResultSet(int capacity) : capacity_(capacity)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNResultSet()\n    {\n\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    size_t size() const\n    {\n        return count_;\n    }\n\n    bool full() const\n    {\n        return count_ == capacity_;\n    }\n\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist >= worst_distance_) return;\n        size_t i;\n        for (i = count_; i > 0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_<=dist) && ((dist!=dist_index_[i-1].dist_)||(dist_index_[i-1].index_<=index)) )\n#else\n            if (dist_index_[i-1].dist_<=dist)\n#endif\n            {\n                // Check for duplicate indices\n                size_t j = i - 1;\n                while (dist_index_[j].dist_ == dist) {\n                    if (dist_index_[j].index_ == index) {\n                        return;\n                    }\n                    --j;\n                }\n                break;\n            }\n        }\n        if (count_ < capacity_) ++count_;\n        for (size_t j = count_-1; j > i; --j) {\n            dist_index_[j] = dist_index_[j-1];\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n\n};\n\n\n\ntemplate <typename DistanceType>\nclass KNNResultSet2 : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNResultSet2(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNResultSet2()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n    bool is_full_;\n};\n\n\n/**\n * Unbounded radius result set. It will hold as many elements as\n * are added to it.\n */\ntemplate <typename DistanceType>\nclass RadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tRadiusResultSet(DistanceType radius_) :\n        radius_(radius_)\n    {\n\t\t// reserving some memory to limit number of re-allocations\n\t\tdist_index_.reserve(1024);\n    \tclear();\n    }\n\n    ~RadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist<radius_) {\n    \t\t// add new element\n    \t\tdist_index_.push_back(DistIndex(dist,index));\n    \t}\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn radius_;\n    }\n\nprivate:\n    DistanceType radius_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n\n/**\n * Bounded radius result set. It limits the number of elements\n * it can hold to a preset capacity.\n */\ntemplate <typename DistanceType>\nclass KNNRadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNRadiusResultSet(DistanceType radius_, size_t capacity_) :\n        radius_(radius_), capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNRadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = radius_;\n        is_heap_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set is filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_heap_) {\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// when got to full capacity, make it a heap\n    \t\tif (!is_heap_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n    \t\t\tis_heap_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    bool is_heap_;\n    DistanceType radius_;\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n/**\n * This is a result set that only counts the neighbors within a radius.\n */\n\ntemplate <typename DistanceType>\nclass CountRadiusResultSet : public ResultSet<DistanceType>\n{\n    DistanceType radius;\n    size_t count;\n\npublic:\n    CountRadiusResultSet(DistanceType radius_ ) :\n        radius(radius_)\n    {\n        clear();\n    }\n\n    ~CountRadiusResultSet()\n    {\n    }\n\n    void clear()\n    {\n        count = 0;\n    }\n\n    size_t size() const\n    {\n        return count;\n    }\n\n    bool full() const\n    {\n        return true;\n    }\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist<radius) {\n            count++;\n        }\n    }\n\n    DistanceType worstDist() const\n    {\n        return radius;\n    }\n\n};\n\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n */\ntemplate<typename DistanceType>\nclass UniqueResultSet : public ResultSet<DistanceType>\n{\npublic:\n    struct DistIndex\n    {\n        DistIndex(DistanceType dist, unsigned int index) :\n            dist_(dist), index_(index)\n        {\n        }\n        bool operator<(const DistIndex dist_index) const\n        {\n            return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n        }\n        DistanceType dist_;\n        unsigned int index_;\n    };\n\n    /** Default cosntructor */\n    UniqueResultSet() :\n        worst_distance_(std::numeric_limits<DistanceType>::max())\n    {\n    }\n\n    /** Check the status of the set\n     * @return true if we have k NN\n     */\n    inline bool full() const\n    {\n        return is_full_;\n    }\n\n    /** Copy the set to two C arrays\n     * @param indices pointer to a C array of indices\n     * @param dist pointer to a C array of distances\n     * @param n_neighbors the number of neighbors to copy\n     */\n    void copy(size_t* indices, DistanceType* dist, int n_neighbors, bool sorted = true)\n    {\n    \tif (n_neighbors<0) n_neighbors = dist_indices_.size();\n    \tint i = 0;\n    \ttypedef typename std::set<DistIndex>::const_iterator Iterator;\n    \tfor (Iterator dist_index = dist_indices_.begin(), dist_index_end =\n    \t\t\tdist_indices_.end(); (dist_index != dist_index_end) && (i < n_neighbors); ++dist_index, ++indices, ++dist, ++i) {\n    \t\t*indices = dist_index->index_;\n    \t\t*dist = dist_index->dist_;\n    \t}\n    }\n\n    /** The number of neighbors in the set\n     * @return\n     */\n    size_t size() const\n    {\n        return dist_indices_.size();\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\nprotected:\n    /** Flag to say if the set is full */\n    bool is_full_;\n\n    /** The worst distance found so far */\n    DistanceType worst_distance_;\n\n    /** The best candidates so far */\n    std::set<DistIndex> dist_indices_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n * Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays\n */\ntemplate<typename DistanceType>\nclass KNNUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNUniqueResultSet(unsigned int capacity) : capacity_(capacity)\n    {\n        this->is_full_ = false;\n        this->clear();\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    inline void addPoint(DistanceType dist, size_t index)\n    {\n        // Don't do anything if we are worse than the worst\n        if (dist >= worst_distance_) return;\n        dist_indices_.insert(DistIndex(dist, index));\n\n        if (is_full_) {\n            if (dist_indices_.size() > capacity_) {\n                dist_indices_.erase(*dist_indices_.rbegin());\n                worst_distance_ = dist_indices_.rbegin()->dist_;\n            }\n        }\n        else if (dist_indices_.size() == capacity_) {\n            is_full_ = true;\n            worst_distance_ = dist_indices_.rbegin()->dist_;\n        }\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\nprotected:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::is_full_;\n    using UniqueResultSet<DistanceType>::worst_distance_;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n\n    /** The number of neighbors to keep */\n    unsigned int capacity_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the radius nearest neighbors\n * It is more accurate than RadiusResult as it is not limited in the number of neighbors\n */\ntemplate<typename DistanceType>\nclass RadiusUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    RadiusUniqueResultSet(DistanceType radius) :\n        radius_(radius)\n    {\n        is_full_ = true;\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist < radius_) dist_indices_.insert(DistIndex(dist, index));\n    }\n\n    /** Remove all elements in the set\n     */\n    inline void clear()\n    {\n        dist_indices_.clear();\n    }\n\n\n    /** Check the status of the set\n     * @return alwys false\n     */\n    inline bool full() const\n    {\n        return true;\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return radius_;\n    }\nprivate:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n    using UniqueResultSet<DistanceType>::is_full_;\n\n    /** The furthest distance a neighbor can be */\n    DistanceType radius_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors within a radius distance\n */\ntemplate<typename DistanceType>\nclass KNNRadiusUniqueResultSet : public KNNUniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNRadiusUniqueResultSet(DistanceType radius, size_t capacity) : KNNUniqueResultSet<DistanceType>(capacity)\n    {\n        this->radius_ = radius;\n        this->clear();\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = radius_;\n        is_full_ = true;\n    }\nprivate:\n    using KNNUniqueResultSet<DistanceType>::dist_indices_;\n    using KNNUniqueResultSet<DistanceType>::is_full_;\n    using KNNUniqueResultSet<DistanceType>::worst_distance_;\n\n    /** The maximum distance of a neighbor */\n    DistanceType radius_;\n};\n}\n\n#endif //FLANN_RESULTSET_H\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/result_set.h~",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_RESULTSET_H\n#define FLANN_RESULTSET_H\n\n#include <algorithm>\n#include <cstring>\n#include <iostream>\n#include <limits>\n#include <set>\n#include <vector>\n\n\nnamespace flann\n{\n\n/* This record represents a branch point when finding neighbors in\n    the tree.  It contains a record of the minimum distance to the query\n    point, as well as the node at which the search resumes.\n */\n\ntemplate <typename T, typename DistanceType>\nstruct BranchStruct\n{\n    T node;           /* Tree node at which search resumes */\n    DistanceType mindist;     /* Minimum distance to query for all nodes below. */\n\n    BranchStruct() {}\n    BranchStruct(const T& aNode, DistanceType dist) : node(aNode), mindist(dist) {}\n\n    bool operator<(const BranchStruct<T, DistanceType>& rhs) const\n    {\n        return mindist<rhs.mindist;\n    }\n};\n\n\ntemplate <typename DistanceType>\nstruct DistanceIndex\n{\n    DistanceIndex(DistanceType dist, size_t index) :\n        dist_(dist), index_(index)\n    {\n    }\n    bool operator<(const DistanceIndex& dist_index) const\n    {\n        return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n    }\n    DistanceType dist_;\n    size_t index_;\n};\n\n\ntemplate <typename DistanceType>\nclass ResultSet\n{\npublic:\n    virtual ~ResultSet() {}\n\n    virtual bool full() const = 0;\n\n    virtual void addPoint(DistanceType dist, size_t index) = 0;\n\n    virtual DistanceType worstDist() const = 0;\n\n};\n\n/**\n * KNNSimpleResultSet does not ensure that the element it holds are unique.\n * Is used in those cases where the nearest neighbour algorithm used does not\n * attempt to insert the same element multiple times.\n */\ntemplate <typename DistanceType>\nclass KNNSimpleResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNSimpleResultSet(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\tstd::cout<<\"SimpleResultSet\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNSimpleResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return count_;\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return count_==capacity_;\n    }\n    /**\n     * Add a point to result set\n     * @param dist distance to point\n     * @param index index of point\n     */\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\t//if(count_ >= capacity_) return;\n\t\tdist_index_[count_].dist_ = dist;\n        dist_index_[count_].index_ = index;\n\t\tcount_++;\n/*\n    \tif (dist>=worst_distance_) return;\n\n        if (count_ < capacity_) ++count_;\n        size_t i;\n        for (i=count_-1; i>0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_>dist) || ((dist==dist_index_[i-1].dist_)&&(dist_index_[i-1].index_>index)) )\n#else\n            if (dist_index_[i-1].dist_>dist)\n#endif\n            {\n            \tdist_index_[i] = dist_index_[i-1];\n            }\n            else break;\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n};\n\n/**\n * K-Nearest neighbour result set. Ensures that the elements inserted are unique\n */\ntemplate <typename DistanceType>\nclass KNNResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n    KNNResultSet(int capacity) : capacity_(capacity)\n    {\n\t\tstd::cout<<\"KNNResultSet\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));\n    \tclear();\n    }\n\n    ~KNNResultSet()\n    {\n\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        dist_index_[capacity_-1].dist_ = worst_distance_;\n        count_ = 0;\n    }\n\n    size_t size() const\n    {\n        return count_;\n    }\n\n    bool full() const\n    {\n        return count_ == capacity_;\n    }\n\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\t//if(count_ >= capacity_) return;\n\t\tdist_index_[count_].dist_ = dist;\n        dist_index_[count_].index_ = index;\n\t\tcount_++;\n\t\t/*\n        if (dist >= worst_distance_) return;\n        size_t i;\n        for (i = count_; i > 0; --i) {\n#ifdef FLANN_FIRST_MATCH\n            if ( (dist_index_[i-1].dist_<=dist) && ((dist!=dist_index_[i-1].dist_)||(dist_index_[i-1].index_<=index)) )\n#else\n            if (dist_index_[i-1].dist_<=dist)\n#endif\n            {\n                // Check for duplicate indices\n                size_t j = i - 1;\n                while (dist_index_[j].dist_ == dist) {\n                    if (dist_index_[j].index_ == index) {\n                        return;\n                    }\n                    --j;\n                }\n                break;\n            }\n        }\n        if (count_ < capacity_) ++count_;\n        for (size_t j = count_-1; j > i; --j) {\n            dist_index_[j] = dist_index_[j-1];\n        }\n        dist_index_[i].dist_ = dist;\n        dist_index_[i].index_ = index;\n        worst_distance_ = dist_index_[capacity_-1].dist_;*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tsize_t n = std::min(count_, num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\n\nprivate:\n    size_t capacity_;\n    size_t count_;\n    DistanceType worst_distance_;\n    std::vector<DistIndex> dist_index_;\n\n};\n\n\n\ntemplate <typename DistanceType>\nclass KNNResultSet2 : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNResultSet2(size_t capacity_) :\n        capacity_(capacity_)\n    {\n\t\tstd::cout<<\"KNNResultSet222\"<<std::endl;\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNResultSet2()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return is_full_;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n\t\t//if(dist_index_.size() >= capacity_) return;\n\t\tdist_index_.push_back(DistIndex(dist,index));\n\t\t/*\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set if filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_full_) { // when is_full_==true, we have a heap\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\tif (!is_full_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n            \tis_full_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }*/\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = false)//true\n    {/*\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}*/\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n    bool is_full_;\n};\n\n\n/**\n * Unbounded radius result set. It will hold as many elements as\n * are added to it.\n */\ntemplate <typename DistanceType>\nclass RadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tRadiusResultSet(DistanceType radius_) :\n        radius_(radius_)\n    {\n\t\t// reserving some memory to limit number of re-allocations\n\t\tdist_index_.reserve(1024);\n    \tclear();\n    }\n\n    ~RadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist<radius_) {\n    \t\t// add new element\n    \t\tdist_index_.push_back(DistIndex(dist,index));\n    \t}\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {/*\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}*/\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn radius_;\n    }\n\nprivate:\n    DistanceType radius_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n\n/**\n * Bounded radius result set. It limits the number of elements\n * it can hold to a preset capacity.\n */\ntemplate <typename DistanceType>\nclass KNNRadiusResultSet : public ResultSet<DistanceType>\n{\npublic:\n\ttypedef DistanceIndex<DistanceType> DistIndex;\n\n\tKNNRadiusResultSet(DistanceType radius_, size_t capacity_) :\n        radius_(radius_), capacity_(capacity_)\n    {\n\t\t// reserving capacity to prevent memory re-allocations\n\t\tdist_index_.reserve(capacity_);\n    \tclear();\n    }\n\n    ~KNNRadiusResultSet()\n    {\n    }\n\n    /**\n     * Clears the result set\n     */\n    void clear()\n    {\n        dist_index_.clear();\n        worst_dist_ = radius_;\n        is_heap_ = false;\n    }\n\n    /**\n     *\n     * @return Number of elements in the result set\n     */\n    size_t size() const\n    {\n        return dist_index_.size();\n    }\n\n    /**\n     * Radius search result set always reports full\n     * @return\n     */\n    bool full() const\n    {\n        return true;\n    }\n\n    /**\n     * Add another point to result set\n     * @param dist distance to point\n     * @param index index of point\n     * Pre-conditions: capacity_>0\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n    \tif (dist>=worst_dist_) return;\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// if result set is filled to capacity, remove farthest element\n    \t\tstd::pop_heap(dist_index_.begin(), dist_index_.end());\n        \tdist_index_.pop_back();\n    \t}\n\n    \t// add new element\n    \tdist_index_.push_back(DistIndex(dist,index));\n    \tif (is_heap_) {\n    \t\tstd::push_heap(dist_index_.begin(), dist_index_.end());\n    \t}\n\n    \tif (dist_index_.size()==capacity_) {\n    \t\t// when got to full capacity, make it a heap\n    \t\tif (!is_heap_) {\n    \t\t\tstd::make_heap(dist_index_.begin(), dist_index_.end());\n    \t\t\tis_heap_ = true;\n    \t\t}\n    \t\t// we replaced the farthest element, update worst distance\n        \tworst_dist_ = dist_index_[0].dist_;\n        }\n    }\n\n    /**\n     * Copy indices and distances to output buffers\n     * @param indices\n     * @param dists\n     * @param num_elements Number of elements to copy\n     * @param sorted Indicates if results should be sorted\n     */\n    void copy(size_t* indices, DistanceType* dists, size_t num_elements, bool sorted = true)\n    {\n    \tif (sorted) {\n    \t\t// std::sort_heap(dist_index_.begin(), dist_index_.end());\n    \t\t// sort seems faster here, even though dist_index_ is a heap\n    \t\tstd::sort(dist_index_.begin(), dist_index_.end());\n    \t}\n    \telse {\n    \t\tif (num_elements<size()) {\n    \t\t\tstd::nth_element(dist_index_.begin(), dist_index_.begin()+num_elements, dist_index_.end());\n    \t\t}\n    \t}\n\n    \tsize_t n = std::min(dist_index_.size(), num_elements);\n    \tfor (size_t i=0; i<n; ++i) {\n    \t\t*indices++ = dist_index_[i].index_;\n    \t\t*dists++ = dist_index_[i].dist_;\n    \t}\n    }\n\n    DistanceType worstDist() const\n    {\n    \treturn worst_dist_;\n    }\n\nprivate:\n    bool is_heap_;\n    DistanceType radius_;\n    size_t capacity_;\n    DistanceType worst_dist_;\n    std::vector<DistIndex> dist_index_;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n/**\n * This is a result set that only counts the neighbors within a radius.\n */\n\ntemplate <typename DistanceType>\nclass CountRadiusResultSet : public ResultSet<DistanceType>\n{\n    DistanceType radius;\n    size_t count;\n\npublic:\n    CountRadiusResultSet(DistanceType radius_ ) :\n        radius(radius_)\n    {\n        clear();\n    }\n\n    ~CountRadiusResultSet()\n    {\n    }\n\n    void clear()\n    {\n        count = 0;\n    }\n\n    size_t size() const\n    {\n        return count;\n    }\n\n    bool full() const\n    {\n        return true;\n    }\n\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist<radius) {\n            count++;\n        }\n    }\n\n    DistanceType worstDist() const\n    {\n        return radius;\n    }\n\n};\n\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n */\ntemplate<typename DistanceType>\nclass UniqueResultSet : public ResultSet<DistanceType>\n{\npublic:\n    struct DistIndex\n    {\n        DistIndex(DistanceType dist, unsigned int index) :\n            dist_(dist), index_(index)\n        {\n        }\n        bool operator<(const DistIndex dist_index) const\n        {\n            return (dist_ < dist_index.dist_) || ((dist_ == dist_index.dist_) && index_ < dist_index.index_);\n        }\n        DistanceType dist_;\n        unsigned int index_;\n    };\n\n    /** Default cosntructor */\n    UniqueResultSet() :\n        worst_distance_(std::numeric_limits<DistanceType>::max())\n    {\n    }\n\n    /** Check the status of the set\n     * @return true if we have k NN\n     */\n    inline bool full() const\n    {\n        return is_full_;\n    }\n\n    /** Copy the set to two C arrays\n     * @param indices pointer to a C array of indices\n     * @param dist pointer to a C array of distances\n     * @param n_neighbors the number of neighbors to copy\n     */\n    void copy(size_t* indices, DistanceType* dist, int n_neighbors, bool sorted = true)\n    {\n    \tif (n_neighbors<0) n_neighbors = dist_indices_.size();\n    \tint i = 0;\n    \ttypedef typename std::set<DistIndex>::const_iterator Iterator;\n    \tfor (Iterator dist_index = dist_indices_.begin(), dist_index_end =\n    \t\t\tdist_indices_.end(); (dist_index != dist_index_end) && (i < n_neighbors); ++dist_index, ++indices, ++dist, ++i) {\n    \t\t*indices = dist_index->index_;\n    \t\t*dist = dist_index->dist_;\n    \t}\n    }\n\n    /** The number of neighbors in the set\n     * @return\n     */\n    size_t size() const\n    {\n        return dist_indices_.size();\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return worst_distance_;\n    }\nprotected:\n    /** Flag to say if the set is full */\n    bool is_full_;\n\n    /** The worst distance found so far */\n    DistanceType worst_distance_;\n\n    /** The best candidates so far */\n    std::set<DistIndex> dist_indices_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors\n * Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays\n */\ntemplate<typename DistanceType>\nclass KNNUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNUniqueResultSet(unsigned int capacity) : capacity_(capacity)\n    {\n        this->is_full_ = false;\n        this->clear();\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    inline void addPoint(DistanceType dist, size_t index)\n    {\n        // Don't do anything if we are worse than the worst\n        if (dist >= worst_distance_) return;\n        dist_indices_.insert(DistIndex(dist, index));\n\n        if (is_full_) {\n            if (dist_indices_.size() > capacity_) {\n                dist_indices_.erase(*dist_indices_.rbegin());\n                worst_distance_ = dist_indices_.rbegin()->dist_;\n            }\n        }\n        else if (dist_indices_.size() == capacity_) {\n            is_full_ = true;\n            worst_distance_ = dist_indices_.rbegin()->dist_;\n        }\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = std::numeric_limits<DistanceType>::max();\n        is_full_ = false;\n    }\n\nprotected:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::is_full_;\n    using UniqueResultSet<DistanceType>::worst_distance_;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n\n    /** The number of neighbors to keep */\n    unsigned int capacity_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the radius nearest neighbors\n * It is more accurate than RadiusResult as it is not limited in the number of neighbors\n */\ntemplate<typename DistanceType>\nclass RadiusUniqueResultSet : public UniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    RadiusUniqueResultSet(DistanceType radius) :\n        radius_(radius)\n    {\n        is_full_ = true;\n    }\n\n    /** Add a possible candidate to the best neighbors\n     * @param dist distance for that neighbor\n     * @param index index of that neighbor\n     */\n    void addPoint(DistanceType dist, size_t index)\n    {\n        if (dist < radius_) dist_indices_.insert(DistIndex(dist, index));\n    }\n\n    /** Remove all elements in the set\n     */\n    inline void clear()\n    {\n        dist_indices_.clear();\n    }\n\n\n    /** Check the status of the set\n     * @return alwys false\n     */\n    inline bool full() const\n    {\n        return true;\n    }\n\n    /** The distance of the furthest neighbor\n     * If we don't have enough neighbors, it returns the max possible value\n     * @return\n     */\n    inline DistanceType worstDist() const\n    {\n        return radius_;\n    }\nprivate:\n    typedef typename UniqueResultSet<DistanceType>::DistIndex DistIndex;\n    using UniqueResultSet<DistanceType>::dist_indices_;\n    using UniqueResultSet<DistanceType>::is_full_;\n\n    /** The furthest distance a neighbor can be */\n    DistanceType radius_;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/** Class that holds the k NN neighbors within a radius distance\n */\ntemplate<typename DistanceType>\nclass KNNRadiusUniqueResultSet : public KNNUniqueResultSet<DistanceType>\n{\npublic:\n    /** Constructor\n     * @param capacity the number of neighbors to store at max\n     */\n    KNNRadiusUniqueResultSet(DistanceType radius, size_t capacity) : KNNUniqueResultSet<DistanceType>(capacity)\n    {\n        this->radius_ = radius;\n        this->clear();\n    }\n\n    /** Remove all elements in the set\n     */\n    void clear()\n    {\n        dist_indices_.clear();\n        worst_distance_ = radius_;\n        is_full_ = true;\n    }\nprivate:\n    using KNNUniqueResultSet<DistanceType>::dist_indices_;\n    using KNNUniqueResultSet<DistanceType>::is_full_;\n    using KNNUniqueResultSet<DistanceType>::worst_distance_;\n\n    /** The maximum distance of a neighbor */\n    DistanceType radius_;\n};\n}\n\n#endif //FLANN_RESULTSET_H\n\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/sampling.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n\n#ifndef FLANN_SAMPLING_H_\n#define FLANN_SAMPLING_H_\n\n#include \"flann/util/matrix.h\"\n#include \"flann/util/random.h\"\n\nnamespace flann\n{\n\ntemplate<typename T>\nMatrix<T> random_sample(Matrix<T>& srcMatrix, size_t size, bool remove = false)\n{\n\tUniqueRandom rand_unique(srcMatrix.rows);\n    Matrix<T> newSet(new T[size * srcMatrix.cols], size,srcMatrix.cols);\n\n    T* src,* dest;\n    for (size_t i=0; i<size; ++i) {\n    \tsize_t r;\n    \tif (remove) {\n            r = static_cast<size_t>(rand_int(srcMatrix.rows-i));\n    \t}\n    \telse {\n    \t\tr = static_cast<size_t>(rand_unique.next());\n    \t}\n        dest = newSet[i];\n        src = srcMatrix[r];\n        std::copy(src, src+srcMatrix.cols, dest);\n        if (remove) {\n            src = srcMatrix[srcMatrix.rows-i-1];\n            dest = srcMatrix[r];\n            std::copy(src, src+srcMatrix.cols, dest);\n        }\n    }\n    if (remove) {\n        srcMatrix.rows -= size;\n    }\n    return newSet;\n}\n\n} // namespace\n\n\n#endif /* FLANN_SAMPLING_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/saving.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE NNIndexGOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_SAVING_H_\n#define FLANN_SAVING_H_\n\n#include <cstring>\n#include <vector>\n#include <stdio.h>\n\n#include \"flann/general.h\"\n#include \"flann/util/serialization.h\"\n\n\n#ifdef FLANN_SIGNATURE_\n#undef FLANN_SIGNATURE_\n#endif\n#define FLANN_SIGNATURE_ \"FLANN_INDEX\"\n\nnamespace flann\n{\n\n/**\n * Structure representing the index header.\n */\nstruct IndexHeader\n{\n    char signature[16];\n    char version[16];\n    flann_datatype_t data_type;\n    flann_algorithm_t index_type;\n    flann_distance_t distance_type;\n    size_t rows;\n    size_t cols;\n\n\n    IndexHeader()\n\t{\n        memset(signature, 0, sizeof(signature));\n        strcpy(signature, FLANN_SIGNATURE_);\n        memset(version, 0, sizeof(version));\n        strcpy(version, FLANN_VERSION_);\n\t}\n\nprivate:\n    template<typename Archive>\n    void serialize(Archive& ar)\n    {\n    \tar & signature;\n    \tar & version;\n    \tar & data_type;\n    \tar & index_type;\n    \tar & rows;\n    \tar & cols;\n    }\n    friend struct serialization::access;\n};\n\n/**\n * Saves index header to stream\n *\n * @param stream - Stream to save to\n * @param index - The index to save\n */\ntemplate<typename Index>\nvoid save_header(FILE* stream, const Index& index)\n{\n    IndexHeader header;\n    header.data_type = flann_datatype_value<typename Index::ElementType>::value;\n    header.index_type = index.getType();\n    header.rows = index.size();\n    header.cols = index.veclen();\n\n    fwrite(&header, sizeof(header),1,stream);\n}\n\n\n/**\n *\n * @param stream - Stream to load from\n * @return Index header\n */\ninline IndexHeader load_header(FILE* stream)\n{\n    IndexHeader header;\n    int read_size = fread(&header,sizeof(header),1,stream);\n\n    if (read_size!=1) {\n        throw FLANNException(\"Invalid index file, cannot read\");\n    }\n\n    if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) {\n        throw FLANNException(\"Invalid index file, wrong signature\");\n    }\n\n    return header;\n}\n\n\nnamespace serialization\n{\nENUM_SERIALIZER(flann_algorithm_t);\nENUM_SERIALIZER(flann_centers_init_t);\nENUM_SERIALIZER(flann_log_level_t);\nENUM_SERIALIZER(flann_datatype_t);\n}\n\n}\n\n#endif /* FLANN_SAVING_H_ */\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/serialization.h",
    "content": "#ifndef SERIALIZATION_H_\n#define SERIALIZATION_H_\n\n#include <vector>\n#include <map>\n#include <stdio.h>\n\nnamespace flann\n{\nnamespace serialization\n{\n\nstruct access \n{\n    template<typename Archive, typename T>\n    static inline void serialize(Archive& ar, T& type)\n    {\n        type.serialize(ar);\n    }\n};\n\n\ntemplate<typename Archive, typename T>\ninline void serialize(Archive& ar, T& type)\n{\n    access::serialize(ar,type);\n}\n\ntemplate<typename T>\nstruct Serializer\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, T& val)\n    {\n        serialization::serialize(ar,val);\n    }\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar, const T& val)\n    {\n        serialization::serialize(ar,const_cast<T&>(val));\n    }\n};\n\n#define BASIC_TYPE_SERIALIZER(type)\\\ntemplate<> \\\nstruct Serializer<type> \\\n{\\\n    template<typename InputArchive>\\\n    static inline void load(InputArchive& ar, type& val)\\\n    {\\\n        ar.load(val);\\\n    }\\\n    template<typename OutputArchive>\\\n    static inline void save(OutputArchive& ar, const type& val)\\\n    {\\\n        ar.save(val);\\\n    }\\\n}\n\n#define ENUM_SERIALIZER(type)\\\ntemplate<>\\\nstruct Serializer<type>\\\n{\\\n    template<typename InputArchive>\\\n    static inline void load(InputArchive& ar, type& val)\\\n    {\\\n        int int_val;\\\n        ar & int_val;\\\n        val = (type) int_val;\\\n    }\\\n    template<typename OutputArchive>\\\n    static inline void save(OutputArchive& ar, const type& val)\\\n    {\\\n        int int_val = (int)val;\\\n        ar & int_val;\\\n    }\\\n}\n\n\n// declare serializers for simple types\nBASIC_TYPE_SERIALIZER(char);\nBASIC_TYPE_SERIALIZER(unsigned char);\nBASIC_TYPE_SERIALIZER(short);\nBASIC_TYPE_SERIALIZER(unsigned short);\nBASIC_TYPE_SERIALIZER(int);\nBASIC_TYPE_SERIALIZER(unsigned int);\nBASIC_TYPE_SERIALIZER(long);\nBASIC_TYPE_SERIALIZER(unsigned long);\nBASIC_TYPE_SERIALIZER(float);\nBASIC_TYPE_SERIALIZER(double);\nBASIC_TYPE_SERIALIZER(bool);\n\n\n\n// serializer for std::vector\ntemplate<typename T>\nstruct Serializer<std::vector<T> >\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, std::vector<T>& val)\n    {\n        size_t size;\n        ar & size;\n        val.resize(size);\n        for (size_t i=0;i<size;++i) {\n            ar & val[i];\n        }\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar, const std::vector<T>& val)\n    {\n        ar & val.size();\n        for (size_t i=0;i<val.size();++i) {\n            ar & val[i];\n        }\n    }\n};\n\n// serializer for std::vector\ntemplate<typename K, typename V>\nstruct Serializer<std::map<K,V> >\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, std::map<K,V>& map_val)\n    {\n        size_t size;\n        ar & size;\n        for (size_t i = 0; i < size; ++i)\n        {\n            K key;\n            ar & key;\n            V value;\n            ar & value;\n            map_val[key] = value;\n        }\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar, const std::map<K,V>& map_val)\n    {\n        ar & map_val.size();\n        for (typename std::map<K,V>::const_iterator i=map_val.begin(); i!=map_val.end(); ++i) {\n            ar & i->first;\n            ar & i->second;\n        }\n    }\n};\n\ntemplate<typename T>\nstruct Serializer<T*>\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, T*& val)\n    {\n        ar.load(val);\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar,  T* const& val)\n    {\n        ar.save(val);\n    }\n};\n\ntemplate<typename T, int N>\nstruct Serializer<T[N]>\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, T (&val)[N])\n    {\n        ar.load(val);\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar,  T const (&val)[N])\n    {\n        ar.save(val);\n    }\n};\n\n\n\n\nstruct binary_object\n{\n    void const * ptr_;\n    size_t size_;\n\n    binary_object( void * const ptr, size_t size) :\n        ptr_(ptr),\n        size_(size)\n    {}\n    binary_object(const binary_object & rhs) :\n        ptr_(rhs.ptr_),\n        size_(rhs.size_)\n    {}\n\n    binary_object & operator=(const binary_object & rhs) {\n        ptr_ = rhs.ptr_;\n        size_ = rhs.size_;\n        return *this;\n    }\n};\n\ninline const binary_object make_binary_object(/* const */ void * t, size_t size){\n    return binary_object(t, size);\n}\n\ntemplate<>\nstruct Serializer<const binary_object>\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, const binary_object& b)\n    {\n        ar.load_binary(const_cast<void *>(b.ptr_), b.size_);\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar,  const binary_object& b)\n    {\n        ar.save_binary(b.ptr_, b.size_);\n    }\n};\n\ntemplate<>\nstruct Serializer<binary_object>\n{\n    template<typename InputArchive>\n    static inline void load(InputArchive& ar, binary_object& b)\n    {\n        ar.load_binary(const_cast<void *>(b.ptr_), b.size_);\n    }\n\n    template<typename OutputArchive>\n    static inline void save(OutputArchive& ar,  const binary_object& b)\n    {\n        ar.save_binary(b.ptr_, b.size_);\n    }\n};\n\n\n\ntemplate <bool C_> \nstruct bool_ {\n    static const bool value = C_;\n    typedef bool value_type;\n};\n\n\nclass ArchiveBase\n{\npublic:\n\n\tvoid* getObject() { return object_; }\n\n\tvoid setObject(void* object) { object_ = object; }\n\nprivate:\n\tvoid* object_;\n};\n\n\ntemplate<typename Archive>\nclass InputArchive : public ArchiveBase\n{\nprotected:\n    InputArchive() {};\npublic:\n    typedef bool_<true> is_loading;\n    typedef bool_<false> is_saving;\n\n    template<typename T>\n    Archive& operator& (T& val)\n    {\n        Serializer<T>::load(*static_cast<Archive*>(this),val);\n        return *static_cast<Archive*>(this);\n    }\n};\n\n\ntemplate<typename Archive>\nclass OutputArchive : public ArchiveBase\n{\nprotected:\n    OutputArchive() {};\npublic:\n    typedef bool_<false> is_loading;\n    typedef bool_<true> is_saving;\n    \n    template<typename T>\n    Archive& operator& (const T& val)\n    {\n        Serializer<T>::save(*static_cast<Archive*>(this),val);\n        return *static_cast<Archive*>(this);\n    }\n};\n\n\n\nclass SizeArchive : public OutputArchive<SizeArchive>\n{\n    size_t size_;\npublic:\n\n    SizeArchive() : size_(0)\n    {\n    }\n\n    template<typename T>\n    void save(const T& val)\n    {\n        size_ += sizeof(val);\n    }\n\n    template<typename T>\n    void save_binary(T* ptr, size_t size)\n    {\n    \tsize_ += size;\n    }\n\n\n    void reset()\n    {\n        size_ = 0;\n    }\n\n    size_t size()\n    {\n        return size_;\n    }\n};\n\n\n//\n//class PrintArchive : public OutputArchive<PrintArchive>\n//{\n//public:\n//    template<typename T>\n//    void save(const T& val)\n//    {\n//        std::cout << val << std::endl;\n//    }\n//\n//    template<typename T>\n//    void save_binary(T* ptr, size_t size)\n//    {\n//        std::cout << \"<binary object>\" << std::endl;\n//    }\n//};\n\n\nclass SaveArchive : public OutputArchive<SaveArchive>\n{\n    FILE* stream_;\n    bool own_stream_;\npublic:\n    SaveArchive(const char* filename)\n    {\n        stream_ = fopen(filename, \"w\");\n        own_stream_ = true;\n    }\n\n    SaveArchive(FILE* stream) : stream_(stream), own_stream_(false)\n    {\n    }\n\n    ~SaveArchive()\n    {\n    \tif (own_stream_) {\n    \t\tfclose(stream_);\n    \t}\n    }\n\n    template<typename T>\n    void save(const T& val)\n    {\n        fwrite(&val, sizeof(val), 1, stream_);\n    }\n\n    template<typename T>\n    void save(T* const& val)\n    {\n    \t// don't save pointers\n        //fwrite(&val, sizeof(val), 1, handle_);\n    }\n    \n    template<typename T>\n    void save_binary(T* ptr, size_t size)\n    {\n    \tfwrite(ptr, size, 1, stream_);\n    }\n\n};\n\n\nclass LoadArchive : public InputArchive<LoadArchive>\n{\n    FILE* stream_;\n    bool own_stream_;\npublic:\n    LoadArchive(const char* filename)\n    {\n        stream_ = fopen(filename, \"r\");\n        own_stream_ = true;\n    }\n\n    LoadArchive(FILE* stream) : stream_(stream), own_stream_(false)\n    {\n    }\n\n    ~LoadArchive()\n    {\n    \tif (own_stream_) {\n    \t\tfclose(stream_);\n    \t}\n    }\n\n    template<typename T>\n    void load(T& val)\n    {\n        size_t ret = fread(&val, sizeof(val), 1, stream_);\n        if (ret!=1) {\n        \tthrow FLANNException(\"Error loading from file\");\n        }\n    }\n\n    template<typename T>\n    void load(T*& val)\n    {\n    \t// don't load pointers\n        //fread(&val, sizeof(val), 1, handle_);\n    }\n\n    template<typename T>\n    void load_binary(T* ptr, size_t size)\n    {\n    \tsize_t ret = fread(ptr, size, 1, stream_);\n        if (ret!=1) {\n        \tthrow FLANNException(\"Error loading from file\");\n        }\n    }\n\n\n};\n\n} // namespace serialization\n} // namespace flann\n#endif // SERIALIZATION_H_\n"
  },
  {
    "path": "algorithms/flann/code/src/cpp/flann/util/timer.h",
    "content": "/***********************************************************************\n * Software License Agreement (BSD License)\n *\n * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n *\n * THE BSD LICENSE\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n *\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *************************************************************************/\n\n#ifndef FLANN_TIMER_H\n#define FLANN_TIMER_H\n\n#include <time.h>\n\n\nnamespace flann\n{\n\n/**\n * A start-stop timer class.\n *\n * Can be used to time portions of code.\n */\nclass StartStopTimer\n{\n    clock_t startTime;\n\npublic:\n    /**\n     * Value of the timer.\n     */\n    double value;\n\n\n    /**\n     * Constructor.\n     */\n    StartStopTimer()\n    {\n        reset();\n    }\n\n    /**\n     * Starts the timer.\n     */\n    void start()\n    {\n        startTime = clock();\n    }\n\n    /**\n     * Stops the timer and updates timer value.\n     */\n    double stop()\n    {\n        clock_t stopTime = clock();\n        value += ( (double)stopTime - startTime) / CLOCKS_PER_SEC;\n        \n        return value;\n    }\n\n    /**\n     * Resets the timer value to 0.\n     */\n    void reset()\n    {\n        value = 0;\n    }\n\n};\n\n}\n\n#endif // FLANN_TIMER_H\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/CMakeLists.txt",
    "content": "#IF(WIN32)\n#    SET(MEXEXT_CMD cmd /C mexext)\n#ELSE(WIN32)\n#    SET(MEXEXT_CMD mexext)\n#ENDIF(WIN32)\n\nSET(MEX_NAME nearest_neighbors)\n\nif(WIN32)\n    find_program(MEX_CMD mex.bat)\n    find_program(MEXEXT_CMD mexext.bat)\nelse()\n    find_program(MEX_CMD mex)\n    find_program(MEXEXT_CMD mexext)\nendif()\n\nfind_program(OCT_CMD mkoctfile)\n\nif(MEX_CMD AND MEXEXT_CMD)\n\n    get_filename_component(MEX_REAL_CMD ${MEX_CMD} ABSOLUTE)\n    get_filename_component(MEX_PATH ${MEX_REAL_CMD} PATH)\n\n    get_filename_component(MEXEXT_REAL_CMD ${MEXEXT_CMD} ABSOLUTE)\n    get_filename_component(MEXEXT_PATH ${MEXEXT_REAL_CMD} PATH)\n\n    if (MEX_PATH STREQUAL MEXEXT_PATH)\n        message(STATUS \"Found MATLAB at: \" ${MEX_PATH})\n\n        EXECUTE_PROCESS(COMMAND ${MEXEXT_REAL_CMD} OUTPUT_VARIABLE MEX_EXTENSION OUTPUT_STRIP_TRAILING_WHITESPACE)\n        SET(MEX_FILE ${CMAKE_CURRENT_BINARY_DIR}/${MEX_NAME}.${MEX_EXTENSION})\n\n        if (WIN32)\n            set(MEX_BUILD_FLAGS \"COMPFLAGS=\\\"$$COMPFLAGS ${OpenMP_CXX_FLAGS}\\\" LINKFLAGS=\\\"$$LINKFLAGS ${OpenMP_CXX_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}\\\"\")\n        else()\n            set(MEX_BUILD_FLAGS \"CFLAGS='$$CFLAGS ${OpenMP_CXX_FLAGS}' LDFLAGS='$$LDFLAGS ${OpenMP_CXX_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}'\")\n        endif()\n        separate_arguments(MEX_BUILD_FLAGS)\n\n        ADD_CUSTOM_COMMAND(\n            OUTPUT ${MEX_FILE}\n            COMMAND ${MEX_REAL_CMD}\n            ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${MEX_NAME}.cpp -I${PROJECT_SOURCE_DIR}/src/cpp -L${LIBRARY_OUTPUT_PATH} -lflann_s ${MEX_BUILD_FLAGS}\n            DEPENDS flann_s ${CMAKE_CURRENT_SOURCE_DIR}/${MEX_NAME}.cpp\n            COMMENT \"Building MEX extension ${MEX_FILE}\"\n        )\n\n        ADD_CUSTOM_TARGET(mex_${MEX_NAME} ALL DEPENDS ${MEX_FILE})\n\n        FILE(GLOB MATLAB_SOURCES *.m)\n\n        INSTALL (\n            FILES ${MEX_FILE} ${MATLAB_SOURCES}\n            DESTINATION share/flann/matlab\n        )\n    else()\n        message(WARNING \"The 'mex' and 'mexext' programs have been found in different locations. It's likely that one of them is not part of the MATLAB instalation. Make sure that the 'bin' directory from the MATLAB instalation is in PATH\")\n        set(BUILD_MATLAB_BINDINGS OFF) \n    endif()\nelseif(OCT_CMD)\n  SET(MEX_FILE ${CMAKE_CURRENT_BINARY_DIR}/${MEX_NAME}.mex)\n  ADD_CUSTOM_COMMAND(\n    OUTPUT ${MEX_FILE}\n    COMMAND ${OCT_CMD}\n    ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${MEX_NAME}.cpp -I${PROJECT_SOURCE_DIR}/src/cpp -L${LIBRARY_OUTPUT_PATH} -DFLANN_STATIC -lflann_s --mex\n    DEPENDS flann_s ${CMAKE_CURRENT_SOURCE_DIR}/${MEX_NAME}.cpp\n    COMMENT \"Building MEX extension ${MEX_FILE}\"\n    )\n\n  ADD_CUSTOM_TARGET(mex_${MEX_NAME} ALL DEPENDS ${MEX_FILE})\n\n  FILE(GLOB MATLAB_SOURCES *.m)\n\n  INSTALL (\n    FILES ${MEX_FILE} ${MATLAB_SOURCES}\n    DESTINATION share/flann/octave\n    )\nelse()\n    message(WARNING \"Cannot find MATLAB or Octave instalation. Make sure that the 'bin' directory from the MATLAB instalation or that mkoctfile is in PATH\")\n    set(BUILD_MATLAB_BINDINGS OFF) \nendif()\n\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_build_index.m",
    "content": "function [index, params, speedup] = flann_build_index(dataset, build_params)\n%FLANN_BUILD_INDEX  Builds an index for fast approximate nearest neighbors search\n%\n% [index, params, speedup] = flann_build_index(dataset, build_params) - Constructs the\n% index from the provided 'dataset' and (optionally) computes the optimal parameters.\n\n% Marius Muja, January 2008\n\n    algos = struct( 'linear', 0, 'kdtree', 1, 'kmeans', 2, 'composite', 3, 'kdtree_single', 4, 'hierarchical', 5, 'lsh', 6, 'saved', 254, 'autotuned', 255 );\n    center_algos = struct('random', 0, 'gonzales', 1, 'kmeanspp', 2 );\n    log_levels = struct('none', 0, 'fatal', 1, 'error', 2, 'warning', 3, 'info', 4);\n    function value = id2value(map, id)\n        fields = fieldnames(map);\n        for i = 1:length(fields),\n            val = cell2mat(fields(i));\n            if map.(val) == id\n                value = val;\n                break;\n            end\n        end\n    end\n    function id = value2id(map,value)\n        id = map.(value);\n    end\n\n    default_params = struct('algorithm', 'kdtree' ,'checks', 32, 'eps', 0.0, 'sorted', 1, 'max_neighbors', -1, 'cores', 1, 'trees', 4, 'branching', 32, 'iterations', 5, 'centers_init', 'random', 'cb_index', 0.4, 'target_precision', 0.9,'build_weight', 0.01, 'memory_weight', 0, 'sample_fraction', 0.1, 'log_level', 'warning', 'random_seed', 0);\n\n    if ~isstruct(build_params)\n        error('The \"build_params\" argument must be a structure');\n    end\n\n    params = default_params;\n    fn = fieldnames(build_params);\n    for i = [1:length(fn)],\n        name = cell2mat(fn(i));\n        params.(name) = build_params.(name);\n    end\n    if ~isnumeric(params.algorithm),\n        params.algorithm = value2id(algos,params.algorithm);\n    end\n    if ~isnumeric(params.centers_init),\n        params.centers_init = value2id(center_algos,params.centers_init);\n    end\n    if ~isnumeric(params.log_level),\n        params.log_level = value2id(log_levels,params.log_level);\n    end\n\n    [index, params, speedup] = nearest_neighbors('build_index',dataset, params);\n\n    if isnumeric(params.algorithm),\n        params.algorithm = id2value(algos,params.algorithm);\n    end\n    if isnumeric(params.centers_init),\n        params.centers_init = id2value(center_algos,params.centers_init);\n    end\nend\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_free_index.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction flann_free_index(index_id)\n%FLANN_FREE_INDEX  Deletes the nearest-neighbors index\n%\n% Deletes an index constructed using flann_build_index.\n \n% Marius Muja, January 2008\n\n    nearest_neighbors('free_index',index_id);\nend"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_load_index.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction index = flann_load_index(filename, dataset)\n%FLANN_LOAD_INDEX  Loads an index from disk\n%\n% Marius Muja, March 2009\n\n    index = nearest_neighbors('load_index', filename, dataset);\nend"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_save_index.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction flann_save_index(index_id, filename)\n%FLANN_SAVE_INDEX  Saves an index to disk\n%\n \n% Marius Muja, March 2010\n\n    nearest_neighbors('save_index',index_id, filename);\nend"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_search.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction [indices, dists] = flann_search(data, testset, n, search_params)\n%NN_SEARCH  Fast approximate nearest neighbors search\n%\n% Performs a fast approximate nearest neighbor search using an\n% index constructed using flann_build_index or directly a \n% dataset.\n\n% Marius Muja, January 2008\n\n\n    algos = struct( 'linear', 0, 'kdtree', 1, 'kmeans', 2, 'composite', 3, 'saved', 254, 'autotuned', 255 );\n    center_algos = struct('random', 0, 'gonzales', 1, 'kmeanspp', 2 );\n    log_levels = struct('none', 0, 'fatal', 1, 'error', 2, 'warning', 3, 'info', 4);\n    function value = id2value(map, id)\n        fields = fieldnames(map);\n        for i = 1:length(fields),\n            val = cell2mat(fields(i));\n            if map.(val) == id\n                value = val;\n                break;\n            end\n        end\n    end\n    function id = value2id(map,value)\n        id = map.(value);\n    end\n\n    default_params = struct('algorithm', 'kdtree' ,'checks', 32, 'eps', 0.0, 'sorted', 1, 'max_neighbors', -1, 'cores', 1, 'trees', 4, 'branching', 32, 'iterations', 5, 'centers_init', 'random', 'cb_index', 0.4, 'target_precision', 0.9,'build_weight', 0.01, 'memory_weight', 0, 'sample_fraction', 0.1, 'log_level', 'warning', 'random_seed', 0);\n\n\n    if ~isstruct(search_params)\n        error('The \"search_params\" argument must be a structure');\n    end\n\n    params = default_params;\n    fn = fieldnames(search_params);\n    for i = [1:length(fn)],\n        name = cell2mat(fn(i));\n        params.(name) = search_params.(name);\n    end\n    if ~isnumeric(params.algorithm),\n        params.algorithm = value2id(algos,params.algorithm);\n    end\n    if ~isnumeric(params.centers_init),\n        params.centers_init = value2id(center_algos,params.centers_init);\n    end\n    if ~isnumeric(params.log_level),\n        params.log_level = value2id(log_levels,params.log_level);\n    end\n\n    if (size(data,1)==1 && size(data,2)==1)\n        % we already have an index\n        [indices,dists] = nearest_neighbors('index_find_nn', data, testset, n, params);\n    else\n        % create the index and search\n        [indices,dists] = nearest_neighbors('find_nn', data, testset, n, params);\n    end\nend\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/flann_set_distance_type.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction flann_set_distance_type(type, order)\n%FLANN_LOAD_INDEX  Loads an index from disk\n%\n% Marius Muja, March 2009\n\n    distances = struct('euclidean', 1, 'manhattan', 2, 'minkowski', 3, 'max_dist', 4, 'hik', 5, 'hellinger', 6, 'chi_square', 7, 'cs', 7, 'kullback_leibler', 8, 'kl', 8);\n    function id = value2id(map,value)\n        id = map.(value);\n    end\n\n\n    if ~isnumeric(type),\n        type = value2id(distances,type);\n    end\n    if type~=3\n        order = 0;\n    end\n    nearest_neighbors('set_distance_type', type, order);\nend\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/nearest_neighbors.cpp",
    "content": "/*\n   Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n   Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n\n   THE BSD LICENSE\n\n   Redistribution and use in source and binary forms, with or without\n   modification, are permitted provided that the following conditions\n   are met:\n\n   1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n   2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n   IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* Workaround for MSVC 10, Matlab incompatibility */\n#if (_MSC_VER >= 1600)\n#include <yvals.h>\n#define __STDC_UTF_16__\n#endif\n#include <mex.h>\n#include <flann/flann.h>\n#include <stdio.h>\n#include <string.h>\n\n\n\nstruct TypedIndex\n{\n    flann_index_t index;\n    flann_datatype_t type;\n};\n\n\ntemplate <typename T>\nstatic mxArray* to_mx_array(T value)\n{\n    mxArray* mat = mxCreateDoubleMatrix(1,1,mxREAL);\n    double* ptr = mxGetPr(mat);\n    *ptr = value;\n\n    return mat;\n}\n\n\nstatic void matlabStructToFlannStruct( const mxArray* mexParams, FLANNParameters& flannParams )\n{\n    flannParams.algorithm = (flann_algorithm_t)(int)*(mxGetPr(mxGetField(mexParams, 0,\"algorithm\")));\n\n    // kdtree\n    flannParams.trees = (int)*(mxGetPr(mxGetField(mexParams, 0,\"trees\")));\n\n    // kmeans\n    flannParams.branching = (int)*(mxGetPr(mxGetField(mexParams, 0,\"branching\")));\n    flannParams.iterations = (int)*(mxGetPr(mxGetField(mexParams, 0,\"iterations\")));\n    flannParams.centers_init = (flann_centers_init_t)(int)*(mxGetPr(mxGetField(mexParams, 0,\"centers_init\")));\n    flannParams.cb_index = (float)*(mxGetPr(mxGetField(mexParams, 0,\"cb_index\")));\n\n    // autotuned\n    flannParams.target_precision = (float)*(mxGetPr(mxGetField(mexParams, 0,\"target_precision\")));\n    flannParams.build_weight = (float)*(mxGetPr(mxGetField(mexParams, 0,\"build_weight\")));\n    flannParams.memory_weight = (float)*(mxGetPr(mxGetField(mexParams, 0,\"memory_weight\")));\n    flannParams.sample_fraction = (float)*(mxGetPr(mxGetField(mexParams, 0,\"sample_fraction\")));\n\n    // misc\n    flannParams.log_level = (flann_log_level_t)(int)*(mxGetPr(mxGetField(mexParams, 0,\"log_level\")));\n    flannParams.random_seed = (int)*(mxGetPr(mxGetField(mexParams, 0,\"random_seed\")));\n\n    // search\n    flannParams.checks = (int)*(mxGetPr(mxGetField(mexParams, 0,\"checks\")));\n    flannParams.eps = (float)*(mxGetPr(mxGetField(mexParams, 0,\"eps\")));\n    flannParams.sorted = (int)*(mxGetPr(mxGetField(mexParams, 0,\"sorted\")));\n    flannParams.max_neighbors = (int)*(mxGetPr(mxGetField(mexParams, 0,\"max_neighbors\")));\n    flannParams.cores = (int)*(mxGetPr(mxGetField(mexParams, 0,\"cores\")));\n}\n\nstatic mxArray* flannStructToMatlabStruct( const FLANNParameters& flannParams )\n{\n    const char* fieldnames[] = {\"algorithm\", \"checks\", \"eps\", \"sorted\", \"max_neighbors\", \"cores\", \"trees\", \"leaf_max_size\", \"branching\", \"iterations\", \"centers_init\", \"cb_index\"};\n    mxArray* mexParams = mxCreateStructMatrix(1, 1, sizeof(fieldnames)/sizeof(const char*), fieldnames);\n\n    mxSetField(mexParams, 0, \"algorithm\", to_mx_array(flannParams.algorithm));\n    mxSetField(mexParams, 0, \"checks\", to_mx_array(flannParams.checks));\n    mxSetField(mexParams, 0, \"eps\", to_mx_array(flannParams.eps));\n    mxSetField(mexParams, 0, \"sorted\", to_mx_array(flannParams.sorted));\n    mxSetField(mexParams, 0, \"max_neighbors\", to_mx_array(flannParams.max_neighbors));\n    mxSetField(mexParams, 0, \"cores\", to_mx_array(flannParams.cores));\n\n    mxSetField(mexParams, 0, \"trees\", to_mx_array(flannParams.trees));\n    mxSetField(mexParams, 0, \"leaf_max_size\", to_mx_array(flannParams.trees));\n    \n    mxSetField(mexParams, 0, \"branching\", to_mx_array(flannParams.branching));\n    mxSetField(mexParams, 0, \"iterations\", to_mx_array(flannParams.iterations));\n    mxSetField(mexParams, 0, \"centers_init\", to_mx_array(flannParams.centers_init));\n    mxSetField(mexParams, 0, \"cb_index\", to_mx_array(flannParams.cb_index));\n\n    return mexParams;\n}\n\n\nstatic void check_allowed_type(const mxArray* datasetMat)\n{\n    if (!mxIsSingle(datasetMat) &&\n        !mxIsDouble(datasetMat) &&\n        !mxIsUint8(datasetMat) &&\n        !mxIsInt32(datasetMat)) {\n        mexErrMsgTxt(\"Data type must be floating point single precision, floating point double precision, \"\n                     \"8 bit unsigned integer or 32 bit signed integer\");\n    }\n}\n\n\n/**\n * Input arguments: dataset (matrix), testset (matrix), n (int),  params (struct)\n * Output arguments: indices(matrix), dists(matrix)\n */\nstatic void _find_nn(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    /* Check the number of input arguments */\n    if(nInArray != 4) {\n        mexErrMsgTxt(\"Incorrect number of input arguments, expecting:\\n\"\n                     \"dataset, testset, nearest_neighbors, params\");\n    }\n\n    /* Check the number of output arguments */\n    if(nOutArray > 2) {\n        mexErrMsgTxt(\"One or two outputs required.\");\n    }\n    const mxArray* datasetMat = InArray[0];\n    const mxArray* testsetMat = InArray[1];\n    check_allowed_type(datasetMat);\n    check_allowed_type(testsetMat);\n\n    int dcount = mxGetN(datasetMat);\n    int length = mxGetM(datasetMat);\n    int tcount = mxGetN(testsetMat);\n\n    if (mxGetM(testsetMat) != length) {\n        mexErrMsgTxt(\"Dataset and testset features should have the same size.\");\n    }\n\n    const mxArray* nnMat = InArray[2];\n\n    if ((mxGetM(nnMat)!=1)||(mxGetN(nnMat)!=1)|| !mxIsNumeric(nnMat)) {\n        mexErrMsgTxt(\"Number of nearest neighbors should be a scalar.\");\n    }\n    int nn = (int)(*mxGetPr(nnMat));\n\n    const mxArray* pStruct = InArray[3];\n\n    if (!mxIsStruct(pStruct)) {\n        mexErrMsgTxt(\"Params must be a struct object.\");\n    }\n\n    FLANNParameters p;\n    matlabStructToFlannStruct(pStruct, p);\n\n    int* result = (int*)malloc(tcount*nn*sizeof(int));\n    float* dists = NULL;\n    double* ddists = NULL;\n\n    /* do the search */\n    if (mxIsSingle(datasetMat)) {\n        float* dataset = (float*) mxGetData(datasetMat);\n        float* testset = (float*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_float(dataset,dcount,length,testset, tcount, result, dists, nn, &p);\n    }\n    else if (mxIsDouble(datasetMat)) {\n        double* dataset = (double*) mxGetData(datasetMat);\n        double* testset = (double*) mxGetData(testsetMat);\n        ddists = (double*)malloc(tcount*nn*sizeof(double));\n        flann_find_nearest_neighbors_double(dataset,dcount,length,testset, tcount, result, ddists, nn, &p);\n    }\n    else if (mxIsUint8(datasetMat)) {\n        unsigned char* dataset = (unsigned char*) mxGetData(datasetMat);\n        unsigned char* testset = (unsigned char*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_byte(dataset,dcount,length,testset, tcount, result, dists, nn, &p);\n    }\n    else if (mxIsInt32(datasetMat)) {\n        int* dataset = (int*) mxGetData(datasetMat);\n        int* testset = (int*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_int(dataset,dcount,length,testset, tcount, result, dists, nn, &p);\n    }\n\n    /* Allocate memory for Output Matrix */\n    OutArray[0] = mxCreateDoubleMatrix(nn, tcount, mxREAL);\n\n    /* Get pointer to Output matrix and store result */\n    double* pOut = mxGetPr(OutArray[0]);\n    for (int i=0; i<tcount*nn; ++i) {\n        pOut[i] = result[i]+1; // matlab uses 1-based indexing\n    }\n    free(result);\n\n    if (nOutArray > 1) {\n        /* Allocate memory for Output Matrix */\n        OutArray[1] = mxCreateDoubleMatrix(nn, tcount, mxREAL);\n\n        /* Get pointer to Output matrix and store result*/\n        double* pDists = mxGetPr(OutArray[1]);\n        if (dists!=NULL) {\n            for (int i=0; i<tcount*nn; ++i) {\n                pDists[i] = dists[i];\n            }\n        }\n        if (ddists!=NULL) {\n            for (int i=0; i<tcount*nn; ++i) {\n                pDists[i] = ddists[i];\n            }\n        }\n    }\n    if (dists!=NULL) free(dists);\n    if (ddists!=NULL) free(ddists);\n}\n\n/**\n * Input arguments: index (pointer), testset (matrix), n (int),  params (struct)\n * Output arguments: indices(matrix), dists(matrix)\n */\nstatic void _index_find_nn(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    /* Check the number of input arguments */\n    if(nInArray != 4) {\n        mexErrMsgTxt(\"Incorrect number of input arguments\");\n    }\n    /* Check if there is one Output matrix */\n    if(nOutArray > 2) {\n        mexErrMsgTxt(\"One or two outputs required.\");\n    }\n\n    const mxArray* indexMat = InArray[0];\n    TypedIndex* typedIndex = *(TypedIndex**)mxGetData(indexMat);\n\n    const mxArray* testsetMat = InArray[1];\n    check_allowed_type(testsetMat);\n\n    int tcount = mxGetN(testsetMat);\n\n    const mxArray* nnMat = InArray[2];\n\n    if ((mxGetM(nnMat)!=1)||(mxGetN(nnMat)!=1)) {\n        mexErrMsgTxt(\"Number of nearest neighbors should be a scalar.\");\n    }\n    int nn = (int)(*mxGetPr(nnMat));\n\n    int* result = (int*)malloc(tcount*nn*sizeof(int));\n    float* dists = NULL;\n    double* ddists = NULL;\n\n    const mxArray* pStruct = InArray[3];\n\n    FLANNParameters p;\n    matlabStructToFlannStruct(pStruct, p);\n\n    if (mxIsSingle(testsetMat)) {\n        if (typedIndex->type != FLANN_FLOAT32) {\n            mexErrMsgTxt(\"Index type must match testset type\");\n        }\n        float* testset = (float*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_index_float(typedIndex->index,testset, tcount, result, dists, nn, &p);\n    }\n    else if (mxIsDouble(testsetMat)) {\n        if (typedIndex->type != FLANN_FLOAT64) {\n            mexErrMsgTxt(\"Index type must match testset type\");\n        }\n        double* testset = (double*) mxGetData(testsetMat);\n        ddists = (double*)malloc(tcount*nn*sizeof(double));\n        flann_find_nearest_neighbors_index_double(typedIndex->index,testset, tcount, result, ddists, nn, &p);\n    }\n    else if (mxIsUint8(testsetMat)) {\n        if (typedIndex->type != FLANN_UINT8) {\n            mexErrMsgTxt(\"Index type must match testset type\");\n        }\n        unsigned char* testset = (unsigned char*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_index_byte(typedIndex->index,testset, tcount, result, dists, nn, &p);\n    }\n    else if (mxIsInt32(testsetMat)) {\n        if (typedIndex->type != FLANN_INT32) {\n            mexErrMsgTxt(\"Index type must match testset type\");\n        }\n        int* testset = (int*) mxGetData(testsetMat);\n        dists = (float*)malloc(tcount*nn*sizeof(float));\n        flann_find_nearest_neighbors_index_int(typedIndex->index,testset, tcount, result, dists, nn, &p);\n    }\n\n    /* Allocate memory for Output Matrix */\n    OutArray[0] = mxCreateDoubleMatrix(nn, tcount, mxREAL);\n\n    /* Get pointer to Output matrix and store result*/\n    double* pOut = mxGetPr(OutArray[0]);\n    for (int i=0; i<tcount*nn; ++i) {\n        pOut[i] = result[i]+1; // matlab uses 1-based indexing\n    }\n    free(result);\n    if (nOutArray > 1) {\n        /* Allocate memory for Output Matrix */\n        OutArray[1] = mxCreateDoubleMatrix(nn, tcount, mxREAL);\n\n        /* Get pointer to Output matrix and store result*/\n        double* pDists = mxGetPr(OutArray[1]);\n        if (dists!=NULL) {\n            for (int i=0; i<tcount*nn; ++i) {\n                pDists[i] = dists[i];\n            }\n        }\n        if (ddists!=NULL) {\n            for (int i=0; i<tcount*nn; ++i) {\n                pDists[i] = ddists[i];\n            }\n        }\n    }\n    if (dists!=NULL) free(dists);\n    if (ddists!=NULL) free(ddists);\n}\n\n\n/**\n * Input arguments: dataset (matrix), params (struct)\n * Output arguments: index (pointer to index), params (struct), speedup(double)\n */\nstatic void _build_index(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    /* Check the number of input arguments */\n    if(nInArray != 2) {\n        mexErrMsgTxt(\"Incorrect number of input arguments\");\n    }\n    /* Check the number of output arguments */\n    if ((nOutArray == 0)||(nOutArray > 3)) {\n        mexErrMsgTxt(\"Incorrect number of outputs.\");\n    }\n    const mxArray* datasetMat = InArray[0];\n    check_allowed_type(datasetMat);\n\n    int dcount = mxGetN(datasetMat);\n    int length = mxGetM(datasetMat);\n\n\n    const mxArray* pStruct = InArray[1];\n\n    /* get index parameters */\n    FLANNParameters p;\n    matlabStructToFlannStruct(pStruct, p);\n\n    float speedup = -1;\n\n    TypedIndex* typedIndex = new TypedIndex();\n\n    if (mxIsSingle(datasetMat)) {\n        float* dataset = (float*) mxGetData(datasetMat);\n        typedIndex->index = flann_build_index_float(dataset,dcount,length, &speedup, &p);\n        typedIndex->type = FLANN_FLOAT32;\n    }\n    else if (mxIsDouble(datasetMat)) {\n        double* dataset = (double*) mxGetData(datasetMat);\n        typedIndex->index = flann_build_index_double(dataset,dcount,length, &speedup, &p);\n        typedIndex->type = FLANN_FLOAT64;\n    }\n    else if (mxIsUint8(datasetMat)) {\n        unsigned char* dataset = (unsigned char*) mxGetData(datasetMat);\n        typedIndex->index = flann_build_index_byte(dataset,dcount,length, &speedup, &p);\n        typedIndex->type = FLANN_UINT8;\n    }\n    else if (mxIsInt32(datasetMat)) {\n        int* dataset = (int*) mxGetData(datasetMat);\n        typedIndex->index = flann_build_index_int(dataset,dcount,length, &speedup, &p);\n        typedIndex->type = FLANN_INT32;\n    }\n\n    mxClassID classID;\n    if (sizeof(flann_index_t)==4) {\n        classID = mxUINT32_CLASS;\n    }\n    else if (sizeof(flann_index_t)==8) {\n        classID = mxUINT64_CLASS;\n    }\n\n    /* Allocate memory for Output Matrix */\n    OutArray[0] = mxCreateNumericMatrix(1, 1, classID, mxREAL);\n\n    /* Get pointer to Output matrix and store result*/\n    TypedIndex** pOut = (TypedIndex**)mxGetData(OutArray[0]);\n    pOut[0] = typedIndex;\n\n    if (nOutArray > 1) {\n        OutArray[1] = flannStructToMatlabStruct(p);\n    }\n    if (nOutArray > 2) {\n        OutArray[2] = mxCreateDoubleMatrix(1, 1, mxREAL);\n        double* pSpeedup = mxGetPr(OutArray[2]);\n\n        *pSpeedup = speedup;\n    }\n}\n\n/**\n * Inputs: index (index pointer)\n */\nstatic void _free_index(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    /* Check the number of input arguments */\n    if(!((nInArray == 1)&&((mxGetN(InArray[0])*mxGetM(InArray[0]))==1))) {\n        mexErrMsgTxt(\"Expecting a single scalar argument: the index ID\");\n    }\n    TypedIndex* typedIndex = *(TypedIndex**)mxGetData(InArray[0]);\n    if (typedIndex->type==FLANN_FLOAT32) {\n        flann_free_index_float(typedIndex->index, NULL);\n    }\n    else if (typedIndex->type==FLANN_FLOAT64) {\n        flann_free_index_double(typedIndex->index, NULL);\n    }\n    else if (typedIndex->type==FLANN_UINT8) {\n        flann_free_index_byte(typedIndex->index, NULL);\n    }\n    else if (typedIndex->type==FLANN_INT32) {\n        flann_free_index_int(typedIndex->index, NULL);\n    }\n    delete typedIndex;\n}\n\n/**\n * Inputs: level\n */\nstatic void _set_log_level(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    if (nInArray != 1) {\n        mexErrMsgTxt(\"Incorrect number of input arguments: expecting log_level\");\n    }\n\n    const mxArray* llMat = InArray[0];\n\n    if ((mxGetM(llMat)!=1)||(mxGetN(llMat)!=1)|| !mxIsNumeric(llMat)) {\n        mexErrMsgTxt(\"Log Level should be a scalar.\");\n    }\n    int log_level = (int)(*mxGetPr(llMat));\n\n    flann_log_verbosity(log_level);\n\n}\n\n/**\n * Inputs: type (flann_distance_t), order(int)\n */\nstatic void _set_distance_type(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    if( ((nInArray != 1)&&(nInArray != 2))) {\n        mexErrMsgTxt(\"Incorrect number of input arguments\");\n    }\n\n    const mxArray* distMat = InArray[0];\n\n    if ((mxGetM(distMat)!=1)||(mxGetN(distMat)!=1)|| !mxIsNumeric(distMat)) {\n        mexErrMsgTxt(\"Distance type should be a scalar.\");\n    }\n    int distance_type = (int)(*mxGetPr(distMat));\n\n    int order = 0;\n    if (nInArray==2) {\n        const mxArray* ordMat = InArray[1];\n        if ((mxGetM(ordMat)!=1)||(mxGetN(ordMat)!=1)|| !mxIsNumeric(ordMat)) {\n            mexErrMsgTxt(\"Distance order should be a scalar.\");\n        }\n\n        order = (int)(*mxGetPr(ordMat));\n    }\n    flann_set_distance_type((flann_distance_t)distance_type, order);\n}\n\n\n/**\n * Inputs: index (index pointer), filename (string)\n */\nstatic void _save_index(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    /* Check the number of input arguments */\n    if(nInArray != 2) {\n        mexErrMsgTxt(\"Incorrect number of input arguments\");\n    }\n\n    const mxArray* indexMat = InArray[0];\n    TypedIndex* typedIndex = *(TypedIndex**)mxGetData(indexMat);\n\n    // get the selector\n    if(!mxIsChar(InArray[1])) {\n        mexErrMsgTxt(\"'filename' should be a string\");\n    }\n    char filename[128];\n    mxGetString(InArray[1],filename,128);\n\n    if (typedIndex->type==FLANN_FLOAT32) {\n        flann_save_index_float(typedIndex->index, filename);\n    }\n    else if (typedIndex->type==FLANN_FLOAT64) {\n        flann_save_index_double(typedIndex->index, filename);\n    }\n    else if (typedIndex->type==FLANN_UINT8) {\n        flann_save_index_byte(typedIndex->index, filename);\n    }\n    else if (typedIndex->type==FLANN_INT32) {\n        flann_save_index_int(typedIndex->index, filename);\n    }\n}\n\n\n/**\n * Inputs: filename (string), matrix\n */\nstatic void _load_index(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    if(nInArray != 2) {\n        mexErrMsgTxt(\"Incorrect number of input arguments\");\n    }\n    // get the selector\n    if(!mxIsChar(InArray[0])) {\n        mexErrMsgTxt(\"'filename' should be a string\");\n    }\n    char filename[128];\n    mxGetString(InArray[0],filename,128);\n\n    const mxArray* datasetMat = InArray[1];\n    check_allowed_type(datasetMat);\n\n    int dcount = mxGetN(datasetMat);\n    int length = mxGetM(datasetMat);\n\n    TypedIndex* typedIndex = new TypedIndex();\n\n    if (mxIsSingle(datasetMat)) {\n        float* dataset = (float*) mxGetData(datasetMat);\n        typedIndex->index = flann_load_index_float(filename, dataset,dcount,length);\n        typedIndex->type = FLANN_FLOAT32;\n    }\n    else if (mxIsDouble(datasetMat)) {\n        double* dataset = (double*) mxGetData(datasetMat);\n        typedIndex->index = flann_load_index_double(filename, dataset,dcount,length);\n        typedIndex->type = FLANN_FLOAT64;\n    }\n    else if (mxIsUint8(datasetMat)) {\n        unsigned char* dataset = (unsigned char*) mxGetData(datasetMat);\n        typedIndex->index = flann_load_index_byte(filename, dataset,dcount,length);\n        typedIndex->type = FLANN_UINT8;\n    }\n    else if (mxIsInt32(datasetMat)) {\n        int* dataset = (int*) mxGetData(datasetMat);\n        typedIndex->index = flann_load_index_int(filename, dataset,dcount,length);\n        typedIndex->type = FLANN_INT32;\n    }\n\n    mxClassID classID;\n    if (sizeof(flann_index_t)==4) {\n        classID = mxUINT32_CLASS;\n    }\n    else if (sizeof(flann_index_t)==8) {\n        classID = mxUINT64_CLASS;\n    }\n\n    /* Allocate memory for Output Matrix */\n    OutArray[0] = mxCreateNumericMatrix(1, 1, classID, mxREAL);\n\n    /* Get pointer to Output matrix and store result*/\n    TypedIndex** pOut = (TypedIndex**)mxGetData(OutArray[0]);\n    pOut[0] = typedIndex;\n}\n\n\nstruct mexFunctionEntry\n{\n    const char* name;\n    void (* function)(int, mxArray**, int, const mxArray**);\n};\n\nstatic mexFunctionEntry __functionTable[] = {\n    { \"find_nn\", &_find_nn},\n    { \"build_index\", &_build_index},\n    { \"index_find_nn\", &_index_find_nn},\n    { \"free_index\", &_free_index},\n    { \"save_index\", &_save_index},\n    { \"load_index\", &_load_index},\n    { \"set_log_level\", &_set_log_level},\n    { \"set_distance_type\", &_set_distance_type},\n};\n\n\nstatic void print_selector_error()\n{\n    char buf[512];\n    char* msg = buf;\n\n    sprintf(msg, \"%s\", \"Expecting first argument to be one of: \");\n    msg = buf+strlen(buf);\n    for (int i=0; i<sizeof(__functionTable)/sizeof(mexFunctionEntry); ++i) {\n        if (i!=0) {\n            sprintf(msg,\", \");\n            msg = buf+strlen(buf);\n        }\n        sprintf(msg, \"%s\", __functionTable[i].name);\n        msg = buf+strlen(buf);\n    }\n\n    mexErrMsgTxt(buf);\n}\n\n\nvoid mexFunction(int nOutArray, mxArray* OutArray[], int nInArray, const mxArray* InArray[])\n{\n    // get the selector\n    if((nInArray == 0)|| !mxIsChar(InArray[0])) {\n        print_selector_error();\n    }\n    char selector[128];\n    mxGetString(InArray[0],selector,128);\n\n    // check if function with that name is present\n    int idx = 0;\n    for (idx = 0; idx<sizeof(__functionTable)/sizeof(mexFunctionEntry); ++idx) {\n        if (strcmp(__functionTable[idx].name, selector)==0) {\n            break;\n        }\n    }\n    if (idx==sizeof(__functionTable)/sizeof(mexFunctionEntry)) {\n        print_selector_error();\n    }\n\n    // now call the function\n    __functionTable[idx].function(nOutArray,OutArray, nInArray-1, InArray+1);\n}\n"
  },
  {
    "path": "algorithms/flann/code/src/matlab/test_flann.m",
    "content": "%Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n%Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n%\n%THE BSD LICENSE\n%\n%Redistribution and use in source and binary forms, with or without\n%modification, are permitted provided that the following conditions\n%are met:\n%\n%1. Redistributions of source code must retain the above copyright\n%   notice, this list of conditions and the following disclaimer.\n%2. Redistributions in binary form must reproduce the above copyright\n%   notice, this list of conditions and the following disclaimer in the\n%   documentation and/or other materials provided with the distribution.\n%\n%THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n%IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n%OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n%IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n%INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n%NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n%DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n%THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n%(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n%THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfunction test_flann\ndata_path = './';\noutcome = {'FAILED!!!!!!!!!', 'PASSED'};\n\nfailed = 0;\npassed = 0;\ncnt = 0;\nok = 1;\n\n    function assert(condition)\n        if (~condition)\n            ok = 0;\n        end\n    end\n\n    function run_test(name, test)\n        ok = 1;\n        cnt = cnt + 1;\n        tic;\n        fprintf('Test %d: %s...',cnt,name);\n        test();\n        time = toc;\n        if (ok)\n            passed = passed + 1;\n        else\n            failed = failed + 1;\n        end\n        fprintf('done (%g sec) : %s\\n',time,cell2mat(outcome(ok+1)))\n    end\n\n    function status\n        fprintf('-----------------\\n');\n        fprintf('Passed: %d/%d\\nFailed: %d/%d\\n',passed,cnt,failed,cnt);\n    end\n\n\n    dataset = [];\n    testset = [];\n    function test_load_data\n        % load the datasets and testsets\n        % use single precision for better memory efficiency\n        % store the features one per column because MATLAB\n        % uses column major ordering\n        % The dataset.dat and testset.dat files can be downloaded from:\n        % http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/dataset.dat\n        % http://people.cs.ubc.ca/~mariusm/uploads/FLANN/datasets/testset.dat\n        dataset = single(load([data_path 'dataset.dat']))';\n        testset = single(load([data_path 'testset.dat']))';\n\n        assert(size(dataset,1) == size(testset,1));\n    end\n    run_test('Load data',@test_load_data);\n\n\tmatch = [];\n    dists = [];\n    function test_linear_search\n        [match,dists] = flann_search(dataset, testset, 10, struct('algorithm','linear'));\n        assert(size(match,1) ==10 && size(match,2) == size(testset,2));\n    end\n    run_test('Linear search',@test_linear_search);\n\n    function test_kdtree_search\n        [result, ndists] = flann_search(dataset, testset, 10, struct('algorithm','kdtree',...\n                                                          'trees',8,...\n                                                          'checks',64));\n        n = size(match,2);\n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('kd-tree search',@test_kdtree_search);\n    \n    function test_kmeans_search\n        [result, ndists] = flann_search(dataset, testset, 10, struct('algorithm','kmeans',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'checks',120));\n        n = size(match,2);\n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('k-means search',@test_kmeans_search);\n\n    \n    \n    function test_composite_search\n        [result, ndists] = flann_search(dataset, testset, 10, struct('algorithm','composite',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'trees', 1,...\n                                                          'checks',64));\n        n = size(match,2);\n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('composite search',@test_composite_search);\n    \n    function test_autotune_search\n        [result, ndists] = flann_search(dataset, testset, 10, struct('algorithm','autotuned',...\n                                                          'target_precision',0.95,...\n                                                          'build_weight',0.01,...\n                                                          'memory_weight',0));\n        n = size(match,2);\n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('search with autotune',@test_autotune_search);\n    \n    function test_index_kdtree_search\n        [index, search_params ] = flann_build_index(dataset, struct('algorithm','kdtree', 'trees',8,...\n                                                          'checks',64));                                             \n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index kd-tree search',@test_index_kdtree_search);\n    \n    function test_index_kmeans_search\n        [index, search_params ] = flann_build_index(dataset, struct('algorithm','kmeans',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'checks',120));                                             \n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index kmeans search',@test_index_kmeans_search);\n    \n    function test_index_kmeans_search_gonzales\n        [index, search_params ] = flann_build_index(dataset, struct('algorithm','kmeans',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'checks',120,...\n                                                          'centers_init','gonzales'));                                             \n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index kmeans search gonzales',@test_index_kmeans_search_gonzales);\n    \n    function test_index_kmeans_search_kmeanspp\n        [index, search_params ] = flann_build_index(dataset, struct('algorithm','kmeans',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'checks',120,...\n                                                          'centers_init','kmeanspp'));                                             \n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index kmeans search kmeanspp',@test_index_kmeans_search_kmeanspp);\n\n    function test_index_composite_search\n        [index, search_params ] = flann_build_index(dataset,struct('algorithm','composite',...\n                                                          'branching',32,...\n                                                          'iterations',3,...\n                                                          'trees', 1,...\n                                                          'checks',64));                                             \n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index composite search',@test_index_composite_search);\n    \n   function test_index_autotune_search\n        [index, search_params, speedup ] = flann_build_index(dataset,struct('algorithm','autotuned',...\n                                                          'target_precision',0.95,...\n                                                          'build_weight',0.01,...\n                                                          'memory_weight',0));\n        [result, ndists] = flann_search(index, testset, 10, search_params);\n        n = size(match,2);      \n        precision = (n-sum(abs(result(1,:)-match(1,:))>0))/n;\n        assert(precision>0.9);\n        assert(sum(~(match(1,:)-result(1,:)).*(dists(1,:)-ndists(1,:)))==0);\n    end\n    run_test('index autotune search',@test_index_autotune_search);    \n    \n    status();\nend\n"
  },
  {
    "path": "algorithms/flann/code/src/python/CMakeLists.txt",
    "content": "configure_file( setup.py.tpl setup.py )\n\ninstall( DIRECTORY pyflann DESTINATION share/flann/python )\ninstall( FILES ${CMAKE_CURRENT_BINARY_DIR}/setup.py DESTINATION share/flann/python )\n\n\n# python instalation\nif (PYTHON_EXECUTABLE)\n    install(CODE \"execute_process(\n        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/setup.py install\n        WORKING_DIRECTORY \\\"${CMAKE_CURRENT_SOURCE_DIR}\\\")\")\nendif()\n"
  },
  {
    "path": "algorithms/flann/code/src/python/pyflann/__init__.py",
    "content": "#Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n#Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n#\n#THE BSD LICENSE\n#\n#Redistribution and use in source and binary forms, with or without\n#modification, are permitted provided that the following conditions\n#are met:\n#\n#1. Redistributions of source code must retain the above copyright\n#   notice, this list of conditions and the following disclaimer.\n#2. Redistributions in binary form must reproduce the above copyright\n#   notice, this list of conditions and the following disclaimer in the\n#   documentation and/or other materials provided with the distribution.\n#\n#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n#import sys\n#import os\n#sys.path.insert(0, os.path.split(__file__)[0]) # make python3 happy\n\nfrom pyflann.index import *\n"
  },
  {
    "path": "algorithms/flann/code/src/python/pyflann/exceptions.py",
    "content": "#Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n#Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n#\n#THE BSD LICENSE\n#\n#Redistribution and use in source and binary forms, with or without\n#modification, are permitted provided that the following conditions\n#are met:\n#\n#1. Redistributions of source code must retain the above copyright\n#   notice, this list of conditions and the following disclaimer.\n#2. Redistributions in binary form must reproduce the above copyright\n#   notice, this list of conditions and the following disclaimer in the\n#   documentation and/or other materials provided with the distribution.\n#\n#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n# This module defines exceptions that are used by the flann python bindings\n\nclass FLANNException(Exception):\n    def __init__(self, *args):\n        Exception.__init__(self, *args)\n\n\n"
  },
  {
    "path": "algorithms/flann/code/src/python/pyflann/flann_ctypes.py",
    "content": "#Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n#Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n#\n#THE BSD LICENSE\n#\n#Redistribution and use in source and binary forms, with or without\n#modification, are permitted provided that the following conditions\n#are met:\n#\n#1. Redistributions of source code must retain the above copyright\n#   notice, this list of conditions and the following disclaimer.\n#2. Redistributions in binary form must reproduce the above copyright\n#   notice, this list of conditions and the following disclaimer in the\n#   documentation and/or other materials provided with the distribution.\n#\n#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfrom ctypes import *\n#from ctypes.util import find_library\nfrom numpy import float32, float64, uint8, int32, matrix, array, empty, reshape, require\nfrom numpy.ctypeslib import load_library, ndpointer\nimport os\nimport sys\n\nSTRING = c_char_p\n\n\nclass CustomStructure(Structure):\n    \"\"\"\n        This class extends the functionality of the ctype's structure\n        class by adding custom default values to the fields and a way of translating\n        field types.\n    \"\"\"\n    _defaults_ = {}\n    _translation_ = {}\n    \n    def __init__(self):\n        Structure.__init__(self)\n        self.__field_names = [ f for (f,t) in self._fields_]\n        self.update(self._defaults_)    \n    \n    def update(self, dict):\n        for k,v in dict.items():\n            if k in self.__field_names:\n                setattr(self,k,self.__translate(k,v))\n    \n    def __getitem__(self, k):\n        if k in self.__field_names:\n            return self.__translate_back(k,getattr(self,k))\n        \n    def __setitem__(self, k, v):\n        if k in self.__field_names:\n            setattr(self,k,self.__translate(k,v))\n        else:\n            raise KeyError(\"No such member: \"+k)\n    \n    def keys(self):\n        return self.__field_names \n\n    def __translate(self,k,v):\n        if k in self._translation_:\n            if v in self._translation_[k]:\n                return self._translation_[k][v]\n        return v        \n\n    def __translate_back(self,k,v):\n        if k in self._translation_:\n            for tk,tv in self._translation_[k].items():\n                if tv==v:\n                    return tk\n        return v        \n\nclass FLANNParameters(CustomStructure):\n    _fields_ = [\n        ('algorithm', c_int),\n        ('checks', c_int),\n        ('eps', c_float),\n        ('sorted', c_int),\n        ('max_neighbors', c_int),\n        ('cores', c_int),\n        ('trees', c_int),\n        ('leaf_max_size', c_int),\n        ('branching', c_int),\n        ('iterations', c_int),\n        ('centers_init', c_int),\n        ('cb_index', c_float),\n        ('target_precision', c_float),\n        ('build_weight', c_float),\n        ('memory_weight', c_float),\n        ('sample_fraction', c_float),\n        ('table_number_', c_uint),\n        ('key_size_', c_uint),\n        ('multi_probe_level_', c_uint),\n        ('log_level', c_int),\n        ('random_seed', c_long),\n    ]\n    _defaults_ = {\n        'algorithm' : 'kdtree',\n        'checks' : 32,\n        'eps' : 0.0,\n        'sorted' : 1,\n        'max_neighbors' : -1,\n        'cores' : 0,\n        'trees' : 1,\n        'leaf_max_size' : 4,\n        'branching' : 32,\n        'iterations' : 5,\n        'centers_init' : 'random',\n        'cb_index' : 0.5,\n        'target_precision' : 0.9,\n        'build_weight' : 0.01,\n        'memory_weight' : 0.0,\n        'sample_fraction' : 0.1,\n        'table_number_': 12,\n        'key_size_': 20,\n        'multi_probe_level_': 2,\n        'log_level' : \"warning\",\n        'random_seed' : -1\n  }\n    _translation_ = {\n            \"algorithm\"     : {\"linear\"    : 0, \"kdtree\"    : 1, \"kmeans\"    : 2, \"composite\" : 3, \"kdtree_single\" : 4, \"hierarchical\": 5, \"lsh\": 6, \"saved\": 254, \"autotuned\" : 255, \"default\"   : 1},\n        \"centers_init\"  : {\"random\"    : 0, \"gonzales\"  : 1, \"kmeanspp\"  : 2, \"default\"   : 0},\n        \"log_level\"     : {\"none\"      : 0, \"fatal\"     : 1, \"error\"     : 2, \"warning\"   : 3, \"info\"      : 4, \"default\"   : 2}\n    }\n    \n    \ndefault_flags = ['C_CONTIGUOUS', 'ALIGNED']\nallowed_types = [ float32, float64, uint8, int32]   \n\nFLANN_INDEX = c_void_p\n\ndef load_flann_library():\n\n    root_dir = os.path.abspath(os.path.dirname(__file__))\n    \n    libnames = ['libflann.so']\n    libdir = 'lib'\n    if sys.platform == 'win32':\n        libnames = ['flann.dll', 'libflann.dll']\n    elif sys.platform == 'darwin':\n        libnames = ['libflann.dylib']\n\n    while root_dir!=None:\n        for libname in libnames:\n            try:\n                #print \"Trying \",os.path.join(root_dir,'lib',libname)\n                flannlib = cdll[os.path.join(root_dir,libdir,libname)]\n                return flannlib\n            except Exception:\n                pass\n            try:\n                flannlib = cdll[os.path.join(root_dir,\"build\",libdir,libname)]\n                return flannlib\n            except Exception:\n                pass\n        tmp = os.path.dirname(root_dir)\n        if tmp == root_dir:\n            root_dir = None\n        else:\n            root_dir = tmp\n\n    # if we didn't find the library so far, try loading without\n    # a full path as a last resort\n    for libname in libnames:\n        try:\n            #print \"Trying\",libname\n            flannlib=cdll[libname]\n            return flannlib\n        except:\n            pass\n\n    return None\n\nflannlib = load_flann_library()\nif flannlib == None:\n    raise ImportError('Cannot load dynamic library. Did you compile FLANN?')\n\nclass FlannLib: pass\nflann = FlannLib()\n\n\nflannlib.flann_log_verbosity.restype = None\nflannlib.flann_log_verbosity.argtypes = [ \n        c_int # level\n]\n\n\n\nflannlib.flann_set_distance_type.restype = None\nflannlib.flann_set_distance_type.argtypes = [ \n        c_int,\n        c_int,        \n]\n\ntype_mappings = ( ('float','float32'),\n                  ('double','float64'),\n                  ('byte','uint8'),\n                  ('int','int32') )\n\ndef define_functions(str):\n    for type in type_mappings:\n        eval(compile(str%{'C':type[0],'numpy':type[1]},\"<string>\",\"exec\"))\n\nflann.build_index = {}\ndefine_functions(r\"\"\"\nflannlib.flann_build_index_%(C)s.restype = FLANN_INDEX\nflannlib.flann_build_index_%(C)s.argtypes = [ \n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int, # rows\n        c_int, # cols\n        POINTER(c_float), # speedup \n        POINTER(FLANNParameters)  # flann_params\n]\nflann.build_index[%(numpy)s] = flannlib.flann_build_index_%(C)s\n\"\"\")\n\nflann.save_index = {}\ndefine_functions(r\"\"\"\nflannlib.flann_save_index_%(C)s.restype = None\nflannlib.flann_save_index_%(C)s.argtypes = [\n        FLANN_INDEX, # index_id\n        c_char_p #filename                                   \n] \nflann.save_index[%(numpy)s] = flannlib.flann_save_index_%(C)s\n\"\"\")\n\nflann.load_index = {}\ndefine_functions(r\"\"\"\nflannlib.flann_load_index_%(C)s.restype = FLANN_INDEX\nflannlib.flann_load_index_%(C)s.argtypes = [\n        c_char_p, #filename                                   \n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int, # rows\n        c_int, # cols\n]\nflann.load_index[%(numpy)s] = flannlib.flann_load_index_%(C)s\n\"\"\")\n\nflann.find_nearest_neighbors = {}    \ndefine_functions(r\"\"\"                          \nflannlib.flann_find_nearest_neighbors_%(C)s.restype = c_int\nflannlib.flann_find_nearest_neighbors_%(C)s.argtypes = [ \n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int, # rows\n        c_int, # cols\n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # testset\n        c_int,  # tcount\n        ndpointer(int32, ndim = 2, flags='aligned, c_contiguous, writeable'), # result\n        ndpointer(float32, ndim = 2, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # nn\n        POINTER(FLANNParameters)  # flann_params\n]\nflann.find_nearest_neighbors[%(numpy)s] = flannlib.flann_find_nearest_neighbors_%(C)s\n\"\"\")\n\n# fix definition for the 'double' case\n\nflannlib.flann_find_nearest_neighbors_double.restype = c_int\nflannlib.flann_find_nearest_neighbors_double.argtypes = [ \n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int, # rows\n        c_int, # cols\n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous'), # testset\n        c_int,  # tcount\n        ndpointer(int32, ndim = 2, flags='aligned, c_contiguous, writeable'), # result\n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # nn\n        POINTER(FLANNParameters)  # flann_params\n]\nflann.find_nearest_neighbors[float64] = flannlib.flann_find_nearest_neighbors_double\n\n\nflann.find_nearest_neighbors_index = {}\ndefine_functions(r\"\"\"\nflannlib.flann_find_nearest_neighbors_index_%(C)s.restype = c_int\nflannlib.flann_find_nearest_neighbors_index_%(C)s.argtypes = [ \n        FLANN_INDEX, # index_id\n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # testset\n        c_int,  # tcount\n        ndpointer(int32, ndim = 2, flags='aligned, c_contiguous, writeable'), # result\n        ndpointer(float32, ndim = 2, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # nn\n        POINTER(FLANNParameters) # flann_params\n]\nflann.find_nearest_neighbors_index[%(numpy)s] = flannlib.flann_find_nearest_neighbors_index_%(C)s\n\"\"\")\n\nflannlib.flann_find_nearest_neighbors_index_double.restype = c_int\nflannlib.flann_find_nearest_neighbors_index_double.argtypes = [ \n        FLANN_INDEX, # index_id\n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous'), # testset\n        c_int,  # tcount\n        ndpointer(int32, ndim = 2, flags='aligned, c_contiguous, writeable'), # result\n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # nn\n        POINTER(FLANNParameters) # flann_params\n]\nflann.find_nearest_neighbors_index[float64] = flannlib.flann_find_nearest_neighbors_index_double\n\nflann.radius_search = {}\ndefine_functions(r\"\"\"\nflannlib.flann_radius_search_%(C)s.restype = c_int\nflannlib.flann_radius_search_%(C)s.argtypes = [ \n        FLANN_INDEX, # index_id\n        ndpointer(%(numpy)s, ndim = 1, flags='aligned, c_contiguous'), # query\n        ndpointer(int32, ndim = 1, flags='aligned, c_contiguous, writeable'), # indices\n        ndpointer(float32, ndim = 1, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # max_nn\n        c_float, # radius\n        POINTER(FLANNParameters) # flann_params\n]\nflann.radius_search[%(numpy)s] = flannlib.flann_radius_search_%(C)s\n\"\"\")\n\nflannlib.flann_radius_search_double.restype = c_int\nflannlib.flann_radius_search_double.argtypes = [ \n        FLANN_INDEX, # index_id\n        ndpointer(float64, ndim = 1, flags='aligned, c_contiguous'), # query\n        ndpointer(int32, ndim = 1, flags='aligned, c_contiguous, writeable'), # indices\n        ndpointer(float64, ndim = 1, flags='aligned, c_contiguous, writeable'), # dists\n        c_int, # max_nn\n        c_float, # radius\n        POINTER(FLANNParameters) # flann_params\n]\nflann.radius_search[float64] = flannlib.flann_radius_search_double\n\n\nflann.compute_cluster_centers = {}\ndefine_functions(r\"\"\"\nflannlib.flann_compute_cluster_centers_%(C)s.restype = c_int\nflannlib.flann_compute_cluster_centers_%(C)s.argtypes = [ \n        ndpointer(%(numpy)s, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int,  # rows\n        c_int,  # cols\n        c_int,  # clusters \n        ndpointer(float32, flags='aligned, c_contiguous, writeable'), # result\n        POINTER(FLANNParameters)  # flann_params\n]\nflann.compute_cluster_centers[%(numpy)s] = flannlib.flann_compute_cluster_centers_%(C)s\n\"\"\")\n# double is an exception\nflannlib.flann_compute_cluster_centers_double.restype = c_int\nflannlib.flann_compute_cluster_centers_double.argtypes = [ \n        ndpointer(float64, ndim = 2, flags='aligned, c_contiguous'), # dataset\n        c_int,  # rows\n        c_int,  # cols\n        c_int,  # clusters \n        ndpointer(float64, flags='aligned, c_contiguous, writeable'), # result\n        POINTER(FLANNParameters)  # flann_params\n]\nflann.compute_cluster_centers[float64] = flannlib.flann_compute_cluster_centers_double\n\n\nflann.free_index = {}\ndefine_functions(r\"\"\"\nflannlib.flann_free_index_%(C)s.restype = None\nflannlib.flann_free_index_%(C)s.argtypes = [ \n        FLANN_INDEX,  # index_id\n        POINTER(FLANNParameters) # flann_params\n]\nflann.free_index[%(numpy)s] = flannlib.flann_free_index_%(C)s\n\"\"\")\n\n\ndef ensure_2d_array(array, flags, **kwargs):\n    array = require(array, requirements = flags, **kwargs) \n    if len(array.shape) == 1:\n        array = array.reshape(-1,array.size)\n    return array\n"
  },
  {
    "path": "algorithms/flann/code/src/python/pyflann/index.py",
    "content": "#Copyright 2008-2010  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.\n#Copyright 2008-2010  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.\n#\n#THE BSD LICENSE\n#\n#Redistribution and use in source and binary forms, with or without\n#modification, are permitted provided that the following conditions\n#are met:\n#\n#1. Redistributions of source code must retain the above copyright\n#   notice, this list of conditions and the following disclaimer.\n#2. Redistributions in binary form must reproduce the above copyright\n#   notice, this list of conditions and the following disclaimer in the\n#   documentation and/or other materials provided with the distribution.\n#\n#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n#OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n#IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n#NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n#THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nfrom pyflann.flann_ctypes import *\nfrom pyflann.exceptions import *\nimport numpy.random as _rn\n\n\nindex_type = int32\n\ndef set_distance_type(distance_type, order = 0):\n    \"\"\"\n    Sets the distance type used. Possible values: euclidean, manhattan, minkowski, max_dist, \n    hik, hellinger, cs, kl.\n    \"\"\"\n    \n    distance_translation = { \"euclidean\" : 1, \n                            \"manhattan\" : 2, \n                            \"minkowski\" : 3,\n                            \"max_dist\" : 4,\n                            \"hik\" : 5,\n                            \"hellinger\" : 6,\n                            \"chi_square\" : 7,\n                            \"cs\" : 7,\n                            \"kullback_leibler\" : 8,\n                            \"kl\" : 8,\n                            }\n    if type(distance_type)==str:\n        distance_type = distance_translation[distance_type]\n\n    flannlib.flann_set_distance_type(distance_type,order)\n\n\n\ndef to_bytes(string):\n    if sys.hexversion > 0x03000000:\n        return bytes(string,'utf-8')\n    return string\n\n# This class is derived from an initial implementation by Hoyt Koepke (hoytak@cs.ubc.ca)\nclass FLANN:\n    \"\"\"\n    This class defines a python interface to the FLANN lirary.\n    \"\"\"\n    __rn_gen = _rn.RandomState()\n    \n    _as_parameter_ = property( lambda self: self.__curindex )\n\n    def __init__(self, **kwargs):\n        \"\"\"\n        Constructor for the class and returns a class that can bind to\n        the flann libraries.  Any keyword arguments passed to __init__\n        override the global defaults given.\n        \"\"\"\n        \n        self.__rn_gen.seed()\n\n        self.__curindex = None\n        self.__curindex_data = None\n        self.__curindex_type = None\n        \n        self.__flann_parameters = FLANNParameters()        \n        self.__flann_parameters.update(kwargs)\n\n    def __del__(self):\n        self.delete_index()\n\n        \n    ################################################################################\n    # actual workhorse functions\n\n    def nn(self, pts, qpts, num_neighbors = 1, **kwargs):\n        \"\"\"\n        Returns the num_neighbors nearest points in dataset for each point\n        in testset.\n        \"\"\"\n        \n        if not pts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%pts.dtype)\n\n        if not qpts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%pts.dtype)\n\n        if pts.dtype != qpts.dtype:\n            raise FLANNException(\"Data and query must have the same type\")\n        \n        pts = ensure_2d_array(pts,default_flags) \n        qpts = ensure_2d_array(qpts,default_flags) \n\n        npts, dim = pts.shape\n        nqpts = qpts.shape[0]\n\n        assert(qpts.shape[1] == dim)\n        assert(npts >= num_neighbors)\n\n        result = empty( (nqpts, num_neighbors), dtype=index_type)\n        if pts.dtype==float64:\n            dists = empty( (nqpts, num_neighbors), dtype=float64)\n        else:\n            dists = empty( (nqpts, num_neighbors), dtype=float32)\n                \n        self.__flann_parameters.update(kwargs)\n\n        flann.find_nearest_neighbors[pts.dtype.type](pts, npts, dim, \n                                                     qpts, nqpts, result, dists, num_neighbors, \n                                                     pointer(self.__flann_parameters))\n\n        if num_neighbors == 1:\n            return (result.reshape( nqpts ), dists.reshape(nqpts))\n        else:\n            return (result,dists)\n\n\n    def build_index(self, pts, **kwargs):\n        \"\"\"\n        This builds and internally stores an index to be used for\n        future nearest neighbor matchings.  It erases any previously\n        stored indexes, so use multiple instances of this class to\n        work with multiple stored indices.  Use nn_index(...) to find\n        the nearest neighbors in this index.\n\n        pts is a 2d numpy array or matrix. All the computation is done\n        in float32 type, but pts may be any type that is convertable\n        to float32. \n        \"\"\"\n        \n        if not pts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%pts.dtype)\n\n        pts = ensure_2d_array(pts,default_flags) \n        npts, dim = pts.shape\n        \n        self.__ensureRandomSeed(kwargs)\n        \n        self.__flann_parameters.update(kwargs)\n\n        if self.__curindex != None:\n            flann.free_index[self.__curindex_type](self.__curindex, pointer(self.__flann_parameters))\n            self.__curindex = None\n                \n        speedup = c_float(0)\n        self.__curindex = flann.build_index[pts.dtype.type](pts, npts, dim, byref(speedup), pointer(self.__flann_parameters))\n        self.__curindex_data = pts\n        self.__curindex_type = pts.dtype.type\n        \n        params = dict(self.__flann_parameters)\n        params[\"speedup\"] = speedup.value\n        \n        return params\n\n\n    def save_index(self, filename):\n        \"\"\"\n        This saves the index to a disk file.\n        \"\"\"\n        if self.__curindex != None:\n            flann.save_index[self.__curindex_type](self.__curindex, c_char_p(to_bytes(filename)))\n\n    def load_index(self, filename, pts):\n        \"\"\"\n        Loads an index previously saved to disk.\n        \"\"\"\n                \n        if not pts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%pts.dtype)\n\n        pts = ensure_2d_array(pts,default_flags) \n        npts, dim = pts.shape\n\n        if self.__curindex != None:\n            flann.free_index[self.__curindex_type](self.__curindex, pointer(self.__flann_parameters))\n            self.__curindex = None\n            self.__curindex_data = None\n            self.__curindex_type = None\n        \n        self.__curindex = flann.load_index[pts.dtype.type](c_char_p(to_bytes(filename)), pts, npts, dim)\n        self.__curindex_data = pts\n        self.__curindex_type = pts.dtype.type\n\n    def nn_index(self, qpts, num_neighbors = 1, **kwargs):\n        \"\"\"\n        For each point in querypts, (which may be a single point), it\n        returns the num_neighbors nearest points in the index built by\n        calling build_index.\n        \"\"\"\n\n        if self.__curindex == None:\n            raise FLANNException(\"build_index(...) method not called first or current index deleted.\")\n\n        if not qpts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%qpts.dtype)\n\n        if self.__curindex_type != qpts.dtype.type:\n            raise FLANNException(\"Index and query must have the same type\")\n\n        qpts = ensure_2d_array(qpts,default_flags) \n\n        npts, dim = self.__curindex_data.shape\n\n        if qpts.size == dim:\n            qpts.reshape(1, dim)\n\n        nqpts = qpts.shape[0]\n\n        assert(qpts.shape[1] == dim)\n        assert(npts >= num_neighbors)\n        \n        result = empty( (nqpts, num_neighbors), dtype=index_type)\n        if self.__curindex_type==float64:\n            dists = empty( (nqpts, num_neighbors), dtype=float64)\n        else:\n            dists = empty( (nqpts, num_neighbors), dtype=float32)\n\n        self.__flann_parameters.update(kwargs)\n\n        flann.find_nearest_neighbors_index[self.__curindex_type](self.__curindex, \n                    qpts, nqpts,\n                    result, dists, num_neighbors,\n                    pointer(self.__flann_parameters))\n\n        if num_neighbors == 1:\n            return (result.reshape( nqpts ), dists.reshape( nqpts ))\n        else:\n            return (result,dists)\n        \n        \n    def nn_radius(self, query, radius, **kwargs):\n        \n        if self.__curindex == None:\n            raise FLANNException(\"build_index(...) method not called first or current index deleted.\")\n\n        if not query.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%query.dtype)\n\n        if self.__curindex_type != query.dtype.type:\n            raise FLANNException(\"Index and query must have the same type\")\n\n        npts, dim = self.__curindex_data.shape        \n        assert(query.shape[0]==dim)\n        \n        result = empty( npts, dtype=index_type)\n        if self.__curindex_type==float64:\n            dists = empty( npts, dtype=float64)\n        else:\n            dists = empty( npts, dtype=float32)\n        \n        self.__flann_parameters.update(kwargs)\n\n        nn = flann.radius_search[self.__curindex_type](self.__curindex, query, \n                                         result, dists, npts,\n                                         radius, pointer(self.__flann_parameters))\n        \n        \n        return (result[0:nn],dists[0:nn])\n\n    def delete_index(self, **kwargs):\n        \"\"\"\n        Deletes the current index freeing all the momory it uses. \n        The memory used by the dataset that was indexed is not freed.\n        \"\"\"\n\n        self.__flann_parameters.update(kwargs)\n        \n        if self.__curindex != None:\n            flann.free_index[self.__curindex_type](self.__curindex, pointer(self.__flann_parameters))\n            self.__curindex = None\n            self.__curindex_data = None\n\n    ##########################################################################################\n    # Clustering functions\n\n    def kmeans(self, pts, num_clusters, max_iterations = None,\n               dtype = None, **kwargs):\n        \"\"\"\n        Runs kmeans on pts with num_clusters centroids.  Returns a\n        numpy array of size num_clusters x dim.  \n\n        If max_iterations is not None, the algorithm terminates after\n        the given number of iterations regardless of convergence.  The\n        default is to run until convergence.\n\n        If dtype is None (the default), the array returned is the same\n        type as pts.  Otherwise, the returned array is of type dtype.  \n\n        \"\"\"\n        \n        if int(num_clusters) != num_clusters or num_clusters < 1:\n            raise FLANNException('num_clusters must be an integer >= 1')\n        \n        if num_clusters == 1:\n            if dtype == None or dtype == pts.dtype:\n                return mean(pts, 0).reshape(1, pts.shape[1])\n            else:\n                return dtype(mean(pts, 0).reshape(1, pts.shape[1]))\n\n        return self.hierarchical_kmeans(pts, int(num_clusters), 1, \n                                        max_iterations, \n                                        dtype, **kwargs)\n        \n    def hierarchical_kmeans(self, pts, branch_size, num_branches,\n                            max_iterations = None, \n                            dtype = None, **kwargs):\n        \"\"\"\n        Clusters the data by using multiple runs of kmeans to\n        recursively partition the dataset.  The number of resulting\n        clusters is given by (branch_size-1)*num_branches+1.\n        \n        This method can be significantly faster when the number of\n        desired clusters is quite large (e.g. a hundred or more).\n        Higher branch sizes are slower but may give better results.\n\n        If dtype is None (the default), the array returned is the same\n        type as pts.  Otherwise, the returned array is of type dtype.  \n        \n        \"\"\"\n        \n        # First verify the paremeters are sensible.\n\n        if not pts.dtype.type in allowed_types:\n            raise FLANNException(\"Cannot handle type: %s\"%pts.dtype)\n\n        if int(branch_size) != branch_size or branch_size < 2:\n            raise FLANNException('branch_size must be an integer >= 2.')\n\n        branch_size = int(branch_size)\n\n        if int(num_branches) != num_branches or num_branches < 1:\n            raise FLANNException('num_branches must be an integer >= 1.')\n\n        num_branches = int(num_branches)\n\n        if max_iterations == None: \n            max_iterations = -1\n        else:\n            max_iterations = int(max_iterations)\n\n\n        # init the arrays and starting values\n        pts = ensure_2d_array(pts,default_flags) \n        npts, dim = pts.shape\n        num_clusters = (branch_size-1)*num_branches+1;\n        \n        if pts.dtype.type == float64:\n            result = empty( (num_clusters, dim), dtype=float64)\n        else:\n            result = empty( (num_clusters, dim), dtype=float32)\n\n        # set all the parameters appropriately\n        \n        self.__ensureRandomSeed(kwargs)\n        \n        params = {\"iterations\"       : max_iterations,\n                    \"algorithm\"        : 'kmeans',\n                    \"branching\"        : branch_size,\n                    \"random_seed\"      : kwargs['random_seed']}\n        \n        self.__flann_parameters.update(params)\n        \n        numclusters = flann.compute_cluster_centers[pts.dtype.type](pts, npts, dim,\n                                        num_clusters, result, \n                                        pointer(self.__flann_parameters))\n        if numclusters <= 0:\n            raise FLANNException('Error occured during clustering procedure.')\n\n        if dtype == None:\n            return result\n        else:\n            return dtype(result)\n        \n    ##########################################################################################\n    # internal bookkeeping functions\n\n        \n    def __ensureRandomSeed(self, kwargs):\n        if not 'random_seed' in kwargs:\n            kwargs['random_seed'] = self.__rn_gen.randint(2**30)\n        \n\n\n"
  },
  {
    "path": "algorithms/flann/code/src/python/setup.py",
    "content": "#!/usr/bin/env python2\n\nfrom distutils.core import setup\nfrom os.path import exists, abspath, dirname, join\nimport os\nimport sys\n\n\ndef find_path():\n    lib_paths = [ os.path.abspath('/home/yzhang4/HD/home/liwen/Documents/flann-1.8.4-src/lib'), abspath(join(dirname(dirname(sys.argv[0])), '../../../lib')) ]\n    possible_libs = ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']\n\n    for path in lib_paths:\n        for lib in possible_libs:\n            if exists(join(path,lib)):\n                return path\n\nsetup(name='flann',\n      version='1.8.4',\n      description='Fast Library for Approximate Nearest Neighbors',\n      author='Marius Muja',\n      author_email='mariusm@cs.ubc.ca',\n      license='BSD',\n      url='http://www.cs.ubc.ca/~mariusm/flann/',\n      packages=['pyflann', 'pyflann.lib'],\n      package_dir={'pyflann.lib': find_path() },\n      package_data={'pyflann.lib': ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']}, \n)\n"
  },
  {
    "path": "algorithms/flann/code/src/python/setup.py.tpl",
    "content": "#!/usr/bin/env python2\n\nfrom distutils.core import setup\nfrom os.path import exists, abspath, dirname, join\nimport os\nimport sys\n\n\ndef find_path():\n    lib_paths = [ os.path.abspath('@LIBRARY_OUTPUT_PATH@'), abspath(join(dirname(dirname(sys.argv[0])), '../../../lib')) ]\n    possible_libs = ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']\n\n    for path in lib_paths:\n        for lib in possible_libs:\n            if exists(join(path,lib)):\n                return path\n\nsetup(name='flann',\n      version='@FLANN_VERSION@',\n      description='Fast Library for Approximate Nearest Neighbors',\n      author='Marius Muja',\n      author_email='mariusm@cs.ubc.ca',\n      license='BSD',\n      url='http://www.cs.ubc.ca/~mariusm/flann/',\n      packages=['pyflann', 'pyflann.lib'],\n      package_dir={'pyflann.lib': find_path() },\n      package_data={'pyflann.lib': ['libflann.so', 'flann.dll', 'libflann.dll', 'libflann.dylib']}, \n)\n"
  },
  {
    "path": "algorithms/flann/script/build_auto.sh",
    "content": "data_path=../../../data\nindex_path=../index\nmkdir ${index_path}\nwm=0\nwb=0.01\nsample=0.1\ntarget=0.9\n\nfor data in \"audio\"\ndo\n\n../code/build/bin/build_auto -f ${data_path}/${data}.hdf5 -i ${index_path}/${data}.auto -m ${wm} -b ${wb} -s ${sample} -t ${target}\n\ndone\n"
  },
  {
    "path": "algorithms/flann/script/build_hkmeans.sh",
    "content": "data_path=../../../data\nindex_path=../index\n\nmkdir ${index_path}\niteration=5\nbranches=64\n\nfor data in \"audio\"\ndo\n\n../code/build/bin/build_hkmeans -f ${data_path}/${data}.hdf5 -i ${index_path}/${data}.hkmeans -t ${iteration} -b ${branches}\n\ndone\n\n"
  },
  {
    "path": "algorithms/flann/script/build_kdtree.sh",
    "content": "data_path=../../../data/\nindex_path=../index\n\nmkdir ${index_path}\ntrees=4\n\nfor data in \"audio\"\ndo\n\n../code/build/bin/build_kdtree -f ${data_path}/${data}.hdf5 -i ${index_path}/${data}.kdtree -t $trees\n\ndone\n"
  },
  {
    "path": "algorithms/flann/script/run_linear.sh",
    "content": "data_path=../../../data\ngnd_path=../results\nmkdir ${gnd_path}\nk=20\n\nfor data in \"audio\"\ndo\n\n../code/build/bin/linear -f ${data_path}/${data}.hdf5 -g ${gnd_path}/${data}_gnd.hdf5 -k ${k}\n\ndone\n\n"
  },
  {
    "path": "algorithms/flann/script/search_auto.sh",
    "content": "data_path=../../../data\nindex_path=../index\nresult_path=../results\nmkdir ${result_path}\nk=20\n\nfor data in \"audio\"\ndo\n\nfor c in 100 500 1000\ndo\n\n../code/build/bin/search_auto -f ${data_path}/${data}.hdf5 -i ${index_path}/${data}.auto -r ${result_path}/${data}_auto.txt -k $k -c ${c}\n\ndone\ndone\n"
  },
  {
    "path": "algorithms/flann/script/search_hkmeans.sh",
    "content": "data_path=../../../data/\nindex_path=../index\nresult_path=../results\n\nmkdir ${result_path}\nk=20\n\nfor data in \"audio\"\ndo\n\nfor c in 100 500 1000\ndo\n\n../code/build/bin/search_hkmeans -f ${data_path}/${data}.hdf5 -r ${result_path}/${data}_hkmeans.txt -i ${index_path}/${data}.hkmeans -k $k -c $c\n\ndone\ndone\n"
  },
  {
    "path": "algorithms/flann/script/search_kdtree.sh",
    "content": "data_path=../../../data\nindex_path=../index\nresult_path=../results\nmkdir ${result_path}\n\n\nk=20\n\nfor data in \"audio\"\ndo\n\nfor c in 100 500 1000\ndo\n\n../code/build/bin/search_kdtree -f ${data_path}/${data}.hdf5 -i ${index_path}/${data}.kdtree -r ${result_path}/${data}_kdtree.txt -k $k -c $c\n\ndone\ndone\n"
  },
  {
    "path": "data/Dataset_Link",
    "content": "All datasets used in NNS can be downloaded from this link: the https://pan.baidu.com/s/1qYq9EUw\n"
  },
  {
    "path": "data/README.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <title></title>\n  <style type=\"text/css\">code{white-space: pre;}</style>\n</head>\n<body>\n<h1 id=\"datasets-used-in-the-nns-benchmark\">Datasets Used in the NNS Benchmark</h1>\n<p>For each dataset (e.g., audio), we have files for data points (e.g., <code>audio_base.lshkit</code>), query points (e.g., <code>audio_query.lshkit</code>) and ground truth files (e.g., <code>audio_groundtruth.lshkit</code>). Five different file formats are used by existing algorithms evaluated, including <a href=\"http://corpus-texmex.irisa.fr\"><em>fvecs</em>,<em>ivecs</em></a>, <a href=\"http://www.kgraph.org/index.php?n=Main.LshkitFormat\"><strong>lshkit</strong></a>, <a href=\"https://github.com/mariusmuja/flann\"><em>hdf5</em></a> and <a href=\"https://github.com/DBWangGroupUNSW/SRS\"><em>txt</em></a> (plain text).</p>\n<p>Please <strong>download</strong> the following compressed dataset as the running sample data used in our examples. Datasets downloaded should be unzipped and located in the <code>./nns_benchmark/data</code> directory.</p>\n<ul>\n<li><a href=\"https://www.dropbox.com/s/1hhaz08i3qk4ett/audio.zip?dl=0\">Audio</a>. Audio contains about 0.05 million 192-d audio feature vectors extracted by Marsyas library from DARPA TIMIT audio speed dataset.</li>\n</ul>\n<p>More datasets evaluated in our <a href=\"http://www.cse.unsw.edu.au/~yingz/NNS.pdf\">NNS Experimental Evaluation paper</a> will be uploaded soon.</p>\n<h2 id=\"deduplication-and-query-set-generation\">Deduplication and Query Set Generation</h2>\n<p>In all of our datasets, we <em>have already removed the duplicate data points</em> from the original ones downloaded from the corresponding source websites. For each dataset, by default, we reserved 200 random data points as the query points. The ground truth results are also provided for each dataset.</p>\n</body>\n</html>\n"
  },
  {
    "path": "data/README.md",
    "content": "# Datasets Used in the NNS Benchmark\n\nFor each dataset (e.g., audio), we have files for data points (e.g., `audio_base.lshkit`), query points (e.g., `audio_query.lshkit`) and ground truth files (e.g., `audio_groundtruth.lshkit`). Five different file formats are used by existing algorithms evaluated, including [*fvecs*,*ivecs*](http://corpus-texmex.irisa.fr), [*lshkit*](http://www.kgraph.org/index.php?n=Main.LshkitFormat), [*hdf5*](https://github.com/mariusmuja/flann) and [*txt*](https://github.com/DBWangGroupUNSW/SRS) (plain text).\n\nPlease **download** the following compressed dataset as the running sample data used in our examples. Datasets downloaded should be unzipped and located in the `./nns_benchmark/data` directory.\n\n- [Audio](https://www.dropbox.com/s/1hhaz08i3qk4ett/audio.zip?dl=0). Audio contains about 0.05 million 192-d audio feature vectors extracted by Marsyas library from DARPA TIMIT audio speed dataset.\n- [Cifar](https://www.dropbox.com/s/pcliqe2cl4qc5ff/cifar.hdf5?dl=0). Cifar is a labeled subset of TinyImage dataset, which consists of 60000 32 × color images in 10 classes, with each image represented by a 512-d GIST feature vector.\n- [Deep](https://www.dropbox.com/s/y9c0vf9jac7yax8/deep.hdf5?dl=0). Deep dataset contains deep neural codes of natural images obtained from the activations of a convolutional neural network, which contains about 1 million data points with 256 dimensions.\n- [Enron](https://www.dropbox.com/s/z56uf5qdmpp6iqo/enron.hdf5?dl=0). Enron origins from a collection of emails. yifang et. al. extract bi-grams and form feature vectors of 1369 dimensions.\n- [Glove](https://www.dropbox.com/s/xg0jvdnp8oszhuu/glove.hdf5?dl=0). Glove contains 1.2 million 100-d word feature vectors extracted from Tweets.\n- [ImageNet](https://www.dropbox.com/s/w8qj7w8lloify5y/imageNet.hdf5?dl=0). ImageNet is introduced and employed by “The ImageNet Large Scale Visual Recognition Challenge(ILSVRC)”, which contains about 2.4 million data points with 150 dimensions dense SIFT features.\n- [Msong](https://www.dropbox.com/s/mh11y5q7dugehwi/millionSong.hdf5?dl=0). Msong is a collection of audio features and metadata for a million contemporary popular music tracks with 420 dimensions.\n- [Mnist](https://www.dropbox.com/s/wg25xib5iiszu4k/MNIST.hdf5?dl=0). Mnist consists of 70k images of hand-written digits, each as a 784-d vector concatenating all pixels. we randomly sample 1k as the queries and use the remaining as the data base.\n- [Notre](https://www.dropbox.com/s/v876ggkmodvr4xo/notre.hdf5?dl=0). Notre contains about 0.3 million 128-d features of a set of Flickr images and a reconstruction.\n- [Nusw](https://www.dropbox.com/s/7yxx17vig60yxsl/nuswide.hdf5?dl=0). Nusw includes around 2.7 million web images, each as a 500-dimensional bag-of-words vector.\n- [Random](https://pan.baidu.com/s/1o8PPSfC). Random contains 1M randomly chosen points in a unit hypersphere with dimensionality 100.\n- [Sift](https://www.dropbox.com/s/vbdb0imp83t6pb1/sift.hdf5?dl=0). Sift consists of 1 million 128-d SIFT vectors.\n- [Sun397](https://www.dropbox.com/s/h8lvtvfbejghi99/sun.hdf5?dl=0). Sun397 contains about 0.08 million 512-d GIST features of images.\n- [Trevi](https://www.dropbox.com/s/9ezi2gkuhnkem6d/trevi.hdf5?dl=0). Trevi consists of 0.4 million × 1024 bitmap(.bmp) images, each containing a 16 × 16 array of image patches. Each patch is sampled as 64 × 64 grayscale, with a canonical scale and orientation. Therefore, Trevi patch dataset consists of around 100,000 4096-d vectors.\n- [UKbench](https://www.dropbox.com/s/frra3z1bi7otjo5/ukbench.hdf5?dl=0). UKbench contains about 1 million 128-d features of images.\n\nMore datasets evaluated in our [NNS Experimental Evaluation paper](https://arxiv.org/abs/1610.02455) will be uploaded soon. \n\n## Deduplication and Query Set Generation\n\nIn all of our datasets, we *have already removed the duplicate data points* from the original ones downloaded from the corresponding source websites. For each dataset, by default, we reserved 200 random data points as the query points. The ground truth results are also provided for each dataset.\n"
  },
  {
    "path": "data/transformer/README.md",
    "content": "# For each dataset, five different file formats are used to evaluate the algorithms: \n\t- .fvecs/ivecs ( used in AGH, Annoy, NSH, OPQ, RCT and SGH);\n\t- .lshkit ( used in SH, KGraph, DPG);\n\t- .hdf5 ( used in flann);\n\t- .txt ( used in SRS, QALSH, HNSW, SW, vptree, NAPP).\n\nDue to .hdf5 is a file format for storing and managing the data collections of all sizes and complexity, we only provide the hdf5 file for all the datasets and give a data transformation tool to save the data, query and ground truth files to other formats. In addition, we also offer a tool to compute the ground truth and save to the hdf5 file. In this application, hdf5 file consists of three datasets with the names \"dataset\", \"query\" and \"groundtruth\". Each coordinate of the data and query is a floating point number and the ground truth file only contain the IDs of top k points.\n\n\n## Compile \n\ngo to src and run\n\n```\nsh ./build.sh\n```\n\nto get the executable file.\n\n## Save to other formats\n\nUse load_from_hdf to extract the data and save to other types.\n\n% ./load_from_hdf -f {filename} -n {name} -o {output_name} -t {file format} -y {data type}\n\n\t-f: the path of the hdf5 file;\n\t-n: the name of the dataset( one hdf5 file can contain several dataset);\n\t-o: the path of the output file;\n\t-t: the format of the output file, which could be chosen from \"fvecs/ivecs/txt/lshkit\".\n\t-y: the type of the stored data. -y i indicates that each coordinate is an integer. The other option is -y f, indicating that the saving objects are the data or query points.\n\n\n% ./compute_groundtruth -f {filename} -k {k}\n\n\t-f: the path of the hdf5 file, which must contain data and query dataset;\n\t-k: the number of the nearest neighbors. The results are stored in the same file and labeled as the name \"groundtruth\".\n\n \n\n"
  },
  {
    "path": "data/transformer/script/run.sh",
    "content": "\n../src/compute_groundtruth -f ../../audio/audio.hdf5 -k 20\n\n\n../src/load_from_hdf -f ../../audio/audio.hdf5 -n groundtruth -o audio_groundtruth.txt -t txt -y i\n\n"
  },
  {
    "path": "data/transformer/src/build.sh",
    "content": "g++ compute_gnd.cpp -o compute_groundtruth -lhdf5 -O3\n\ng++ load_from_hdf.cpp -o load_from_hdf -lhdf5 -O3\n"
  },
  {
    "path": "data/transformer/src/compute_gnd.cpp",
    "content": "#include \"util.h\"\n#include \"gnd.h\"\n#include <getopt.h>\n\nusing namespace std;\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                       no_argument,       0, 'h'},\n    {\"filename\",                   required_argument, 0, 'f'},\n    {\"k\",                          required_argument, 0, 'k'},\n  };\n\n\tint index;\n    int iarg = 0;\n    opterr = 1; \n\n\tchar filename[100]=\"\";\n\tint k =20;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:k:h\",\n                       longopts, &index);\n\n    switch (iarg) {\n\t\tcase 'f':\n        \tif (optarg) {\n        \t\tstrcpy(filename, optarg);\n          \t}\n        break;\n\t\tcase 'k':\n        \tif (optarg) {\n        \t\tk = atoi(optarg);\n          \t}\n        break;\n        }\n    }\n\t\n\tint n;\n\tint nq;\n\tint dim;\n\tfloat* dataset = load_from_file<float>(filename,\"dataset\",&n,&dim);\n\tfloat* query = load_from_file<float>(filename,\"query\", &nq, &dim);\n\tint* gnd = get_gnd(dataset,query,n,nq,dim,k);\n\tsave_to_file<int>(gnd,nq,k,filename,\"groundtruth\");\n\t\n\treturn 0;\n}\n"
  },
  {
    "path": "data/transformer/src/gnd.h",
    "content": "#include <sstream>\n#include <iomanip>\n#include <iostream>\n#include <stdio.h>\n#include <ctime>\n#include <stdlib.h>\n#include <stdint.h>\n#include <cmath>\n#include <vector>\n#include <algorithm>\n#include <queue>  \n\nusing namespace std;\nusing std::pair;\nusing std::make_pair;\n\nfloat get_dist(const float* p1, const float* p2, int d)\n{\n\tfloat dist = 0;\n\tfor(int i = 0; i < d ; i++ )\n\t{\n\t\tfloat tmp = p1[i]-p2[i];\n\t\tdist += tmp * tmp;\n\t}\n\treturn dist;\n}\n\nstruct _pair\n{\n\tfloat dist;\n\tint id;\n\tfriend bool operator<(_pair n1, _pair n2)\n    {\n         return n1.dist > n2.dist;\n    }\n};\n\n\nint* get_gnd(const float* dataset, const float* query, int n, int nq, int d, int k)\n{\n\tint* groundtruth = new int[nq*k];\n\tfor(int i=0;i<nq;i++)\n\t{\n\t\tstd::priority_queue<_pair> gnd;\n\t\tfor(int j = 0; j < n; j++)\n\t\t{\n\t\t\tfloat dist = get_dist(&query[i*d], &dataset[j*d],d);\n\t\t\t_pair p;\n\t\t\tp.dist=dist;\n\t\t\tp.id=j;\n\t\t\tgnd.push(p);\n\t\t}\n\t\tfor(int j=0;j<k;j++)\n\t\t{\n\t\t\tconst _pair& top = gnd.top();\n\t\t\tgroundtruth[i*k+j]=top.id;\n\t\t\tgnd.pop();\n\t\t}\n\t}\n\treturn groundtruth;\n}\n\n"
  },
  {
    "path": "data/transformer/src/load_from_hdf.cpp",
    "content": "#include \"util.h\"\n#include <getopt.h>\n\nusing namespace std;\n\nint main(int argc, char** argv)\n{\n\tconst struct option longopts[] ={\n    {\"help\",                       no_argument,       0, 'h'},\n    {\"filename\",                   required_argument, 0, 'f'},\n    {\"name\",                       required_argument, 0, 'n'},\n    {\"output_path\",                required_argument, 0, 'o'},\n\t{\"file_type\",                  required_argument, 0, 't'},\n    {\"data_type\",                  required_argument, 0, 'y'},\n  };\n\n\tint index;\n    int iarg = 0;\n    opterr = 1; \n\n\tchar filename[100]=\"\";\n\tchar name[100]=\"\";\n\tchar output_path[100] = \"\"; \n\tint  file_type =2 ;\n\tbool is_integer = true;\n\tbool is_valid_command = true;\n\n\twhile (iarg != -1) {\n    iarg = getopt_long(argc, argv, \"f:n:o:t:y:h\",\n                       longopts, &index);\n\n    switch (iarg) {\n\t\tcase 'f':\n        \tif (optarg) {\n        \t\tstrcpy(filename, optarg);\n          \t}\n        break;\n\t\tcase 'n':\n        \tif (optarg) {\n        \t\tstrcpy(name, optarg);\n          \t}\n        break;\n\t\tcase 'o':\n        \tif (optarg) {\n        \t\tstrcpy(output_path, optarg);\n          \t}\n        break;\n\t\tcase 't':\n          \tif (optarg) {\n            \tif (strcmp(optarg, \"txt\") == 0) {\n              \t\tfile_type = 0;\n            \t}\n\t\t\t\telse if (strcmp(optarg, \"fvecs\") == 0 || strcmp(optarg, \"ivecs\") == 0) {\n\t\t\t\t\tfile_type = 1;\n\t\t\t\t} \n\t\t\t\telse if (strcmp(optarg, \"lshkit\") != 0) {\n              \t\tis_valid_command = false;\n            \t}\n          \t}\n        break;\n\t\tcase 'y':\n          \tif (optarg) {\n            \tif (strcmp(optarg, \"f\") == 0) {\n              \t\tis_integer = false;\n            \t} else if (strcmp(optarg, \"i\") != 0) {\n              \t\tis_valid_command = false;\n            \t}\n          \t}\n        break;\n        }\n      }\n\t\n\tif(!is_valid_command)\n\t{\n\t\tcerr<<\"you must assign the type of the data \\n\";\n\t\treturn 0;\n\t}\n\tint n;\n\tint dim;\n\tif(!is_integer)\n\t{\n\t\tcerr <<\"float\";\n\t\tfloat* dataset = load_from_file<float>(filename, name, &n, &dim);\n\t\tif(file_type == 0)\n\t\t\tsave_to_txt<float>(output_path, dataset, n, dim);\n\t\telse if(file_type ==1)\n\t\t\tsave_to_fvecs<float>(output_path, dataset, n, dim);\n\t\telse\n\t\t\tsave_to_lshkit<float>(output_path, dataset, n, dim);\n\t}\n\telse\n\t{\n\t\tint* dataset = load_from_file<int>(filename, name, &n, &dim);\n\t\tif(file_type == 0)\n\t\t\tsave_to_txt<int>(output_path, dataset, n, dim);\n\t\telse if(file_type ==1)\n\t\t\tsave_to_fvecs<int>(output_path, dataset, n, dim);\n\t\telse\n\t\t\tsave_to_lshkit<int>(output_path, dataset, n, dim);\n\t}\n\n\n\t//cout<<n<<\" \"<<dim<<endl;\n\t//float* query = load_from_file(filename,\"query\", &nq, &dim);\n\n\t//int k=20;\n\t//int* gnd = get_gnd(dataset,query,n,nq,dim,k);\n\n\t//cout<<gnd[0]<<\" \"<<gnd[1]<<\" \"<<gnd[20]<<endl;\n\t\n\t//save_to_txt<int>(\"audio.txt\",gnd, nq, k);\n\t//save_to_fvecs(\"audio.fvecs\",dataset, n, dim);\n\t//save_to_lshkit(\"audio.lshkit\",dataset, n, dim);\n\n\t//float* dataset = read_from_txt(\"audio.txt\",200,192);\n\t//float* dataset = read_from_fvecs(\"audio.fvecs\", &n, &dim);\n\t//float* dataset = (float *)read_from_lshkit(\"audio.lshkit\", &n, &dim);\n\t//save_to_file(dataset,n,dim,\"audio.hdf5\",\"query\");\n\t//cout<<dataset[0]<<\" \"<<dataset[192]<<endl;\n\treturn 0;\n}\n"
  },
  {
    "path": "data/transformer/src/util.h",
    "content": "#include <hdf5.h>\n#include <cstring>\n#include <iostream>\n#include <fstream>\n#include <typeinfo>\n\n\nusing namespace std;\n\ntemplate<typename T>\nhid_t get_hdf5_type()\n{\n    //throw FLANNException(\"Unsupported type for IO operations\");\n}\n\ntemplate<>\nhid_t get_hdf5_type<char>() { return H5T_NATIVE_CHAR; }\ntemplate<>\nhid_t get_hdf5_type<unsigned char>() { return H5T_NATIVE_UCHAR; }\ntemplate<>\nhid_t get_hdf5_type<short int>() { return H5T_NATIVE_SHORT; }\ntemplate<>\nhid_t get_hdf5_type<unsigned short int>() { return H5T_NATIVE_USHORT; }\ntemplate<>\nhid_t get_hdf5_type<int>() { return H5T_NATIVE_INT; }\ntemplate<>\nhid_t get_hdf5_type<unsigned int>() { return H5T_NATIVE_UINT; }\ntemplate<>\nhid_t get_hdf5_type<long>() { return H5T_NATIVE_LONG; }\ntemplate<>\nhid_t get_hdf5_type<unsigned long>() { return H5T_NATIVE_ULONG; }\ntemplate<>\nhid_t get_hdf5_type<float>() { return H5T_NATIVE_FLOAT; }\ntemplate<>\nhid_t get_hdf5_type<double>() { return H5T_NATIVE_DOUBLE; }\ntemplate<>\nhid_t get_hdf5_type<long double>() { return H5T_NATIVE_LDOUBLE; }\n\ntemplate<typename T>\nT* load_from_file(const char* filename, const char* name, int* n, int* d)\n{\n    herr_t status;\n    hid_t file_id = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT);\n\thid_t dataset_id = H5Dopen2(file_id, name, H5P_DEFAULT);\n    hid_t space_id = H5Dget_space(dataset_id);\n\n    hsize_t dims_out[2];\n    H5Sget_simple_extent_dims(space_id, dims_out, NULL);\n\t*n = (int)dims_out[0];\n\t*d = (int)dims_out[1];\n    T* dataset=new T[dims_out[0] * dims_out[1]];\n    status = H5Dread(dataset_id, get_hdf5_type<T>(), H5S_ALL, H5S_ALL, H5P_DEFAULT, dataset);\n    //H5T_NATIVE_FLOAT\n    H5Sclose(space_id);\n    H5Dclose(dataset_id);\n    H5Fclose(file_id);\n\n\treturn dataset;\n}\n\ntemplate<typename T>\nvoid save_to_file(const T* dataset,int n, int d, const char* filename, const char* name)\n{\n    H5Eset_auto( H5E_DEFAULT, NULL, NULL );\n    herr_t status;\n    hid_t file_id;\n    file_id = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT);\n    if (file_id < 0) {\n        file_id = H5Fcreate(filename, H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);\n    }\n\n    hsize_t dimsf[2];              // dataset dimensions\n    dimsf[0] = n;\n    dimsf[1] = d;\n\n    hid_t space_id = H5Screate_simple(2, dimsf, NULL);\n    hid_t memspace_id = H5Screate_simple(2, dimsf, NULL);\n\n    hid_t dataset_id = H5Dcreate2(file_id, name, get_hdf5_type<T>(), space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);\n\n    if (dataset_id<0) {\n        dataset_id = H5Dopen2(file_id, name, H5P_DEFAULT);\n    }\n\n    status = H5Dwrite(dataset_id, get_hdf5_type<T>(), memspace_id, space_id, H5P_DEFAULT, dataset);\n\n    H5Sclose(memspace_id);\n    H5Sclose(space_id);\n    H5Dclose(dataset_id);\n    H5Fclose(file_id);\n}\n//*\ntemplate<typename T>\nT* read_from_fvecs(const char* filename, int* len, int* d)\n{\n\tFILE * dfp = fopen(filename, \"rb\");\n\tint dim;\n\tfread(&dim,sizeof(int),1,dfp);\n\tfseek(dfp, 0, SEEK_END);\n\toff_t size = ftell(dfp);\n    fseek(dfp, 0, SEEK_SET);\n    int n = (int)(size / (sizeof(int)+ sizeof(T)*dim));\n\t*d = dim;\n\t*len = n;\n\tT* data = new T[n * dim];\n\tfor(int i=0 ; i<n ; i++)\n  \t{\n\t\tfread(&dim, sizeof(int), 1, dfp);\n\t\tfread(&data[i*dim], sizeof(T), dim, dfp);\n  \t}\n\tfclose(dfp);\n\treturn data;\n}\n\ntemplate<typename T>\nT* read_from_txt(const char* filename, int n, int d)\n{\n\tFILE * dfp = fopen(filename, \"r\");\n\tT * data = new float [n * d];\n\tfor(int i=0 ; i<n ; i++)\n  \t{\n\t\tif(typeid(T)==typeid(int))\n\t\t\tfor(int j=0;j<d;j++)\n\t\t\t\tfscanf(dfp,\"%d \",&data[i*d + j]);\t\n\t\tif(typeid(T)==typeid(float))\n\t\t\tfor(int j=0;j<d;j++)\n\t\t\t\tfscanf(dfp,\"%f \",&data[i*d + j]);\n  \t}\n\tfclose(dfp);\n\treturn data;\n}\n\nstatic const unsigned LSHKIT_HEADER = 3;\ntemplate<typename T>\nchar* read_from_lshkit(const char* filename, int* len, int* dim)\n{\n\tifstream is(filename, ios::binary);\n    unsigned header[LSHKIT_HEADER]; // entry size, row, col \n    is.read((char *)header, sizeof header);\n    \n    int d = header[2];\n    unsigned skip = LSHKIT_HEADER * sizeof(unsigned);   \n\n    is.seekg(0, std::ios::end);\n\tsize_t size = is.tellg();\n    size -= skip;\n    unsigned line = sizeof(T) * d;\n    int n =  size/line; \n    *len=n;\n\t*dim=d;\n    is.seekg(skip, std::ios::beg);\n    char* data = new char[n*sizeof(T)*d];\n\n    for (unsigned i = 0; i < n; ++i) {\n        is.read( data + i*sizeof(T)*d , sizeof(T) * d);      \n    }    \n    is.close();\n    return data;\n\n}\n\ntemplate<typename T>\nvoid save_to_fvecs(const char* filename, const T* dataset, int n, int d)\n{\n\tFILE * ofp = fopen(filename, \"w\");\n\tfor(int i=0;i<n;i++)\n\t{\n\t\tfwrite(&d,sizeof(int),1,ofp);\n\t\tfwrite(&dataset[i*d],sizeof(T),d,ofp);\n\t}\n\tfclose(ofp);\t\n\n}\n\ntemplate<typename T>\nvoid save_to_txt(const char* filename, T* dataset, int n, int d)\n{\n\tFILE * ofp = fopen(filename, \"w\");\n\tfor(int i=0;i<n;i++)\n\t{\n\t\tfor(int j=0;j<d;j++)\n\t\t{\n\t\t\tif(typeid(T)==typeid(int))\n\t\t\t\tfprintf(ofp,\"%d \",dataset[i*d+j]);\n\t\t\tif(typeid(T)==typeid(float))\n\t\t\t\tfprintf(ofp,\"%f \",dataset[i*d+j]);\n\t\t}\n\t\tif(i<n-1)\n\t\t\tfprintf(ofp,\"\\n\");\n\t}\n\tfclose(ofp);\n}\n\ntemplate<typename T>\nvoid save_to_lshkit(const char* filename, const T* dataset, int n, int d)\n{\n    FILE* os = fopen(filename, \"wb\");\n\t\n    int tmp = 4;\n\tfwrite(&tmp, sizeof(tmp),1,os);\n\tfwrite(&n, sizeof(n),1,os);\n\tfwrite(&d, sizeof(d),1,os);\n\n    for (int i = 0; i < n; ++i) {\n        fwrite(&dataset[i*d], sizeof(T), d, os);\n    }\n    fclose(os);\n}\n\n"
  }
]